本記事では、Python と AI を組み合わせて「資産10倍」を狙う本格的な自動売買システムの構築方法を解説します。初心者でも再現できるよう、データ処理から戦略設計、強化学習、Walk-Forward Analysis、そして自動発注までを一貫した流れで紹介します。
1. システム全体構成
本記事で構築する自動売買システムは次の構成を持ちます:
project/
├── app.py
├── data/
├── utils/
│ ├── indicators.py # テクニカル指標
│ ├── strategies.py # 売買ロジック
│ ├── walkforward.py # Walk-Forward Analysis
│ ├── ai_rl.py # 強化学習 (xLSTM + PPO)
│ └── kelly.py # Kelly最適化
└── models/
2. データ読み込み
一般的な OHLCV の CSV を読み込み、欠損値を除去します。
import pandas as pd
def load_price(path):
df = pd.read_csv(path)
return df.dropna().reset_index(drop=True)
3. テクニカル指標
軽量で高速な自作インジケーターを使用します。
def SMA(close, k, i):
if i < k: return None
return close[i-k+1:i+1].mean()
ほかに EMA や ATR も同様の構成で実装できます。
4. 売買ロジック
複数の戦略を文字列として登録し、柔軟に切り替え可能にします。
strategyList = [
"(Close[i] > EMA(Close, k1, i)) and "
"(min(Low[i-3:i-1]) > EMA(Close, k1, i) * 0.98)"
]
5. Walk-Forward Analysis (WFA)
「過去データに最適化しすぎない」ための検証方法です。
def walk_forward(df, strategy, params):
Close = df["Close"].values
High = df["High"].values
Low = df["Low"].values
equity = 1.0
position = 0
for i in range(50, len(df)):
local = {
"Close": Close, "High": High, "Low": Low,
"i": i, "k1": params["k1"], "k2": params["k2"],
"SMA": SMA, "EMA": EMA, "ATR": ATR
}
if position == 0:
if eval(strategy, {"__builtins__": None}, local):
entry = Close[i]
position = 1
else:
for exit_rule in strategyList:
if eval(exit_rule, {"__builtins__": None}, local):
exit_price = Close[i]
r = (exit_price - entry) / entry
equity *= (1 + r)
position = 0
break
return equity
6. 強化学習(xLSTM + PPO)
価格系列を入力し、Long/Short/Flat を判断する AI を学習させます。
class TradingEnv(gym.Env):
def __init__(self, prices):
self.prices = prices
self.t = 1
self.equity = 1.0
self.position = 0
詳細は別記事としても成立するレベルの奥深さがあります。
7. Kelly 最適化
複数銘柄を扱う場合、リスクと期待値のバランスを最適化します。
def kelly(mu, cov):
return np.linalg.inv(cov) @ mu
8. 自動売買(MT5)
完成した戦略を MT5 に接続して完全自動化します。
import MetaTrader5 as mt5
def send_order(symbol, volume, order_type):
req = {"symbol": symbol, "volume": volume, "type": order_type}
return mt5.order_send(req)
まとめ
本記事では、データ処理・テクニカル指標・戦略実装・WFA・強化学習・自動発注まで、Python と AI による自動売買システムの具体的な構築プロセスを紹介しました。
シンプルな構成ですが拡張性が高く、多銘柄・AI強化・リスク管理の追加も容易です。