2012年3月31日土曜日

トレンドフィルターの検討

昨年9月に開発した自作トレンドフォロー型EA(15分足)をリアル稼動して半年が経過しました。開始後数ヶ月は一進一退の展開が続いておりましたが、今年になってから非常に調子がいいです。

この15分足のEAは単一ポジションで、TP/SL比が約1:1.4とバランスがよく平均利益が大きいのが特徴です。ただしプロフィットファクター及びMaxDDは今年開発した5分足EA(前回記事)には及びません。

さて、トレンドフォロー型EAのロジックの根幹をなすトレンドフィルターに関してこれまで一つのindicatorしか使っていませんでしたが、今回別のindicatorも試してみてその有効性を検討してみることにしました。

2010.1~ EURUSD 1lot spread 2.0

☆indicator1のみ(従来型)

Total trades 473 Profit 28518 Profit factor 2.00 Maximal drawdown 1980




☆indicator2のみ

Total trades 692 Profit 35165 Profit factor 1.81 Maximal drawdown 2040




☆indicator1+2(最新型)

Total trades 538 Profit 36169 Profit factor 2.22 Maximal drawdown 1651




27ヶ月のバックテスト期間においてトレンドフィルターにindicator2を用いた方が収益が大きくなりました。ただし、一番下のようにindicator2だけでなくindicator1も組み合わせた方が全体的にパフォーマンスは向上し、より安定した運用が期待できることが示されました。

今回の検討から、トレンドフォロー型EAのトレンドフィルターには単一のindicatorではなく、2つのタイプの異なるindicator (Dual Trendfilter) を用いるロジックの優位性が示唆されました。
indicatorの種類やその設定は無数にあるので、今回試したものよりさらに適したものがあるはずです。ここで満足することなく引き続き探索していこうと思います。

なお、今後15分足のトレンドフォロー型EAを便宜的にEA_Gyokuji(玉璽)、
5分足の方をEA_Shichiseiken(七星剣)と名付けることにします。

2012年3月24日土曜日

新規EA開発・3

決済と撤退のロジックをそれぞれ一つずつ追加し、さらに設定を見直して
低ドローダウン・安定運用にこだわった改良型がこちら

2010.1~ EURUSD 1lot spread 2.0
Total trades 887 Profit 30257 Profit factor 3.30 Maximal drawdown 1300





ポジションを持ってから大きく逆行して、勝つ見込みが少なくなったとき、
いかに上手に撤退できるかが私のEA開発のカギとなります。
今回の改良でストップロスを回避する確率を上昇させることができました。

良いアイデアが思いついたらいつでも自由にプログラムを修正できるし、
ロジックに対する信頼感もあるので、自動売買で長期的に運用していくなら
自分で開発したEAが向いていると思います。

2012年3月19日月曜日

新規EA開発・続き

今回はエントリーのロジックを一部修正し、フィルターには
チャート分析でよく使われるindicatorの一つを追加してみました。

2010.1~ EURUSD 1lot spread 2.0
Total trades 701 Profit 28688 Profit factor 2.98 Maximal drawdown 1650






その結果、Profit及びProfit factorが大きく向上し、同期間のバックテストでは
去年開発した15分足のEA(前回記事)をすべての面で上回ることができました。

さらに、実戦を想定して少し厳しめの条件でテストしてみると、

2010.1~ EURUSD 1lot spread 3.0
Total trades 697 Profit 20231 Profit factor 2.07 Maximal drawdown 1984





試せることはだいたい試して、これ以上大きく向上する余地は少ないと思うので、
とりあえず次の段階であるフォワードテストに進み、売買位置に問題がないか
(バックテストとリアル稼動の結果に大きな差異が見られないか)
しばらくの期間観察してみることにします。

2012年3月17日土曜日

新規EA開発

トレンドフォロー型EAの戦力補強・リスク分散のため、現在別のタイプの
EAの開発に取り組んでいます。

新規トレンドフォロー型EAの特徴

・5分足
・最大ポジション数2
・撤退が早い
・エントリーのロジックが従来型とは異なる

2010.1~ EURUSD 1lot spread 2.0
Total trades 597 profit 21250 Profit factor 2.29 Maximal drawdown 1680






こちらは去年9月に開発したトレンドフォロー型EA (15分足)

2010.1~ EURUSD 1lot spread 2.0
Total trades 473 profit 28526 Profit factor 2.00 Maximal drawdown 1978






去年開発した15分足EAと比較して同期間のバックテストではprofitは劣るものの、
Profit factor及びMaximal drawdownは新規EAの方が良好です。
あとはprofitをもう少し向上できるよう改良を加えていきたいところです。

2012年3月10日土曜日

EAの軽量化

前回の記事に書いたように、Mizutoriソースコードの必要最小限の部分だけ残して
EAの軽量化を行いました。


実際EAの軽量化により処理速度がどのように変化するか、
2011年1月から現在までのバックテストの所要時間により評価してみました。


Mizutori改  行数  所要時間
---------------------------------------
軽量化前   532行  46秒
軽量化後   274行  35秒

この結果、ソースコードを約半分の行数に縮小することにより
バックテストの所要時間が約20%短縮されました。

コンマ数秒を争う自動売買において、処理速度が速ければ速いほど
他の競合プログラムより有利にトレードすることができるはずです。
私が開発・使用するEAは販売用ではないので多機能である必要はなく、
あくまで実用性重視です。

2012年3月2日金曜日

明暗分かれる




  2月の結果



これまで好調を維持してきた自作朝スキャルEAは、月曜日に窓が埋まらなかったことにより苦戦しました。しかし損失は小さく抑えられているので特に問題ではありません。

一方、自作トレンドフォローEAは好調。稼動開始以来あまりぱっとしない活躍でしたが、いよいよ本気を出してきたようです。

改良EAのMizutori改もまずまずの成績でした。以下、Mizutori改を一ヶ月以上リアル稼動して気づいたことと修正した点です。

エントリーに関してはバックテストとほとんど同じ位置で問題ないのですが、決済ではポジションを複数持っていた場合、本来同時に決済されるべきところがなぜか決済時間がずれて(数10秒~1分)決済されることが何度かありました。
今のところこれが大きな問題にはなっていないのですが、将来予期せぬ損失につながるかもしれないので原因を調べてみました。
EAのログを見てみると決済エラー(Close Positions Error) がたびたび表示されていて、決済エラーの原因ははっきりわからなかったのですけれども、決済エラーの表示という命令が複数のポジションの決済を遅らせているかもしれないのではないかと考え、特に必要のない決済エラーを表示する部分のソースコードは削除してみました。
すると決済エラーの表示は出なくなり、複数のポジションもほとんど時間差なく決済されるようになりました。注文の迅速な執行にはソースコードの修正が有効かもしれませんね。
それ以降リアル稼動の結果とバックテストの結果に大きな差異は見られないので、引き続き様子を見ながら徐々にロットを上げていこうと思っております。
あと、
Mizutoriはもともとプログラムの行数が多いので、不要な部分を削って半分程度にしたいところです。

※Mizutori_EA ソースコードの詳細説明はこちら