では早速、プログラムを修正し、バックテストで確認してみたいと思います。
MetaTrader より”Test1”プログラムを MetaEditor で開きます。
#MetaTrader 画面のナビゲーターウィンドウより Test1 を右クリックし、修正を
#選択すれば”Test1”プログラムを直接 MetaEditor で開くことができます。

下図のように、ini Start() のエリアに前回調べた OrdersTotal() を書きます。

#前回まで残っていた Print("Test1プログラム・・・")の文字表示行は邪魔なので削除しました。
書けたら、コンパイルボタンを押してプログラムにエラーがないことを確認します。

これでプログラムの修正が終わり、実行準備ができました。
では、前回と同じ条件でバックテストで動かしてみます。

テスターウィンドウの結果タグにて注文&決済履歴を見てみると、

①処理1で注文番号1として指値注文
②処理2で注文番号1の指値注文が実行され買いポジション保有
③処理3で注文番号1で保有したポジションを決済
④処理4で注文番号2として指値注文
⑤処理5で注文番号2の指値注文が実行され買いポジション保有
⑥処理6で注文番号2で保有したポジションを決済
:
:
見事に「指値注文 -> 買い -> 決済」を一つのポジションで繰り返しています。
ちなみに、自分で作った”Test1”プログラムによって実行されているものは、上記①④などの指値注文のみであり、②③⑤⑥などの「買い」や「決済」は注文に従ってサーバー側で条件が一致した際に勝手に処理されます。
一応、グラフも確認すると、右肩上がりで利益確保できています。

これで、注文しすぎは防げました。
0 件のコメント:
コメントを投稿