実運用|自動売買の開発・検証

過去検証と実際の売買は何が違う?

自動売買の過去検証と実運用で差が生まれる理由を、データ時刻、注文、約定価格、費用、運用記録の観点から紹介します。

実運用
順を追って確認

はじめに

過去データで動いた仕組みでも、実際の市場では同じ価格で売買できるとは限りません。結果の違いを失敗の一言で片づけず、どの工程で差が生まれたかを分けて確認します。

しっかり者の女性キャラクター

過去検証が良ければ、実際の売買も同じ結果になるよね?

市場は再生ボタン付きの動画ちゃうからな。見えた価格で必ず買えるわけやないで。

サイト案内役のおっちゃんキャラクター
女性キャラクターの返答

ルールの良し悪しだけでなく、実際に注文がどう成立したかも確かめるんだね。

過去データでは売買できたことになりやすい

バックテストでは、決めた時刻の価格で売買できたと仮定することがあります。しかし実際には、判断してから注文が届くまでに価格が動き、希望した価格では約定しない場合があります。

取引量が少ない銘柄や値動きの大きい時間帯では、この差が広がりやすくなります。検証時の価格と実約定価格を比べ、差が繰り返し発生していないかを見ます。

  • 判断に使った価格と実約定価格の差
  • 注文したが約定しなかった取引
  • 値動きの大きい時間帯や銘柄の影響

使える情報の時刻をそろえる

過去検証では、その時点ではまだ確定していなかった情報を誤って使わないことが重要です。日足が完成する前に、完成後の終値を知っていたことにすると、実運用では再現できません。

実運用ではデータの取得遅れや欠損も起こります。情報がそろわない日は無理に判断せず、売買を見送った理由として記録します。

  • 判断時点で本当に分かっていた情報だけを使う
  • 未確定の価格を完成値として扱わない
  • データ不足による見送りを記録する

差を同じ基準で振り返る

実運用の結果だけが悪いときは、まず検証と実運用で期間、対象、注文方法、費用がそろっているかを確認します。違う条件を比べると、原因を仕組みの問題と誤解することがあります。

個別取引では約定の事実を示し、複数の取引をまとめるページでは全体の傾向を確認します。一つの取引に全体評価を背負わせず、役割を分けて掲載します。

  • 同じ期間・対象・費用で比較する
  • 注文や約定の差とルールの差を分ける
  • 個別記録と全体成績を別のページで確認する