はじめに
前回までのChapter1「観測」では、Pythonを使って約11年半・1,720回の取引をさまざまな角度から分析しました。
月別損益、時間帯、曜日、保有時間、連勝・連敗、ドローダウン。
一つひとつ分析していくことで、バックテストの最終損益だけを見ていては分からなかった、零号機の特徴が少しずつ見えてきました。
しかし、Chapter1で分かったのは、基本的に
「何が起きていたのか」
までです。
例えば、保有時間別分析では、1~4時間の取引が大きな利益を生み出している一方、4~24時間では成績が大きく悪化していました。
しかし、
「なぜ4~24時間の取引は弱いのか」
までは分かっていません。
時間帯による成績差についても同じです。
10時台のエントリーが大きな利益を生み出していましたが、それが時間そのものに意味があるのか、それとも、その時間帯に発生しやすい相場環境に原因があるのかは分かりません。
そこで今回から、Chapter2「学習」に入ります。
Chapter1で見つけた特徴をもとに仮説を立て、
「なぜ、その結果になったのか」
を調べていきます。
Chapter1で見えた零号機の特徴
Chapter1で観測した主な特徴を簡単に整理します。
- 長期的には利益を積み上げている
- エントリー時間によって成績に大きな差がある
- エントリー曜日はすべてプラスだが、曜日によって利益に差がある
- 1~4時間の保有で大きな利益が出ている
- 4~24時間の保有では成績が大きく悪化している
- 最大11連勝、最大9連敗を経験している
- 最大ドローダウン額は約29,742円
- 最大ドローダウンから元の最高値を更新するまで約388日かかっている
これらを見ると、零号機はどのような状況でも同じように利益を出しているわけではありません。
得意な状況と苦手な状況が存在する可能性があります。
しかし、ここで例えば、
4~8時間の取引が大きなマイナスだったから、4時間経過したら強制決済する
と変更するのは簡単です。
それでバックテストの成績が良くなるかもしれません。
ただ、それでは単に過去のデータに合わせただけの過剰最適化になる可能性があります。
必要なのは、
「負けた取引には、どのような共通点があったのか」
を調べることです。
Chapter2でやること
Chapter2では、
観測 → 仮説 → 検証 → 改善 → 再検証
という流れで進めていきます。
例えば、Chapter1で見つかった「4~24時間の取引が弱い」という特徴について考えてみます。
単純に保有時間が原因なのかもしれません。
しかし、
- ボラティリティが低い相場でエントリーしていた
- ボリンジャーバンドの幅が狭かった
- エントリー後にレンジ相場へ移行していた
- 特定の時間帯の取引が多かった
など、別の原因が隠れている可能性もあります。
これを調べるには、これまで使ってきた取引結果だけでは情報が足りません。
零号機に「経験」を記録させる
現在の分析では、
- いつエントリーしたか
- いつ決済したか
- いくらで売買したか
- 最終的にいくら勝ったか、負けたか
といった取引結果を中心に分析しています。
しかし、
なぜ、その取引をしたのか
を分析するには、エントリーした瞬間の相場環境も必要になります。
例えば、
- ATR
- ボリンジャーバンドの幅
- バンドまでの距離
- スプレッド
- エントリー時間
- エントリー曜日
などです。
これらを記録しておけば、
ATRが高いときと低いときで成績は違うのか
ボリンジャーバンドの幅によって勝率は変わるのか
4~8時間保有して負けた取引には、共通する相場環境があったのか
といった分析ができるようになります。
人間でいえば、
「あのとき、どんな状況で判断して、結果どうなったのか」
という経験を残していくイメージです。
これまで零号機は取引をして、その結果だけを残していました。
ここからは、
「どんな状況で取引したのか」も記録する零号機
へ変えていきます。
「学習」といっても、まだAIではない
Chapter2を「学習」としていますが、この段階でいきなり機械学習を導入するわけではありません。
まず行うのは、
過去の取引と、そのときの相場環境を結びつけること
です。
例えば、
取引A
ATR:○○
BB幅:○○
エントリー時間:10時
保有時間:90分
損益:+○○円
というように、
相場環境 → 取引 → 結果
を一つのデータとして扱えるようにします。
このデータを蓄積してPythonで分析すれば、
「どのような状況で零号機が強いのか」
「どのような状況で零号機が弱いのか」
を、これまでより細かく調べられるはずです。
まずは、零号機が自分の経験を振り返るための材料を作ります。
最終的にはMAGIシステムへ
そして、この先に考えているのがMAGIシステムです。
最終的には、相場を一つの基準だけで判断するのではなく、
- トレンドを見る判断
- ボラティリティを見る判断
- リスクを見る判断
など、異なる視点を持つ複数の判断ロジックを作り、それぞれが相場を評価する仕組みにしたいと考えています。
そして、それぞれの判断を組み合わせて、
今、この取引を実行するべきか
を最終的に決定する。
そんな仕組みを目指します。
ただし、そのためにはまず、
零号機自身の過去の経験をデータとして残すこと
が必要です。
Chapter2では、その土台を作っていきます。
次回予告
次回は、零号機に「記憶」を与えます。
MQL4を修正して、エントリー時のATR、ボリンジャーバンド、スプレッド、時間帯などの情報を保存できるようにします。
そして最終的には、
零号機
↓
trade_log.csv
↓
Python
↓
分析
↓
仮説の検証
↓
EA改善
という流れを作ります。
Chapter1では、零号機を外から観察してきました。
Chapter2では、その一歩先へ。
零号機自身に「経験」を記録させ、その経験から何を学べるのかを調べていきます。

コメント