はじめに
ここまでPythonを使って、零号機をさまざまな角度から分析してきました。
第4回から第10回にわたり、
- 基本成績
- 月別損益
- エントリー・決済時間帯
- エントリー・決済曜日
- 保有時間
- 連勝・連敗
- ドローダウン
と、一つずつ零号機を観測してきました。
最初は、
勝率は何%なのか
どれくらい利益が出ているのか
という単純な分析から始まりました。
しかし分析を進めていくと、
いつエントリーすると強いのか
どのくらいポジションを持つと弱くなるのか
どの程度の連敗が起こるのか
利益が落ち込んだとき、どれくらい回復に時間がかかるのか
といった、バックテストの最終損益だけでは分からない特徴が見えてきました。
今回はChapter1「観測」の締めくくりとして、第4回から第10回までの結果を整理し、零号機とはどのようなシステムなのかをまとめます。
そして、この観測結果をChapter2「学習」へつなげます。
零号機のプロフィール
まず、これまでの分析結果から基本的なプロフィールを整理します。
| 項目 | 結果 |
|---|---|
| 分析期間 | 2015年1月6日~2026年7月24日 |
| 初期資金 | 50,000円 |
| 最終資産 | 約272,065円 |
| 総利益 | 約222,065円 |
| 利益率 | 約+444% |
| 総取引数 | 1,720回 |
| 勝率 | 約62% |
| PF | 約1.33 |
| 平均利益 | 約856円 |
| 平均損失 | 約-1,048円 |
| 最大連勝 | 11回 |
| 最大連敗 | 9回 |
| 最大ドローダウン額 | 約29,742円 |
| 最大DD額発生時の下落率 | 約24.1% |
| 最大相対ドローダウン率 | 約41.9% |
| 最大DDからの回復期間 | 約388日 |
約11年半のバックテストで、初期資金5万円が約27万円まで増えています。
長期間にわたって利益を残している点は、零号機の大きな特徴です。
一方、勝率や最終利益だけを見ると見落としてしまう弱点も、今回の分析から見えてきました。基本分析では、勝率が約62%ある一方、平均損失が平均利益を上回っています。つまり、零号機は高い勝率によって、1回あたりではやや大きい負けを補っているシステムです。
零号機の性格診断
① 長期では利益を積み上げる「コツコツ型」
月別損益と資産曲線を見ると、零号機は一直線に利益を増やしているわけではありません。
利益月と損失月を繰り返し、
利益を伸ばす
↓
少し戻す
↓
再び利益を伸ばす
という動きを何度も繰り返しながら、長期的には右肩上がりになっています。
つまり、一発の大きな利益で資産を増やすというより、長期間にわたって利益を積み重ねるタイプと考えられます。
ただし、ここで重要なのは、
「右肩上がり=安定している」ではない
ということです。
資産曲線の中身を見ると、かなり大きな上下があります。
② エントリーする時間によって成績差が大きい
時間帯別分析では、エントリー時間によって損益にかなり大きな違いがありました。
特に目立ったのが10時台です。
10時台にエントリーした取引は、他の時間帯と比べても突出して大きな利益を生み出していました。
11時台も大きなプラスとなっています。
一方で、
9時台、15時台、17時台、21時台
などでは総損益がマイナスとなりました。
これはChapter2に向けて非常に重要な観測結果です。
ただし、
9時台がマイナス
→ 9時台のエントリーを禁止すればいい
と、すぐにEAを変更するのは危険です。
過去11年半のデータに偶然現れた偏りなのか、それとも零号機のロジックと相場環境の組み合わせによって生まれた再現性のある特徴なのかは、まだ分かりません。
Chapter1では、あくまで「時間帯によって成績差が存在する」ことを観測した段階です。
③ 曜日にも差はあるが、「苦手曜日」とまでは言えない
曜日別分析も興味深い結果になりました。
エントリー曜日別の総損益を見ると、
すべての曜日がプラスでした。
中でも水曜日が最も大きな利益を出しており、火曜日、木曜日、金曜日と続いています。
月曜日は利益が比較的小さく、土曜日はごくわずかでした。
一方、決済曜日では土曜日のみマイナスとなっています。
ここで注意したいのが、エントリー曜日と決済曜日を区別することです。
例えば土曜日に決済された取引の成績が悪かったとしても、
土曜日にエントリーすると弱い
とは限りません。
今回の分析から言えるのは、
曜日によって成績に偏りは存在するが、特定のエントリー曜日を単純に「苦手」と断定できる状態ではない
というところまでだと思います。
④ かなりはっきりした弱点――4~24時間の保有
今回の観測で、特に特徴がはっきり現れたのが保有時間でした。
保有時間別の総損益を見ると、
- 1時間未満:プラス
- 1~2時間:大幅なプラス
- 2~4時間:大幅なプラス
- 4~8時間:大幅なマイナス
- 8~24時間:マイナス
- 1~3日:プラス
- 3日以上:プラス
となりました。
特に1~4時間の取引が大きな利益を生み出している一方、4~8時間の取引は約30万円のマイナスと、突出して悪い結果です。
これはかなり強い特徴です。
単純に、
保有時間が長くなるほど悪くなる
わけではありません。
1日を超えて保有した取引は再びプラスになっています。
したがって、零号機には、
「エントリー後4~24時間付近に、特に苦手な領域が存在する可能性がある」
と考えた方が正確そうです。
これはChapter2で優先的に検証したいポイントです。保有時間分析では、実際に時間帯を複数の区間へ分けて比較しています。
⑤ 勝率は高いが、連敗は普通に起こる
零号機の勝率は約62%です。
数字だけを見ると、かなり勝てるシステムのように感じます。
しかし、取引を時系列で並べて連勝・連敗を分析すると、
最大11連勝、最大9連敗
が発生していました。
さらに分布を見ると、連勝も連敗も1~2回で終了するケースが多く、長い連勝・連敗になるほど発生回数は急激に少なくなっています。
つまり、
普段は数回程度で勝ち負けが切り替わるが、まれにかなり長い連敗も発生する
という性格です。
勝率62%だからといって、
3回負けたから異常だ
5回負けたからロジックが壊れた
とは判断できません。
バックテストでは最大9連敗まで発生しています。
これは将来実運用するときに、システムが正常なのか異常なのかを判断する一つの参考値になりそうです。
⑥ 最大の弱点は「負けること」より「回復に時間がかかること」
ドローダウン分析では、最大ドローダウン額は約29,742円でした。
最大ドローダウン額が発生した局面では、
2017年4月24日
に最高資産約123,643円を記録した後、
2017年8月11日
に約93,902円まで下落しました。
下落率は約24.1%です。
さらに、割合として最も深いドローダウンは別の時期に発生しており、最大相対ドローダウン率は約41.9%でした。
しかし、個人的に金額以上に重要だと感じたのが回復までの時間です。
最大ドローダウンが始まる前の最高値を再び更新したのは、
2018年5月17日。
ドローダウン開始から約388日かかっています。
つまり実際に運用していたとすれば、
1年以上、過去最高資産を更新できない状態でも零号機を信じて動かし続けなければならなかった
ことになります。
これは結構つらいです。
長期バックテストを後から見れば、
最終的には利益が出ている
と言えます。
しかし、リアルタイムで運用している人間には、その後回復する保証などありません。
零号機のリスクは、単純な最大損失額だけではなく、長い停滞期間に耐える必要があることにもあるようです。
ここまでの観測から見える「零号機」
ここまでの結果をまとめると、零号機はこんなシステムに見えます。
| 特徴 | 評価 |
|---|---|
| 長期収益性 | ◎ |
| 勝率 | ○ |
| 時間帯への依存 | 大きい |
| 曜日への依存 | あり |
| 保有時間への依存 | かなり大きい |
| 連敗耐性 | 最大9連敗を想定する必要あり |
| ドローダウン | 大きい |
| 回復速度 | 遅い局面あり |
| 長期耐久性 | ○ |
一言で表すなら、
長期では利益を積み上げるが、得意・不得意がかなりはっきりしていて、ときどき長い不調期に入るシステム
でしょうか。
万能ではありません。
むしろ、今回の分析で見えてきたのは「どこでも同じように勝てるシステムではない」ということでした。
Chapter1で分かったこと
Chapter1「観測」を始めたときは、とりあえずPythonでバックテスト結果を分析してみよう、というところから始まりました。
しかし、第4回から第10回まで分析を続けたことで、
零号機には「性格」がある
ように見えてきました。
10時台にエントリーした取引が強い。
1~4時間の取引が大きな利益を生み出す。
4~24時間では大きく成績が悪化する。
最大9連敗する。
大きなドローダウンから回復するまで1年以上かかることもある。
こうした特徴は、総損益や勝率だけを見ていても分かりませんでした。
一方で、ここで大事なのは、観測結果をそのままルールにしないことだと思います。
例えば、
4~8時間の取引が大赤字だった
→ 4時間で強制決済する
と変更すれば、バックテスト上の成績は改善するかもしれません。
しかし、それでは単に過去データに合わせただけの過剰最適化になる可能性があります。
なぜ4~8時間が弱かったのか。
どのような相場で発生しているのか。
別の期間でも同じ傾向が出るのか。
そこまで検証して初めて、改善の材料として使えるはずです。
Chapter1でやったのは、
答えを出すことではなく、問いを見つけること。
そう考えると、この章の役割がかなりはっきりします。
Chapter2「学習」へ
ここからChapter2に進みます。
Chapter1では、
何が起きているのか
を観測しました。
Chapter2では、
なぜ起きているのか
を調べます。
そのためには、これまで使ってきたバックテスト結果だけでは情報が足りません。
例えば4~8時間保有した取引が負けていたとしても、
- エントリー時のボラティリティはどうだったのか
- ATRはいくつだったのか
- ボリンジャーバンドの幅はどうだったのか
- エントリー時刻は何時だったのか
- そのとき相場はトレンドだったのか、レンジだったのか
といった「その取引が行われたときの相場環境」が分からなければ、原因までは分析できません。
そこで次のステップでは、零号機自身に取引時の情報を記録させます。
これまで零号機は、
エントリーする
決済する
結果だけ残す
というシステムでした。
ここからは、
「自分がどんな状況で取引したのか」を記憶するシステム
へ変えていきます。
次回予告
Chapter2「学習」開始。
まずは、これまでの観測結果から零号機が何を学ぶべきなのかを整理します。
そして、
MQL4 → trade_log.csv → Python
という新しい分析基盤を作っていきます。
エントリーした瞬間のATR、ボリンジャーバンド、スプレッド、時間帯などを記録し、それをPythonへ渡す。
これまで結果だけを見ていた零号機に、少しずつ「記憶」を与えていきます。
Chapter1「観測」はこれで完結。
ここから、零号機を「分析する」段階から、
零号機に「学習させる」段階へ。
ランダムウォークへの挑戦は続きます。

コメント