フォワードテスト中のEAでエラーが発生。エラーはエントリー時に発生し複数の注文が重なって出たもの。エラーの実装はシステムエラーでエラー発生時にEAを停止させていた。このエラーは致命的ではないのでリトライで実装した方がよさそうなので今後修正を検討したい。
注意事項
本記事はFXの自動売買について紹介していますが内容を保証するものではありません。金銭にかかわる内容であるためご注意ください。参考にする場合は自己責任でお願いします。
EAでエラー発生
フォワードテスト中のEAで146のエラーが発生。
フォワードテスト中にエラー
ひと月ほどフォワードテストをしていたらエラーが発生。頻繁に発生しないので放置していたが最近連続で発生していたので重い腰を上げて調査。
エラーコードは146
エラーコードは146で、メッセージは「trade context is busy」。調べてみると注文が連続してサーバーで処理できずエラーが発生したよう。複数の注文が重なってエラーが起きたと考えられる。エントリー条件が同じ内容のEAを動作させていたのでその可能性は高い。
エラーの対処
実装中のEAは注文時エラーをすべてシステムエラーにしていた。なのでエラーが発生したらそのEAは停止してしまう。この後に発生するチャンスか地獄をこの仕様だと逃してしまう。バックテスト時にこのような現象は発生しなかったのでバックテストに近い期待値を求めるならリトライする仕組みの方がいいのかも。
まとめ
大したエラーではなかったのでもっと早く対応しておけばよかった。エラー処理はあまり適切ではなかったのでチャンスをいくつか逃してしまったかもしれない。エラー処理を修正した方がよさそうだ。
ポイント
- 同タイミングでエントリーするEAが複数だとエラーが発生することがある
- エラー146が発生した場合は処理を終了せずにリトライした方がよさそう
- エラー処理は今後再検討が必要
エントリータイミングがずれるとバックテストにくらべ成績が悪くなりそう・・・。