EAを作るとき、同じルールを2回書いています。
1回目は Python で、2回目は MT5 で動くEAとしてです。

 

Python はたくさんの案を短い時間で回すため、MT5 は最後に確かめるためです。
この2つが同じ売買をしていないと、Python で選んだ案は当てになりません。

 

今週、別のEAで2つの約定を1件ずつ突き合わせました。
ずれた理由を3つ書きます。

 

 

決済の値段は、決めた値段ではなかった

 

利確と損切りの値段を、先に決めて注文に付けています。
Python では、その値段で決済したことにしていました。

 

MT5 のテスターでは、価格がその値段に触れたときの、そのティックの価格で決済されます。
値が飛んだときは、決めた値段より先で決済されます。

 

値が飛んだ回は、その分だけ損益が合わなくなります。

 

 

取引できない時間は、決済もされない

 

保有時間に上限を付けていて、時間が来たら決済する作りです。
Python では、上限の時刻ちょうどに決済していました。

 

MT5 では、その時刻が取引できない時間帯だと決済されません。
取引が始まってから決済されます。

 

週末をまたぐと、決済の時刻も値段も別物になります。

 

 

1.33516 と 1.3351600000000001

 

3つ目は、小数の扱いでした。

 

コンピュータの小数は、ぴったりの値を持てないことがあります。
価格が 1.33516 のつもりでも、中では 1.3351600000000001 になっていることがあります。

 

MT5 のテスターは、価格を銘柄の最小単位に丸めてから比べていました。
なので、この2つは同じ値として利確に届いたことになります。

 

Python はそのまま比べていたので、届いていないことになりました。
168件のうち147件目で、決済が1秒ずれていました。

 

 

全部そろってから、Python の結果を使う

 

3つを直して、168件すべての時刻・銘柄・売りか買いか・約定価格・損益が一致しました。

 

今は、新しい期間や設定で試すたびに、この突き合わせを先にやります。
一致してから、Python の結果を使います。

 

1件でもずれていたら、その案の Python の損益は使いません。

 

 

日経平均は、10日で5,000円以上動きました

 

前の記事で、10月5日の日経平均が69,946円だったと書きました。
10月15日の終値は64,425.95円です。

 

15日だけで3,318.34円下げています。
下げ幅としては、歴代3番目だそうです。

 

きっかけは、9月の米消費者物価指数が予想を上回ったことです。
FRBの早期追加利上げ観測が再び強まり、米国でAI関連の株が急落した流れを受けて、半導体を中心に売られました。

 

10月5日に書いたのは、追加利上げ観測が後退して上げた話でした。
同じ観測が、今度は逆の向きに効いたことになります。

 

前の記事では、3つを確かめたうえでバックテストから始めるつもりだと書きました。
日経平均でのバックテストは、まだ始めていません。

 

先にやっていたのが、上の突き合わせです。
この値幅を Python で回したときに、その結果を使えるようにしておきたかったからです。

 

始めたら、結果は良くても悪くても同じ形で出します。

 


 

稼働状況(10月15日時点)

今日の確定した損益 +11,790円

10月の確定した損益 +195,279円
9月の確定した損益 -994,802円
8月の確定した損益 +50,000円

開始からの確定した損益 -749,523円(8月18日から)

 

EA開発ログのnoteで口座ごとの記録を読む

 

 

 

 

EA開発ログのLINEでEAを受け取る