EAの開発やってるよ!

THE GAP

 
この記事を書いている人 - WRITER -
今までいろんな小遣い稼ぎを実践してきました。最終的にMT4でEAを稼働させる運用方法に落ち着きました。EAを自作したりもしています。気まぐれにサイトの更新が止まったりしますが、メッセージいただければかなり喜びます。よろしくお願いいたしまーす。
詳しいプロフィールはこちら

どうもー、miccoです^^

ちょっと画面横のスクロールバーを見てみてください → → →

 

 

そうです。

今回は長いです。笑

 

私の第3作目となる自作 EAについてのお話です。

はじまりは2018年末。

以前から懇意にさせていただいている、HANAや SoRAの開発者である takahさん(@fxtakah)と FXや EAについて情報共有しているやり取りの、ふとした瞬間に THE GAPは芽吹きました。
[blogcard url=”http://fx-takah.blog.jp/”]

 

私はいつもの様に、何の気も無く[あるロジック]についてtakahさんにご相談していました。そのロジックというのは、トリガーとしての根本的なロジックは古くから周知されているもので、そこに独自の味付けを施したというものです。

その時は「使えそうですよねー」程度の雑談で終始しました。

 

年が明けて 2019年。
正月ムードが落ち着いた頃、takahさんからご連絡がありました。

takah「時間があったのでmiccoさんのロジックを実際にコーディングしてみました」

 

なんと!さすが takahさん。

何気に話題にしたロジックでも”とりあえずコードにしてみる“という姿勢は見習わないといけないなーと思っているところに続けて、

 

takah「私とコラボをしませんか?ここまでのソースファイルをすべて引き継ぎますので、miccoさんが思う姿に仕上げてみてください。」

 

こうして私とtakahさんによるコラボEA THE GAP が動き始めました。

この時点でTHE GAPは takahさんの手を離れ、実用可能なEAとして完成させるために必要なロジックの精査、調整、コードの追加等の全てを私が担いました。takahさんの手から離れたと言っても、途中で意見交換したり、フォワード開始後も3カ月程度はどう評価していくか等を話し合っていました。

それ以降は、私もTHE GAPを放置し、1カ月に1度動作確認する程度でフォワード計測をしていることを忘れていることすらありました^^;

そして先日、フォワード開始から1年以上経過していることに気付き、長期フォワードで成績も安定していることが確認できたため、この度公開する運びとなりました。

 

そのEATHE GAP」の全貌をここに公開いたします。

基本仕様

THE GAPの基本仕様は以下のとおりです。

 

通貨ペア

AUD/CAD, AUD/JPY, AUD/NZD, AUD/USD, CAD/CHF, CAD/JPY, CHF/JPY, EUR/AUD, EUR/CAD, EUR/CHF, EUR/GBP, EUR/JPY, EUR/NZD, EUR/USD, GBP/AUD, GBP/CAD, GBP/CHF, GBP/JPY, GBP/USD, NZD/CHF, NZD/USD, USD/CAD, USD/JPY (23通貨ペア)

タイムフレーム  M5
戦略  プライスアクション
スタイル  スキャルピング, デイトレード
最大ポジション数  各通貨ペア 1ポジション
最大/最小Lot  ブローカーに依存
TakeProfit / StopLoss  [買: 100 pips / 35 pips] [売: 25 pips / 50 pips]
両建て/ナンピン/マーチン  なし
動作タイミング  Entry : 始値, Exit : Tick

その他の基本機能は以下のとおりです。

  • 複利機能
    許容するリスクを指定し、複利運用ができる様にしました。
  • ポジション保有時間制限
    ポジションの保有時間が設定時間に達すると強制的にポジションをクローズし、リスクに曝される機会を制限できるようにしました。

 

 

続いて、主だった特徴をピックアップします。

特徴

  • シンプルなロジック構成
  • 複数通貨ペアに対する高い汎用性
  • 1年を超えるフォワードで安定したパフォーマンス
  • 逆行時も安心の狭いストップロス
  • 小さく抑えられたドローダウン
  • 勝率とリスクリワードの良バランス (70% : 0.8)
  • スプレッド耐性のある高い期待利得
  • 高いリカバリーファクター
  • 最短1分~最長4時間半の短い滞空時間

極めてシンプルなロジック

THE GAPのロジックは極めてシンプルに仕上げることにこだわりました。

ロジックがシンプルであるほど相場への汎用性が高まると考えているからです。

 

 

ロジックの内容は以下のとおりです。

 

エントリー
プライスアクションのみでエントリーの判断を行います。
インジケーター等によるエントリーフィルターは一切使用しません

 

イグジット
・TP / SLによる成行決済
・ポジション保有時間決済
・ある1つのインジケーターを使用した内部ロジック決済

 

以上です。

ものすごくシンプルですよね。

ロジック公開

それではロジックの詳細をご説明します。

エントリー戦略

まず、エントリーについてです。

THE GAPはプライスアクションでエントリーのタイミングを計ります。

 

そのトリガーとなるプライスアクションは【 窓開き 】を狙います。古くから馴染みのあるプライスアクションですが、今でもエッジがあることが確認できています。

 

 

THE GAPのエントリーロジックは「窓埋め」や「ギャップトレード」と呼ばれる手法をトリガーにしてポジションを持ちます。ギャップダウン(上画像)ならロング(買い)、ギャップアップならショート(売り)です。

窓開きを狙うタイミングは”月曜日の相場オープン直後のみ“です。
ですので、エントリーの機会が訪れるのは1週間に1回、1カ月に4~5回、1年で約52回となります。窓開きが十分でない月曜オープンもありますし、月曜オープン時はスプレッドが大きく広がりやすくエントリーを見送ることもあります。

そのため、THE GAPは限られた少ない機会の中でチャンスをうかがい、確かなエッジで確実に利益を狙っていきます。

 

イグジット戦略

次に、イグジットについてです。

 

イグジットのロジックは以下の3パターンです。

・TP / SLによる成行決済
・ポジション保有時間決済
・ある1つのインジケーターのみを使用した内部ロジック決済

 

一つずつご説明いたします。

 

TP / SLの成行決済
EAの”パラメータ設定値に到達したら決済”するという一般的な成行決済です。THE GAPの TP / SLは 買: 100 pips / 35 pips、売: 25 pips / 50 pips をデフォルト設定にしています。この設定値はロジックを精査して、同一設定でできる限り多くの通貨ペアで汎用的にパフォーマンスが出る値を導き出した結果です。
後述の各通貨ペアのバックテストの結果をご覧いただければ、全ての通貨ペアでパフォーマンスを得られてる事が確認できます。

 

ポジション保有時間決済
エントリーから決済までの時間を管理し、ポジションを持ってから設定時間になった時点で決済します。デフォルト設定のポジション保有時間は 4時間程度に設定しています。つまり、月曜オープンから最長でも4時間程度でその週の勝敗が決まります。

 

内部ロジック決済
一般的に”価格の売られ過ぎ・買われ過ぎ“の参考に用いる CCI (Commodity Channel Index) を内部ロジックに採用しています。値動きに対する反応の速さに期待できるためこのインジケーターを採用しました。

 

以上が THE GAPのロジック詳細です。

極めてシンプルなロジック構成であることがおわかりいただけたかと思います。
シンプルを追求することで相場への汎用性を求めました。

複数通貨ペアに対応する汎用性

前述の「基本仕様」にも記載のとおり、対応する通貨ペアは以下の23通貨ペアです。

AUD/CAD, AUD/JPY, AUD/NZD, AUD/USD, CAD/CHF, CAD/JPY, CHF/JPY, EUR/AUD, EUR/CAD, EUR/CHF, EUR/GBP, EUR/JPY, EUR/NZD, EUR/USD, GBP/AUD, GBP/CAD, GBP/CHF, GBP/JPY, GBP/USD, NZD/CHF, NZD/USD, USD/CAD, USD/JPY

これらの複数通貨ペアに対して、ロジックはもちろんのこと、パラメータ値についても同一設定である程度のパフォーマンスが発揮できる汎用性が確認できています。

 

これら全通貨ペアのバックテストの結果をご覧ください。

23通貨ペア 全てのバックテスト結果

前述の各通貨ペア全てのバックテストの結果を掲載しました。

以下の環境でバックテストを行いました。
・Tick Deta Suite
・Tickデータ:Dukascopy
・ボリューム:0.1 Lot(USD建て)
・スプレッド:変動(変動スプレッド設定については後述
・テスト期間:2010/04/01 ~ 2020/03/31(10年間)

 

スプレッドについては通貨ペアによって拡大幅にかなりの差があるので、スプレッドフィルターのみ各通貨ペアの特色に合わせてパラメータ値を調整しています。スプレッドフィルター以外のパラメータ値は全て同一設定です。

レポート結果の画像をクリックすると画像が大きくなります。通貨ペアの文字リンクをクリックすると各通貨ペアのレポート結果詳細をご確認いただけます。

 

AUD/CAD
AUD/JPY
AUD/NZD
AUD/USD
CAD/CHF
CAD/JPY
CHF/JPY
EUR/AUD
EUR/CAD
EUR/CHF
EUR/GBP
EUR/JPY
EUR/NZD
EUR/USD
GBP/AUD
GBP/CAD
GBP/CHF
GBP/JPY
GBP/USD
NZD/CHF
NZD/USD
USD/CAD
USD/JPY
 

このように、23通貨ペア全てのバックテストで、各通貨ペアが全て右肩上がりになっている事が確認できました。
損益曲線に少し荒さのある通貨ペアが見受けられますが、その部分に関しては後ほど触れますので、ここでは少し気に留めておく程度でこのまま次へお進みください。

23通貨ペアのレポート結果をマージしてQAで分析

上記 23通貨ペアのバックテスト結果を ReportManagerで合成しました。

 

そして、この結果を Quant Analyzarで分析したものが下画像です。


 

QuantAnalyzerで分析するとこの様になりました。

主だった項目を表にまとめます。

23通貨ペアを10年間トレードして取引回数が7,066回というのは少なく見えますが、前述のとおり月曜オープンの機会は毎月4~5回、年間でいうと約52回、10年間だと約520回です。1通貨ペア当たりの10年間の平均取引回数は307回となるので、訪れたトレードチャンスに対して約60%の頻度でエントリーしているという事になります。
例えば 1日1回トレードチャンスのあるロジックを使ったEAに置き換えると、それを10年間バックテストした際に得られる取引回数 約2,150回と同等の取引頻度であると考えられます。

10年間での最大ドローダウン額(MAX DD)は -$673.86 と低く、プロフィットファクター(PF)は 2.00と高いです。リカバリーファクター(RF)についても 34.43と高い数値となっており、損失に対して利益の方が大きく早いリカバリーに期待できます。

リスクリワード(RR)と勝率のバランスも魅力的です。
一般的に「RR=1.0 のとき勝率=50.0%」を目安に考えます。RRとは平均勝ち額÷平均負け額の事です。RRが下がれば勝率が高くなり、逆に RRが上がれば勝率は低くなります。勝率が80%以上ある様な超高勝率系のEAにSLが深いものが多いのは、RRを下げて勝率を高めているという場合が多いです。
THE GAPは RR 0.82、勝率 70.92%と、どちらも高めとなっています。

また、上画像のQuantAnalyzerの分析結果から、P/L TimeもしくはTrades/Timeをご覧ください。これはポジション保有から決済までに要した時間を表しています。ほとんどのトレードが 4時間以内で決着しており、特に「2時間」が多いです。このように、THE GAPのトレードは滞空時間が短いため、ポジションがリスクに曝される機会も少ない事がわかります。

 

以上より、THE GAPのロジックは相当に高いエッジに期待できます。

 

 

さて、ここまでが序章です。

THE GAPをここから更に精査し、実運用に向けた設定にしていきます。

実運用に向けて

これまでにも述べてきたとおり、THE GAPには高いエッジが確認できました。

デフォルトのまま運用してもスペック的には問題はないと考えています。しかし、気掛かりなのは先でも少し触れた”損益曲線が少し荒い通貨ぺアがある”ということです。パラメータ値を全通貨ペアで同一設定でバックテストしていますので、どうしても全ての通貨ペアで最大限のパフォーマンスを発揮することは難しいと考えます。

各パラメータ値を通貨ペアごとに最適化し調整することで解決はできますが、ここでは同一設定でTHE GAPを運用することにこだわります。パラメータ値は「デフォルトのままでどの様に活かすか」という視点で設定を検討しました。

そこで、各通貨ペアのレポート結果を更に精査してみました。

レポート結果を精査

方法としては、23通貨ペアの買い(L)と売り(S)の成績を分けて考えます。
L/Sそれぞれの RFを確認することで、各通貨ペアに対するロジックの向き不向きを確認することが狙いです。

EUR/JPYを例として取り上げて見てみましょう。

EUR/JPYのL+SのRF値は 8.15で、下画像の様な損益曲線を描きます。

これは通常どおり Lと Sの成績が合成された結果を表しています。途中苦戦している場面も見受けられますが、概ね右肩上がりにはなっていますね。

そこで、Lと Sそれぞれの損益曲線を分けて表示します。

買い (L): RF = 15.24 売り (S): RF = 0.66

この様に、RF値の大小だけではなく、実際に各通貨ペアごとの L/Sそれぞれの損益曲線を表示して目視による判断をしました。

 

そして、以下がこの過程を経て得られた各通貨ペアの L/SそれぞれのRF値をまとめた表です。L+SのRF値が高い通貨ペア順に並べ替えています。

黒く塗りつぶしてあるセルは RF値が低く、また損益曲線を目視しても明らかに不振であり、ロジック自体が合っていないと判断して不採としたものです。

細かく表を見ると、RF値が低いにもかかわらず黒塗りされていないセルがあります。
例えば、AUD/NZDの Sがそうですね。これは損益曲線を目視したところ、2011年10月までに限定して成績が不振であったためにRF = 1.55という結果になっていることが確認できたからです。それ以降の直近までの成績は RF = 9.8で綺麗な右肩上がりになっているので採用としました。

 

この過程を経て L/Sの取捨選択を行いました。

精査の結果

以下に L/Sを取捨選択した後の23通貨ペアのバックテストの結果を ReportManagerで合成し、それを QuantAnalyzerで分析した結果を掲載します。

 

 

 

この分析結果から主だった項目を抽出し、前述のデフォルト設定と比較します。「23通貨ペア L/S 選別」の列が今回の L/Sの取捨選択をしたパフォーマンスです。

デフォルト設定の時と比較して、取引回数が約20%(1,500回)少なくなり、純益は約4.5%($1,050)少なくなりましたが、それ以外の全ての項目が改善されました。
特に最大ドローダウンについては約40%も抑えられ、これに伴って RFが約59%も上昇する結果となっています。また、勝率と RRについても共に上昇しています。

取捨選択はしたものの、23通貨ペアにおいてパラメータ値が同一設定でこの成績が出せるということからも THE GAPのロジックの高い優位性と汎用性を確認できます。

厳選 - その1 –

先の項では、買いエントリー(L)と売りエントリー(S)の成績を分けて精査し、L/Sを取捨選択しました。

 

そして、更に厳選します。

厳選の基準は「RFが10.00以上」です。
この基準に合格したものを、前述の L/SのRF表に記しました。


GBP/CHFについて、改めて買いエントリーのみでバックテストすると RF=10.14となるため基準を合格していると判断しました。QuantAnalyzerの機能で LまたはSの成績のみを抽出すると若干のズレがある様です。

表のとおり 17通貨ペアとなりました。これらのバックテスト結果をマージしたものを QuantAnalyzerで分析し、これまでの成績と比較します。
その結果が以下のとおりです。

 

この分析結果から主だった項目を、前述の成績と比較します。
17通貨ペア L/S ≧ RF10」の列がここで厳選した結果のパフォーマンスです。

取引回数が更に約28%(1,572回)少なくなり、純益も約24%(約$5,400‬)少なくなりました。その反面、最大ドローダウンは約46%改善し、PFも上昇しています。
更に RFも13%の上昇期待利得もデフォルト設定と比較して約$1 近く上がっています。また、勝率と RRについても共に上昇し、RR=0.97に対して勝率が72%というバランスはなかなかの高バランスです。

ここまでの結果は、決して通貨ペアごとにパラメータ値の最適化をして得られたものではなく、一貫して全通貨ペア同一設定でバックテストした結果です。

THE GAPのロジックが持つ汎用性の高さが現れた結果であると考えています。

厳選 - その2 –

この項ではおまけとして、L+Sの RFが 10.00以上のパフォーマンスを出している通貨ペアのみのバックテストをマージした結果を見てみます。

該当する通貨ペアは以下のとおりです。


GBP/CHFについては条件を満たしていますが、売りエントリー(S)の直近3年間の成績が不振なため除外しました。

上表より、9通貨ペアが該当します。これらのバックテスト結果をマージしたものを QuantAnalyzerで分析し、これまでの成績と比較します。
その結果が以下のとおりです。

 

この分析結果から主だった項目を、前述の成績と比較します。
9通貨ペア L+S ≧ RF10」の列がここで厳選した結果のパフォーマンスです。

左から順に”A,B,C,D”として、私の個人的な好みで順位を付けるとすると「C > D > B > A」です。

理由としては、単純に RF値の高さ順とも取れますが、Cの適度な取引回数、低いMAX DDと高いRF、高い期待利得に、勝率とRRの高いバランス性に魅力を感じます。また、Dはシャープレシオが他より頭一つ抜けて高いことと、全体のパフォーマンスから読み取れる高い水準でのバランスの良さが魅力的だと考えました。

実運用に向けてまとめ

THE GAPは複数の通貨ペアに対して高い優位性と汎用性があるため、多様な視点でカスタマイズすることが可能です。

今回は各通貨ペアに対してパラメータ値を最適化するのではなく、「全通貨ペアで同一設定」にこだわって実運用に向けた取捨選択を実施しました。その結果はこれまでにご覧いただいたとおり、相場に対して相当に高いエッジをご確認いただけたかと思います。
ということはつまり、THE GAPを各通貨ペアごとに最適化を施したパラメータ値であれば、更なるエッジを得られる余地が残されているという事です。

これは、極端なまでにシンプルなロジック構成にする事によって得られた成果だと考えています。

1年超のフォワード計測からエッジを確認

THE GAPは 2019年1月27日からフォワードの計測を行っています。

この記事の執筆時点(2020/4/19)で、フォワード計測開始から1年3カ月を経過しようとしています。

15カ月間の損益曲線

そのフォワード計測状況を公開します。

初期証拠金:$10,000
ボリューム:0.1 Lot固定
パラメータ:全通貨ペア同一設定
 ※全通貨ペア 売りエントリー/買いエントリー 制限設定なし(デフォルト設定)
 ※全通貨ぺア スプレッドフィルター = 5.0 pips に設定

 


この約1年3カ月の間に +8.48%の利益となっています。
2020年3月30日には THE GAPの戦略ロジックがクリーンヒットしており、その日だけで約 700 pips 獲得した様です。

 

それでは、その3月30日以前までの成績はどうだったか見てみましょう。

thegap-mfxb_0329chart
thegap-mfxb_0329overview
thegap-mfxb_0329drawdown
thegap-mfxb_0329periods
thegap-mfxb_0329monthly-gain2020
thegap-mfxb_0329summary
previous arrow
next arrow
thegap-mfxb_0329chart
thegap-mfxb_0329overview
thegap-mfxb_0329drawdown
thegap-mfxb_0329periods
thegap-mfxb_0329monthly-gain2020
thegap-mfxb_0329summary
previous arrow
next arrow
 

各通貨ペアで利確と損切りを繰り返しつつも、少しずつジワジワと利益を重ねてします。2019年10月~11月にはドローダウンが発生していますが、12月から2020年3月にかけてリカバリーされています。
THE GAPの本来のトレードスタイルとしてはこの様な傾向がベースであると考えています。

ですが、2020年3月30日のトレードの様に相場状況や社会情勢にハマればビッグトレードになる可能性を潜在的に秘めているのも、THE GAPの隠れた特徴でもあると言えます。

フォワードで見る最大ドローダウン

次に、この1年3カ月の間に発生したドローダウンについてです。


前述の損益曲線からも見られる様に、2019年10月~11月にかけてドローダウンが発生しています。その際の最大ドローダウンは 1.16%ですので、約$120のドローダウンだったということになります。
デフォルト設定のバックテストで確認できた最大ドローダウン額が $673であったのと比較すると、それの約1/5程度のドローダウンであったということですね。0.1Lot運用でのドローダウンの額面としては小さく抑えられていることがわかります。

フォワード期間中のトレード成績

次に、トレード成績詳細です。


この成績を CSVファイルでExportし、それを QuantAnalyzerで分析しました。

 

そして主な項目を表にまとめました。

スプレッドフィルターにより、スプレッドが 5.0pips以上開いた場合はエントリーを見送る設定にしているため、想定よりトレードが少なくなっています。

PFは 2.19と高く、RFについても1年程度の期間で 7.06もあれば十分ですね。

期待利得も $4.82と高く、月曜オープンのスプレッド拡大時にエントリーするものとしては高い期待利得であると言えます。スプレッドフィルターの設定値を更に大きくしても許容されると考えられます。

また、RRについては 1.28となっています。
フォワードで「RR = 1.0」を優に超えており、勝率につていは 63%と、RRの値に対して高い勝率です。RRと勝率の両者が高水準をマークしていることから、利益を残しやすいトレードができていることが確認できました。

通貨ペアごとの成績

フォワードテストでは全24通貨ペアでTHE GAPの計測を行っています。
以下が各通貨ペアごとのトレード成績です。

スプレッドフィルターを 5.0pipsに設定していることもあり、全体的にトレードは少ないですね。トレードが1~2回程度のものは今後どうなるかわかりませんので参考程度になりますが、概ね全体的に利益に貢献されていることが見受けられます。

EURUSD, GBPAUD, NZDUSD, USDCHF についてはロジックが合っていない可能性がある…という程度で見ています。

フォワード期間中の月利

2019/01/27 ~ 2020/04/18の月次利益です。

2019年 2020年
ex.2019年9月 ex.2020年3月

収益がマイナス着地の月が少ないです。
3カ月連続でマイナスになるという事もなかった様です。

また、各年で獲得pipsが多かった月を例に挙げ、その月にエントリーした通貨ペアを円グラフに表示しています。
2019年9月は 111pipsの獲得で10通貨ペアがトレードしており、GBP/USDとUSD/JPYが多かった様です。
2020年3月は、ほぼ全ての通貨ペアでエントリーが見られました。細かく確認すると、やはり3月30日のビッグトレード時にエントリーが多かった様で、フォワード計測をしている24通貨ペア中18通貨ペアがエントリーしていました。

15カ月間のトレード履歴

フォワード期間中の Trade Histry(トレード履歴)です。

thegap-mfxb_histry01
thegap-mfxb_histry01
thegap-mfxb_histry02
thegap-mfxb_histry02
thegap-mfxb_histry03
thegap-mfxb_histry03
thegap-mfxb_histry04
thegap-mfxb_histry04
thegap-mfxb_histry05
thegap-mfxb_histry05
thegap-mfxb_histry06
thegap-mfxb_histry06
thegap-mfxb_histry07
thegap-mfxb_histry07
thegap-mfxb_histry08
thegap-mfxb_histry08
thegap-mfxb_histry09
thegap-mfxb_histry09
previous arrow
next arrow
thegap-mfxb_histry01
thegap-mfxb_histry02
thegap-mfxb_histry03
thegap-mfxb_histry04
thegap-mfxb_histry05
thegap-mfxb_histry06
thegap-mfxb_histry07
thegap-mfxb_histry08
thegap-mfxb_histry09
previous arrow
next arrow

リアルフォワード開始

前述したとおり、1年超のフォワードを経て THE GAPの優位性をしっかりと確認できましたので、同ブローカーのライブ口座で 2020年3月16日からリアルフォワードを開始しました。

設定は「レポート結果を精査」で行った、デフォルト設定から L/Sを取捨選択した設定を使用しています。そのため、スプレッドフィルター以外はすべて同一設定で稼働しています。

今のところ順調です。

thegap-mfxbr_histry
thegap-mfxbr_currencies
thegap-mfxbrr_summary
thegap-mfxbr_duration
previous arrow
next arrow
thegap-mfxbr_histry
thegap-mfxbr_currencies
thegap-mfxbrr_summary
thegap-mfxbr_duration
previous arrow
next arrow

バックテスト vs デモフォワード vs リアルフォワード

THE GAPはそのロジックの特性上、バックテストとフォワード、デモ口座とリアル口座、またはブローカーによっても成績が乖離しやすい・・・ いや、正しくは必ず乖離します。
その原因としては、各ブローカーの配信レートの相違もそうですし、月曜オープンの瞬間を狙うロジックということもあってMT4の稼働環境の影響も考えられますし、その他様々な要因に影響を受けます。その中でも一番の原因としては、各ブローカーの月曜オープン時のスプレッドの拡大幅の違いによる影響は大きいです。

期間は短いですが、同期間(2020/03/16~2020/04/18)での成績にどの程度の差が出るのか、それぞれのトレード履歴を QuantAnalyzerで分析し比較しました。どれも初期証拠金は $10,000で取引ボリュームは0.1Lot、パラメータ設定は「レポート結果を精査」の項で売りポジション・買いポジションを取捨選択したものを設定しています。スプレッドフィルターの設定値に関して、バックテストおよびリアルフォワードは各通貨ペアに合わせた値を採用しており、デモフォワードについては全通貨ペア 5.0pipsに設定となっています。

 

■バックテスト

 

■デモフォワード

 

■リアルフォワード

 

それぞれの主な項目を表にします。

案の定、それぞれ差がありますね。

取引回数についてはバックテストが多い結果となりました。これは TDSでは考慮していないスリッページによる差、もしくは デモ・リアルのスプレッド拡大幅がバックテストに比べて大きく、デモ・リアルではスプレッドフィルターによりエントリーを見送った事が原因であると考えられます。
なお、TDSの変動スプレッドの設定内容については後述していますので、ここでは一旦スルーしておいてください。

純益は、デモ>リアル>バックテスト の順に高くなっています。リアルフォワードでの結果がデモとバックテストのちょうど平均値くらいになっていますね。
最大ドローダウン・リカバリーファクター・期待利得・平均勝ち額、これらの項目もリアルフォワードの結果がデモとバックテストの平均値付近になっています。

勝率はリアルフォワードが一番高く 80%でした。これに対してリスクリワードは 0.98ですので、リアルフォワードでかなり良いトレードができていたということがわかります。

 

この様に、バックテスト・デモフォワード・リアルフォワードには乖離があります。ですが、現時点で「バックテストの成績とデモフォワードの成績の間にリアルフォワードの成績が収まる可能性が高い」という事に期待できると言えます。

スプレッドの取り扱い方

THE GAPは Tick Data Suite (TDS)を使用して変動スプレッドの環境で開発しています。
トレードコスト面やエントリーチャンスが一辺倒になってしまう固定スプレッドによるバックテストよりも、よりロジックにトレードの再現性を高められると考えているためです。特にティック動作するロジックを採用している場合はその差が顕著に表れます。

ただ少し引っ掛かるのは、固定スプレッドによるバックテストのレポート結果には「スプレッド 〇〇pips」と、何pipsのスプレッド環境を仮定してテストしているのか明記されていますが、TDSを用いたバックテストのレポート結果のスプレッドの項目には「variable (変動)」とだけ記載され、どんなスプレッド環境でバックテストしたのかが不明瞭であるということです。
そのため、これを悪用すれば非現実的な好条件のスプレッド環境でバックテストして、好成績を収めるEAだと謳うことも可能です。つまり、TDSの設定画面で「最大スプレッドを 0.1pips」に設定していてもレポート結果には「変動」とだけ記載されるので、そのレポート結果を作成した本人しか実際のスプレッド環境はわからないです。

以前は変動スプレッド環境のレポート結果というだけで信憑性が高まっていた様に思いますが、最近この件について「中身がわからない」等の意見が散見される様になりました。

 

以前Twitterでこの辺の話をざっくりとツイートしましたが、もう少し詳しくTDSの変動スプレッド設定についての個人的な設定方法について触れておこうと思います。

リアルレートからスプレッドを抽出

まずは材料の収集です。

実際にEAを稼働させようと考えているブローカーのリアル口座を開設して、そのブローカーで一定期間(数か月~1年程度)のリアルレートからリアルスプレッドを抽出します。

続けて、TDSの Dukascopyのティックデータで、全ティック設定にて TDSの変動スプレッド設定がデフォルト状態のデータからスプレッドを抽出します。

以下がそれぞれの抽出した USD/JPYのスプレッドデータの一部分のキャプチャです。

ブローカーのリアルスプレッド Dukascopyのスプレッド

今回は5分足のスプレッドを対象にしました。
分かり易く無作為に 2020年3月30日(月)12:30~13:35のスプレッドデータをキャプチャしました。A列から順に、日付・時刻・最大スプレッド・最小スプレッド・平均スプレッド・ボリュームと並んでいます。

これはほんの一部で、10年以上のスプレッドデータを抽出すると、行数が百数十万行にも及ぶ膨大な量となります。

 

全曜日・全時間帯を対象としたロジックの EAに使うスプレッドデータであれば、ここまでで材料収集は終わりです。

該当のスプレッドを抽出

THE GAPに必要なのは「月曜オープン直後」の時間帯のみです。

 

そこで、もうひと手間加えます。

先ほど抽出したそれぞれのスプレッドデータから、該当の曜日と時間のみのスプレッドを抽出します。以下がその一部分のキャプチャです。

ブローカーのリアルスプレッド Dukascopyのスプレッド

ご覧いただいたとおり、両者は全く異なるスプレッド状況ですね。

この方法で国内外の数社のブローカーのリアルスプレッドを抽出して実際に確認していますが、ブローカーによって月曜オープン時のスプレッド状況は多種多様です。特に国内ブローカーは月曜オープン時のスプレッドは大きいです。

変動スプレッド設定値の調整

これで THE GAP専用の変動スプレッド設定を求める材料が集まりました。

 

これまでのデータを使って両者の調整を行います。

ここでは例として、先ほどのキャプチャのデータ範囲に限定して説明します。

 

TDSの変動スプレッド設定では、スプレッド乗数・スプレッド加算・最小スプレッド・最大スプレッドの項目が設定できる様になっています。

このうちの スプレッド乗数・最小スプレッド・最大スプレッドの3つの項目について、先ほど抽出したデータから設定値を求めます。

 

まず、最小スプレッド・最大スプレッドについてですが、これは対象ブローカーのリアルスプレッドの値をそのまま使います。

・最小スプレッド:0.2 pips
・最大スプレッド:10.3pips

となります。

 

次に、スプレッド乗数を求めます。

対象ブローカーのリアルスプレッドの平均スプレッドの平均と、Dukascopyのスプレッドの平均スプレッドの平均をそれぞれ算出します。

A = リアルスプレッドの平均:3.15 pips
B = Dukascopyのスプレッドの平均:4.77 pips

そして、TDS側の値をリアルスプレッドに合わせたいので、
スプレッド乗数 = A ÷ B ≒ 0.6599

となります。

 

以上より、それぞれの設定値が求まりました。

スプレッド乗数 最小スプレッド 最大スプレッド
0.6599 0.2 pips 10.3pips

 

この様にして、TDSの変動スプレッド設定を変更した上でバックテストを実施しています。

これが正解かはわかりませんが、TDSの変動スプレッド設定をデフォルトでバックテストするよりも少しでもリアル環境に近づけるのではないかと、自分なりに考えて実施しています。

間違ってるぞ!もっといい方法があるぞ!という方はこっそりご教示いただけると幸いです。

THE GAP まとめ

ということで、私の第3作目となる自作EA「THE GAP feat. takah」の全貌を余すところなく全て公開させていただきました。

これまでの内容をまとめると、

  • 1年3カ月に及ぶ長期フォワードで安定
  • 極めてシンプルなロジック構成
  • それが故に認められる複数通貨ペアに対しての汎用性
  • パラメータ値を全通貨ペア同一設定で好成績を実現
  • それが示すのは少ないカーブフィッティング要素
  • 各通貨ペアにパラメータを調整することで更なる可能性

と、こんな感じでしょうか。

 

共同開発者の takahさんからコメントをいただきました。

THE GAPのリリース、本当におめでとうございます!

足掛け1年以上かかってのリリースになりましたが、リリースまで紆余曲折ありました。。。
ロジックの優位性が見つかった時の喜び、ロジックを煮詰める段階の活発な意見交換、結果の評価についての白熱した議論など、それらが昨日のように思えます。

THE GAPは私がEAを組んだ当初から相当の進化を遂げています。

しかし、その優位性を実証する段階で一度頓挫しています。それでも、miccoさんの不屈の執念と努力でここまでの形になりました。

THE GAPは私からも自信をもってオススメできるEAです。

ぜひ、ご検討くださいませ。

takah

 

今後も安定して稼いでくれると信じて稼働を続けます。

THE GAP の販売について

この THE GAPはいわゆる”ピーキー“な EAです。

ピーキーとは
「挙動が神経質であり、ある限定的な範囲では非常に高い性能を発揮するが、その範囲外の場合は操縦性が低い」

出典: フリー百科事典『ウィキペディア(Wikipedia)』

 

 

ある限定的な環境下では高い優位性を発揮しますが、その反面、それ以外の場合は使い物にならない可能性も十分にあります。

THE GAPもこれまでの自作EAと同様に直販ページにて販売いたします。
ただ、基本的なMT4の使い方やEAの設置方法等に不安があるという、一般的な観点で初心者と思われる方には申し訳ありませんがお勧めできません

そういったこともあり、この記事内には私が THE GAPを使用しているブローカー情報を一切出していません。そのため、通常なら myfxbookによるフォワード成績の公開には URLリンクを掲載するところを、この記事内では myfxbookをキャプチャした画像を使用する様にしています。
myfxbookでブローカー名を「Other(MT4)」の状態で成績を公開する方法がわかればURLリンクを公開したいと思っています。もしその方法がお分かりになられる方がいらっしゃいましたらご教示いただけると幸いです。(数年前は普通に可能でしたが現在では仕様変更のためできなくなっています…)

 

このTHE GAPについては、一般的なEAの使用について一定以上の経験をお持ちで、なおかつ EAを活かすブローカー環境を探すことができる方には自信を持ってお勧めできるEAだと考えています。

とは言え、いきなりブローカー探しから始めていただくのは申し訳なく思いますので、THE GAPをご購入していただいた方には、この記事でTHE GAPのフォワード計測に使用しているブローカー情報を添えてお渡しさせていただきます。
知り得たブローカー情報はロジックの優位性を守るためにも、ご内密にお願いいたします。
また、その他このTHE GAP記事に関連したツールや情報を付録としてお付けさせていただこうと考えています。

それと、今回はバックテスト専用EAも用意させていただきました^^

 

詳細は『micco’s BackChannel』にて記載いたします。

では^^

この記事を書いている人 - WRITER -
今までいろんな小遣い稼ぎを実践してきました。最終的にMT4でEAを稼働させる運用方法に落ち着きました。EAを自作したりもしています。気まぐれにサイトの更新が止まったりしますが、メッセージいただければかなり喜びます。よろしくお願いいたしまーす。
詳しいプロフィールはこちら

- Comments -

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.

Copyright© MT4でEAを使いたおす! , 2020 All Rights Reserved.

You cannot copy content of this page