リピートトレードEA 永遠の?デバック中
EAデバッグ、壁にぶつかる
一覧表設定読み込み版のリピートトレードをする自作のEAを起動!…のはずが、思わぬエラーがポツポツと・・・とほほ。
一覧表の作成と確認がネックでした。1マスでもずれると取り返しがつきません。しかも、どう変数に取り込まれて、おかしなことをしているのか、追い込むのが面倒でした。動作をさせるプログラムコードより、設定そのもののミスにたどり着くのはかなり時間がかかりました。何度修正しても、エラーが消えない。まるで、同じパズルを何度も組み立てるような作業に、頭がクラクラしてきました。
トレードの条件設定をする一覧表は時により頻繁に更新するので、間違いがないようにしなければなりません。
そこで、私は2つの対策を講じました。
一覧表の確認を強化: 表の見落としを防ぐために、二重三重にチェックするシステムを構築しました。
間違いの内容をPrintでメッセージ出力: エラーが発生した箇所を明確にするために、メッセージを出力するようにしました。まるで、犯人の手掛かりを掴みやすくなります。
さらなる難関、発注無限ループ
あるとき、エラーの警告音が聞こえました。今度は発注無限ループという新たな壁が現れました。まるで、終わりが見えないトンネルに迷い込んだような状況です。しかも、「時々発生する」いやなもの。
条件を少しずつ変えて、デモトレードに投げ込んで状況を再現させ、原因を追い込んでいきました。
そこで、私は2つの対策を講じました。
区間判定の後端を次の行の始め端を参照していた: 次の業の始め端の値は、その区間の後ろ端とほぼ同じなので、普通はエラーが出ませんでしたが、最後の行(区間)になってしまうと「次の行」はありません。それで、発注できない価格の組み合わせで発注を続けるということを繰り返していました。これは、原因がわかれば簡単な修正です。
買いの場合の全体範囲の上側、売りの場合の全体範囲の下側のときに処理を別処理: 上に書いたとき以外でも、なぜか発注無限ループになるきがあります。これを防ぐために、処理を分けることにしました。
努力の末、ついに成功!
これらの対策を講じた結果、ようやくEAが安定稼働するようになりました。もう少し様子を見て、安定したところで、参考プログラムを公開しようとか思っています。
この記事が気に入ったらサポートをしてみませんか?