skip to main |
skip to sidebar
決済と撤退のロジックをそれぞれ一つずつ追加し、さらに設定を見直して低ドローダウン・安定運用にこだわった改良型がこちら2010.1~ EURUSD 1lot spread 2.0Total trades 887 Profit 30257 Profit factor 3.30 Maximal drawdown 1300
ポジションを持ってから大きく逆行して、勝つ見込みが少なくなったとき、いかに上手に撤退できるかが私のEA開発のカギとなります。今回の改良でストップロスを回避する確率を上昇させることができました。良いアイデアが思いついたらいつでも自由にプログラムを修正できるし、ロジックに対する信頼感もあるので、自動売買で長期的に運用していくなら自分で開発したEAが向いていると思います。
今回はエントリーのロジックを一部修正し、フィルターにはチャート分析でよく使われるindicatorの一つを追加してみました。2010.1~ EURUSD 1lot spread 2.0Total trades 701 Profit 28688 Profit factor 2.98 Maximal drawdown 1650
その結果、Profit及びProfit factorが大きく向上し、同期間のバックテストでは去年開発した15分足のEA(前回記事)をすべての面で上回ることができました。さらに、実戦を想定して少し厳しめの条件でテストしてみると、2010.1~ EURUSD 1lot spread 3.0Total trades 697 Profit 20231 Profit factor 2.07 Maximal drawdown 1984
試せることはだいたい試して、これ以上大きく向上する余地は少ないと思うので、とりあえず次の段階であるフォワードテストに進み、売買位置に問題がないか(バックテストとリアル稼動の結果に大きな差異が見られないか)しばらくの期間観察してみることにします。
トレンドフォロー型EAの戦力補強・リスク分散のため、現在別のタイプのEAの開発に取り組んでいます。新規トレンドフォロー型EAの特徴・5分足・最大ポジション数2・撤退が早い・エントリーのロジックが従来型とは異なる2010.1~ EURUSD 1lot spread 2.0Total trades 597 profit 21250 Profit factor 2.29 Maximal drawdown 1680
こちらは去年9月に開発したトレンドフォロー型EA (15分足)2010.1~ EURUSD 1lot spread 2.0Total trades 473 profit 28526 Profit factor 2.00 Maximal drawdown 1978
去年開発した15分足EAと比較して同期間のバックテストではprofitは劣るものの、Profit factor及びMaximal drawdownは新規EAの方が良好です。あとはprofitをもう少し向上できるよう改良を加えていきたいところです。
前回の記事に書いたように、Mizutoriソースコードの必要最小限の部分だけ残して
EAの軽量化を行いました。実際EAの軽量化により処理速度がどのように変化するか、
2011年1月から現在までのバックテストの所要時間により評価してみました。Mizutori改 行数 所要時間---------------------------------------軽量化前 532行 46秒軽量化後 274行 35秒 この結果、ソースコードを約半分の行数に縮小することによりバックテストの所要時間が約20%短縮されました。コンマ数秒を争う自動売買において、処理速度が速ければ速いほど他の競合プログラムより有利にトレードすることができるはずです。私が開発・使用するEAは販売用ではないので多機能である必要はなく、あくまで実用性重視です。
2月の結果これまで好調を維持してきた自作朝スキャルEAは、月曜日に窓が埋まらなかったことにより苦戦しました。しかし損失は小さく抑えられているので特に問題ではありません。一方、自作トレンドフォローEAは好調。稼動開始以来あまりぱっとしない活躍でしたが、いよいよ本気を出してきたようです。改良EAのMizutori改もまずまずの成績でした。以下、Mizutori改を一ヶ月以上リアル稼動して気づいたことと修正した点です。エントリーに関してはバックテストとほとんど同じ位置で問題ないのですが、決済ではポジションを複数持っていた場合、本来同時に決済されるべきところがなぜか決済時間がずれて(数10秒~1分)決済されることが何度かありました。今のところこれが大きな問題にはなっていないのですが、将来予期せぬ損失につながるかもしれないので原因を調べてみました。EAのログを見てみると決済エラー(Close Positions Error) がたびたび表示されていて、決済エラーの原因ははっきりわからなかったのですけれども、決済エラーの表示という命令が複数のポジションの決済を遅らせているかもしれないのではないかと考え、特に必要のない決済エラーを表示する部分のソースコードは削除してみました。すると決済エラーの表示は出なくなり、複数のポジションもほとんど時間差なく決済されるようになりました。注文の迅速な執行にはソースコードの修正が有効かもしれませんね。それ以降リアル稼動の結果とバックテストの結果に大きな差異は見られないので、引き続き様子を見ながら徐々にロットを上げていこうと思っております。
あと、Mizutoriはもともとプログラムの行数が多いので、不要な部分を削って半分程度にしたいところです。
※Mizutori_EA ソースコードの詳細説明はこちら