[Mona1.1]決済のルールを変更してみる

Pocket

前回つくったMona1.0では、決済のルールを短期EMAと中期EMAのクロスとしていました。

今回はこの決済のルールを変えてみようと思います。

新しいルール

新しいルールはこんな感じにしました。

  • ロングポジションについて  終値が10EMA(中期)を下回ったら決済。
  • ショートポジションについて 終値が10EMA(中期)を上回ったら決済。

前回書いたOnTick()を新しく書き換えたのが次のコードです。

最初にポジションを保有しているかチェックして、保有中なら決済条件のチェックをおこなっています。

今回の決済条件をチェックするには、最新よりも1つ前の確定した終値の値が必要なので、CopyRatesを使ってOHLCデータを取得しています。なので、OHLCデータを格納する配列を宣言しておきます。このコードでは変数ohlcがデータ用配列です。

この値をもとに

終値<10EMA
または
終値>10EMA 

をチェックすれば決済の判断ができます。

ポジションオープンの処理は少し整理しただけで、前回の1.0でやっていることと変わりありません。

バックテストの比較

1分,5分,15分,1時間,1日でそれぞれバックテストをしてみたところ、1.0では1時間足が一番良い結果となり、他の時間足では資金がショートしました。面白いことに1.1をテストしてみるとこの5種類の時間足すべてが綺麗に資金が右下がりになってショートしました。

グラフは1時間足でバックテストした結果です。

全コード
Pocket

コメントを残す

メールアドレスが公開されることはありません。