MT4 EA バックテストについての質問です。

自作EAの中に「約定済み注文」と「未約定注文」の数を取得するプログラムを組み込み、

未約定注文が約定(ポジションを持ったら)したら、新たに注文を出すというプログラムを書いていたのですが、

バックテストしてみたら予想していた動きと違ったので、よくよく調べてみると

2015.11.26 12:33:16.612 2005.01.10 06:53 Tester: order #10, sell 0.01 EURJPY-cd is opened at 136.883

と表示された後と前とで

OrderTotal(); の結果に変化がないことがわかりました。

「未約定(指値)注文が約定注文に変わっただけなんだから変化なくて当たり前だろ」
(約定数・未約定数もともと1ずつの場合)
未約定数=1 → 0 になり
約定数=1 → 2 になって
トータル=2 → 2 になっただけだろ!

と思われるかもしれませんが、注文が約定すると(ポジションを持つと)すぐに次の発注がかかるようにしてあるので、約定数が増えても未約定数に変動はないプログラムです。

自分でも書いていてわかりづらいので時系列でいうと

?約定数=1 未約定数=1 トータル=2(約定・未約定ともに1ずつ)
?未約定注文が約定しました。
?約定数=2 未約定数=0 トータル=2→新たに指値オーダー(指値1つ発注)
?約定数=2 未約定数=1 トータル=3(指値は発注されたので約定数が増えるだけ)

となるはずなのですが、

?約定数=1 未約定数=1 トータル=2(約定・未約定ともに1ずつ)
?Tester: order #10, sell 0.01 EURJPY-cd is opened at 136.883(←これが表示されても)
?ここも表示されない
?約定数=1 未約定数=1 トータル=2(約定数に変化がない)

となってしまうのです。

デモトレードではうまく機能している(成行でポジっても、指値発注かけてもきっちりカウントされているので困っています。

これはバックテスト特有のものなのでしょうか?

OrderTotal(); は表示しっぱなしになっているので、隙間を抜けて他のポジションが決済されているという可能性は無いと思います。(約定数 ± 0という可能性は無いと思います。)

なにか原因・要因わかる方がいらっしゃいましたら知恵をお貸しください。宜しくお願い致します。

回答1

ヒント
バックテスト特有のものッッッ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA