Cradle ~ゆりかご~
どうも、miccoです^^
今日は自作EAをご紹介いたします。
第2作目となるEAの名前は、
「Cradle」です。
タイトルで先に出してますし「ジャーン!!」という感じでもありませんが笑
処女作の自作EAは「Rhino(サイ)」と動物の名前を付けました。その他未公開自作EAたちには動物や自然から名前を付けています。今回の Cradleもロジックの特徴からイメージされる自然(自然現象)から名前を付けました。
その辺も含めてご紹介させていただきたいと思います。
Check
どんなEA?
- 通貨ペアは「 EUR / JPY 」
- トレードスタイルはトレンドフォローのデイトレード
- 1時間足で稼働させるため、短時間足稼働のEAよりも相場のノイズを拾いにくい設計
- 高勝率で負けにくくメンタルに優しい
- 負けても早く取り返す高リカバリファクター
- 1トレード当たりの期待値が高い高期待利得タイプ
- ブローカーを選ばない高スプレッド耐性
- 高プロフィットファクター
- エントリーは始値始動で再現性を重視した設計
- 適切な損切り幅を内部ロジックが自動で判断
- 最大ドローダウンは0.1lot運用で$306の安心設計
- 運用しやすい最大 1ポジション
- 両建・ナンピン・マーチンゲールといった、リスクの高いトレードは行いません!
- 読み方は「クレイドル」
トレードの様子
2019年11月のトレードの様子を動画にしてみました。
読み込みに時間がかかってはいけないと思い、ファイルサイズが10MB以内に収まる様にしました。
プロモーション的な動画になりますので、できるだけ直近で、尚且つできるだけカッコいい場面を切り取ってみました。笑
見慣れたmyfxbookのフォームで成績を確認
EAの成績の把握に普段からよく使われているmyfxbookですが、Cradleのバックテストの結果をぜひ見慣れたmyfxbookのフォームでご覧ください。
特に取引履歴をご覧いただくと、トレード毎の利益・損失がわかりやすくて運用のイメージがしやすいと思います。
Cradle 0.1lot 運用
Cradle 1.0lot 運用
ロジックの特徴
Cradle の特徴をご紹介します。
フリーテイクプロフィット&フリーストップロス
Cradleの一番の特徴は、固定したテイクプロフィット(以下、TP)を使用せず、また、ストップロス(以下、SL)に関してもユーザー側で固定した任意のSL値を設定しなくても、内部ロジックにより相場のボラティリティに合わせた適切なSLでトレードします。
ただし、ポジションが損失の許容を超えた大きなボラティリティに曝されてしまうリスクがあるため SLには最大値を設定できるようにしました。
例えば、相場のボラティリティによってはSLを20pipsや30pipsに設定してエントリーすることもあれば、相場が激しく動いている際には100pips程度のSLを設定することもあると思います。最大SL値を60pipsに設定していれば内部ロジックが自動的に設定するSLは60pipsが上限になり、その範囲でボラティリティに合ったSL幅でトレードします。
0.1lotで60pipsの損切ですと約-6,000円、1.0lotで約-60,000円ですね。
この辺りは証拠金額や損失を許容できる範囲には個人差がありますので、最大SL値はいくらに設定するのが正しいかは言及しかねますが、デフォルト値としては最大SL値 = 60pipsが個人的にはバランスが良いと考えています。
次の表をご覧ください。
この表はCradleの最大SL値を20pipsずつ変更してバックテストした結果です。
リカバリーファクター(以下、RF)やプロフィットファクター(以下、PF)等が最も良くなる最大SL値は120pipsですが、その他のステータスとのバランスから60pipsをデフォルト設定に採用しました。単に「低いSL」が私好みということもありますが。笑
そして実は、Cradleは最大SL値を狭くしてもある程度のパフォーマンスを発揮します。
上表をご覧いただくとお分かりになるかと思いますが、Cradleは最大SL値20pips~ 運用可能です。が、最大SL値20pipsでは少しパフォーマンスに物足りなさを感じますね。そこで、最大SL値を120ippsに設定すると最も良いパフォーマンスを発揮します。損失を120pipsまで許容できるのであれば最大SL値120pipsでの稼働がいいかもしれませんね。
個人的には、トレード毎に120pipsのリスクの可能性を抱えてエントリーするのは負担に感じます。ロット数を少なく調整すればいいのですが、小さく張っていくよりも最大SL値60pipsの設定で倍のロットを張ってトレードする方が効率は良いと考えます。
余談ですが、上表の勝率をご覧ください。
SL値を大きくするにつれて勝率が上がっているのが確認できますね。残念な「高勝率EA」のカラクリがまさにこれです。僅かなTPを獲るためにリスクを大きくとって勝率を高めています。SLが200pipsや500pipsといった高勝率EAもありますが、マジックでもなんでもありません。
エントリー後にポジションの反対方向に相場が動いて含み損になっても、相場はいずれ戻ってくることが多いので、損切せずに値が戻るまで2円~5円もの値幅で待っているというだけのことです。
含み損を抱えたまま期待どおりに値が戻ってこなければ特大ドローダウンは免れず、その1回の負けトレードで数十回分の利益を全て吐き出しかねない恐ろしい仕様です。
驚異の大宇宙パワーと引き換えにランプに封印されたジャファーの様ですね。笑
戻ります。
各バックテストのレポート結果は以下からご覧いただけます。
最大SL 20pips | 最大SL 40pips | 最大SL 60pips | 最大SL 80pips |
最大SL 100pips | 最大SL 120pips | 最大SL 140pips | 最大SL OFF |
次に、上表右端の「SL OFF」の列をご覧ください。
こちらは文字通り、最大SL値を設定せず(正しくは10000pipsに設定)してバックテストした結果です。固定のTPおよび固定のSLを設定せずとも、他と遜色のないパフォーマンスが出ている事が確認できます。
Cradleは内部ロジックによって、とめどなく繰り返される値動きの上下の揺らぎにその都度適切なSL幅で対応しながら、獲れる分だけを確実に獲っていきます。
まさにこの「相場の揺らぎに身を任せる」というロジックの特徴から【Cradle】と名付けました^^
メンタルに優しい高勝率
勝率が高めのロジックですので、負けにくくメンタルに優しい仕様としています。開発途中に勝率83%にもなりましたが、リスクリワード(平均勝ちトレード÷平均負けトレード、以下 RR)が小さくなりすぎてしまう事や取引回数が少なくなってしまい、個人的に好みではないスペックでした。ですので、改めてロジックを見直し、現在の勝率77%に落ち着きました。
唸るほどの高勝率ではありません。前述したように RRを小さくして勝率だけを高めても、一度の損失で焼け野原になってしまっては意味がありませんので全体的なバランスを重視しました。
ロジックを見直すことで RR、RF等に関してはチューンアップしましたが、勝率に関してはデチューンすることで全体的なバランスを保ちました。
ちなみに過去10年間の内に記録した最大連勝数は19回で、最大連敗数は5回でだったようです。
スプレッド耐性
期待利得は 純益 ÷ 取引回数 で算出され、1トレードあたりの平均期待利益のことです。これはそのEAのスプレッド耐性にもつながる数値です。
Cradleは0.1lot運用で期待利得 $4.1ですので、pipsで表すと4.1pipsです。余程マイナーなブローカーでもない限りEUR/JPYの平均スプレッドは概ね1.5~2.5pips程度だと思うので、ある程度どこのブローカーでもスプレッド負けすることはないことが確認できます。
以下に1.0pips~4.5pipsまでの固定スプレッドでCradleをバックテストした結果を掲載いたします。
1.0pips | 1.5pips | 2.0pips | 2.5pips |
3.0pips | 3.5pips | 4.0pips | 4.5pips |
この損益グラフから、固定スプレッド4.5pipsでは中盤から利益が伸び悩んでいるのがわかります。固定スプレッド4.0pipsがギリギリかなといった印象です。
これより、Cradleのスプレッド上限は4.0pipsとなります。
年単位での収益バランス
上画像は2010年から2019年の年ごとの0.1lot運用での収益結果です。
レポート結果を見る際に見落としがちですが、例えば、10年間の結果だけを見るととても優秀に見える成績のEAでも、年単位で確認すると前半(ここでの2010年~2015年)にその成績のほとんどの利益を出し、後半から失速しているというのも見かけます。
Caradleは2011年・2012年・2018年は少ないですが、その他の年は概ね$600前後とバランスの良い成績です。特に注目なのが、数あるEAが調子を崩した2019年の成績がとても良い点です。
次の画像をご覧ください。
過去10年間の各月の成績です。(0.1lot運用)
これを見ると2019年は月単位で7月以外はすべて勝ち越しています。
「EAが苦戦した年」と言われた2019年ですが、Cradleにとっては得意相場だったようです。また、Cradleのコアロジックには他のEAには使用されていないインジケーター「RCI」を使用していることもあり、他のEAとの相関性が低くなりやすく、他のEAの損失を補填する働きに期待できると考えられます。
そして次の画像をご覧ください。
各年の収益とPF、取引回数、勝率を拾った表です。
PFについては2011年が少し低いですが、毎年概ね1.5前後で運用されています。また、取引回数に関してもどこかの年にだけ偏ることもなく、毎年平均135回程度でバランスが良いですね。続いて勝率についても、突出して勝率が高い年、または低い年という年もなく、毎年偏りが少ない事が確認できます。
得意な月、不得意な月
上画像は過去10年間の各月ごとの成績を表したグラフです。
ひと際目立って利益を獲っている月があります。それは「1月」です。突出して成績が良いことがわかります。先の項で掲載した各月の成績(Monthly Parformance)を見ると、確かに全体的に1月は調子はいいのですが、特に2010年1月の成績がこの結果を呼んでいる様にも見えます。この表を見た感じですと、1月に並んで6月も得意な様です。6月は10年間で1度だけマイナスになっただけで他の9年間に関してはプラス着地しています。
逆に不得意な相場が「7月」ですね。マイナスにはなっていないものの12カ月の中で最も苦戦している月となっています。続いて8月もあまり得意ではないようです。夏枯れ相場という言葉を耳にしますが、Cradleは7月・8月が不得意だと言えます。
ロングとショートのバランス
上画像はロング(買いポジション)と、ショート(売りポジション)のバランスについての円グラフです。EAを選定する際に見落としがちな部分ではないかと思います。例えば、いかにも成績優秀なEAの商品ページがあってもフタを開けると「実はショートのみが優秀で、ロングに関しては右肩下がりになっている」といったEAもあります。または、どちらか不得意な方にフィルターを過剰にかけて成績を絞っているEAもあり、ロングとショートの取引回数のバランスが極端にどちらかに偏っているEAは過剰最適化の疑いが持たれます。
個人的な考えですが、ロングとショートは値動きの性質が異なるという考えから、Cradleはロングとショートを別のものとして開発しています。もちろんコアロジックは同じですが、エントリーや決済のタイミングはそれぞれ独立して設計しています。そのため上画像の様に、ロングとショートが「49:51」とバランスよく満遍なくトレードします。
次の2つの画像は、ロング・ショートのそれぞれ成績を表した損益グラフです。
上がロングのみ、下がショートのみの損益グラフです。
前半のショートが苦手な相場をロングがカバーしています。また逆に、中盤ちょっと過ぎあたり、ロングがドローダウンしている場面ではショートが利益を出して補っています。
そうして得られた過去10年間の損益グラフが下画像です。
前半2011年5月~2012年3月はドローダウンしていますが、その後は現在2019年12月まで毎年ほぼ同様の角度で着実に利益を増やしていることがわかります。2018年は少し苦戦が見られますが、その分を2019年で巻き返すかのごとく最高益を更新しています。
モンテカルロ分析
モンテカルロ分析でロジックの堅牢性を確認した結果です。
全取引データからランダムに5%の結果を間引いた(何かしらのエラーで取引がスキップされるアクシデントを想定)結果を1,000回繰り返した際に、元々のバックテストデータからどの程度のブレが生じるかを確認します。このブレの大小で堅牢性のあるロジックなのかを分析しています。
ここで確認するのは、OriginalとConfidence level 95%のMax%DDの差です。個人的にEAを選定する際、この差が2%以内に収まらなければ使えないと判断しています。
上画像より、Cradleは最大ドローダウン割合が、Original = 2.41%に対してConfidence level 95% = 3.00%なのでその差は0.59%と、差がかなり小さいく、これよりロジックの堅牢性はあると判断できます。
また、1,000回行われたテスト結果が下画像です。
1000回分のテスト結果が表示されているので虹色の帯の様になっていますが、この帯の幅がCradleを運用した際に想定される収益またはドローダウンの幅となります。いろんなEAで試してみるとおわかりいただけると思いますが、この帯の程度の幅ですと狭い方で安定していると言えます。
次に、この先Cradleを運用した場合の統計的な予測が下画像です。
バックテストは2019/12/21までで行っていますので、その先270トレードの統計的予想損益グラフになります。あまりアテにはなりませんが、これまでと同様の角度での右肩上がりに期待できそうですね。
充実した時間制御系の設定を搭載
時間制御に関する様々な機能を搭載することで、ポジションがリスクに曝される機会を抑制できる仕様にしました。
- 週末ポジション強制決済
週末に有事が起こることが多いため、週末にポジションを持ち越さない設定ができるようにしました。 - 年末年始のエントリー制限
年末年始は世界的に相場参加者が少なくなり値動きが荒れやすいため、相場が安定するまで年末年始のエントリーを制限できるようにしました。 - サマータイム自動補正
パラメータ設定でGMTと、サマータイムタイプに米国式サマータイム、もしくは英国式サマータイムかを設定するだけで、それぞれのサマータイム時期にGMTが自動的に補正されます。 - ロールオーバー時間の考慮
ほとんどのブローカーでロールオーバー時間前後は注文を受け付けません。そのタイミングにエントリー、もしくは決済のフラグが立った場合にロールオーバー時間が経過するまで発注を遅延させることでエントリーや決済の機会を逃さない仕様にしています。 - 瞬間的な注文エラーへの対応
裁量トレードをされた事がある方であれば経験があるかと思いますが、EAのフォワード運用でも同様に瞬間的に注文が通らない事があります。そういった場合に、数百ミリ秒後に注文をリトライすることで対応(最大リトライ回数 3回)し、エントリーや決済の機会を逃さない仕様にしています。 - その他の注文エラーへの対応
通信途絶等の数秒~数分間程度の通信障害や、その他何らかの原因で注文エラーがあった場合に備え、注文エラーから数分後にリトライする仕様にしています。
あとがき
以前から考想していたロジックをやっとEAにできました。というのも、インフルエンザになってしまい、5日間も家族から隔離状態でしたので、ちょうどその持て余した時間に取り組むことができました。笑
今回の Cradleは、前作の Rhinoとはまた違った持ち味のEAです。
これからGogojungleに出品申請しますので、お披露目は年明けになると思います。Cradleは毎年1月が成績が良いのでスタートダッシュを決めてくれると嬉しいなとワクワクしています。
それでは皆様、よいお年を!
では^^
Comment
rhinoがほとんど利益を出せていないので、こちらの新作には期待しています。
先日のrhinoとmusashiのセットがとてもお得で、先行でrhinoを買った身としてはとてもショックでした。rhino単品で早くに買った人に対してご配慮あると嬉しいです。
ありがとうございます^^
Rhinoは年末年始に大きく利益を獲りましたが、不安定な相場なためEAの稼働を止められてた方も多かった方と思います。
Rhino×MUSASHIのコラボ企画はお恥ずかしながら大コケでして、今現在1本もご購入いただいておりません(T-T)
なので、安価で打ち出したものの、誰一人にも「お得」をご提供出来ていないのが現状です^^;
とは言え、私とRhinoを信頼してご購入いただいたせす様をはじめ、他のユーザー様方には大変感謝しております。その感謝の気持ちを何かしらの形でご用意させていただいておりますので、もうしばらくお待ちいただけると幸いです^^
今後とも宜しくお願いいたします。
せす様
いつもお世話になっております。
1/15(水)にRhinoユーザー先着30名様にCradleに関する「特別ご案内状」をお送りさせていただいております。
ご覧いただいていればいいのですが、まだご覧いただいていない様でしたらお早めにご確認お願いいたします。
[…] Rhino, Cradle, THE […]