人気のサインインジケーターのASCTrendにフラクタルズのフィルターを追加したら勝てるのか?【あなたの考えたFX手法をEAにする】
ChatGPT担当のナナミです。
今回から新シリーズ「あなたの考えたFX手法をEAにする」というテーマで動画を撮っていこうと思います。
最初のお題は、ankimo6666さんからリクエストのあった手法「ASCTrend&フラクタルズ」です。
人気のサインインジケーターのASCTrendにフラクタルズのフィルターを追加したら勝てるのか?
そんな疑問にお答えすべく、検証を行いました。
ロジックを簡単に説明しますと、
ASCTrendで長期のトレンドを判断、フラクタルズの高値安値ブレイクポイントに逆指値で注文をセットします。
トレード条件
1時間足のASCTrendでエントリーするトレンド(ロングかショート)を判断。
ASCTrend(Williams%R)の期間は14で設定
Williams%Rが-30を上回るとロング、-70を下回るとショートとします。
実際のエントリーするポイントは、5分足でフラクタルズの高値安値ブレイクポイントに逆指値で注文をセットします。
利確: 10~100pips(プロパティ設定可)
損切: 直近のフラクタルズの高値安値を割れた時
フラクタルズはその性質上、2本前の足(現在の足から数えて3本前の足)にフラクタルとしてサインが表示されます。
つまり、フラクタルズで示されるレートは現在値よりも高いか安いレートである為、EA化するには逆指値を使う必要があります。
以前、逆指値を使用したEAを開発したことがあるのですが、バックテストではきちんと動くのに、リアルトレードでは発注がされないといった不具合がありました。
バックテストは問題なく動くので、今回は検証という意味で以前作成した逆指値のコードをそのまま使用します。
おそらくEAの難易度としては最高難易度だと思います。
わたしのEA開発スキルのすべてを出し切り、なんとか完成までもっていくことが出来ました。
それでは「ASCTrend&フラクタルズ」のEAを作っていこうと思います。
■参考にしたサイト
AscTrend
https://fx-winwin.com/asctrend-filter/
フラクタルズ
https://blog.goo.ne.jp/antnobu/e/bd8267c94fe116c79e259965ce8327ab
GPTsのリンクはこちら(GPT Store)
https://chatgpt.com/g/g-VYNEupgws-masayan-ea-generator-for-mt4-ver1-01
■ブログURL
https://fx.reform-network.net/2024/08/29/新シリーズ「あなたの考えたfx手法をeaにする」/
■前回記事
https://note.com/aimjey/n/n5319b336ebbe
本日行う作業は、以下の通りです。
まず初めに、Masayan EA Generator for MT4に、ASCTrendとフラクタルズの売買ロジックの部分を作ってもらいます。
内容が複雑で、そのままではうまく動かないと思います。
そこで今回は手動のプログラミングを行い、EAを完成させたいと思います。
ASCTrendはインジケーターのソースコードがネットで拾えるので、ChatGPTにMT4のインジケーターをEAに変換してもらいます。
当然ですが、うまくいきません。
これだけ複雑なEA、そんなに簡単に作れるわけないですよね。
複雑すぎるロジックはエラーのコードが吐き出されたり、ロジックがめちゃくちゃなコードが生成されます。
後ほど詳細をご説明しますが、ASCTrendはWilliams%Rをベースに開発されたインジケーターである為、Williams%Rの数字を元にトレンド判断することとしました。
次に、Masayan EA Generator for MT4にトレード条件をまとめた内容でプロンプトを送信します。
ASCTrendで長期のトレンドを判断、フラクタルズの高値安値ブレイクポイントに逆指値で注文をセットします。
トレード条件
1時間足のASCTrendでエントリーするトレンド(ロングかショート)を判断。
デフォルト設定(Riskは3)で判定。
-30を上回るとロング、-70を下回るとショートとします。
実際のエントリーするポイントは、5分足でフラクタルズの高値安値ブレイクポイントに逆指値で注文をセットします。
利確: 10~100pips(プロパティ設定可)
損切: 直近のフラクタルズの高値安値を割れた時。
生成されたコードをチェックします。
そのまま使える部分もあるのですが、直さないといけない箇所が多そうです。
どうやら現在のChatGPTでは、ASCTrendのロジックを正しくコーディングすることが出来ないみたいです。
生成されたEAのプログラムの問題点。
1、フラクタルズの高値安値が拾えない問題。
完成したEAでバックテストをまわしても、トレードが行われません。
原因を調べたところ、どうやらMT4のフラクタルズの高値安値を取得する関数が機能しないことが原因と分かりました。
// 5分足でフラクタルズの高値安値を取得
LastFractalHigh = iFractals(NULL, PERIOD_M5, MODE_UPPER, 1);
LastFractalLow = iFractals(NULL, PERIOD_M5, MODE_LOWER, 1);
これはつまり、iFractalsの関数が何らかの理由で機能しないということです。
インジケーターようの関数ということで、EAには使用できないのかもしれません。
幸い、フラクタルズの高値安値は、ローソク足5本分の高値安値を使って簡単に求めることが出来るので、今回はローソク足を使ってフラクラルズの値を手動で取得することとします。
この為、インジケーターのフラクラルズとはサインの出るタイミングは同じにならないと思います。
2、ASCTrendのレートが拾えない問題。
ASCTrendの関数を使い、インジケーターの売買サインを表示させることはできたのですが、EAとしての関数が機能しません。
MT4の仕様なのか?原因は不明です。
そこで、フラクタルズと同じようにロジックを手作業で作るところから始めないといけません。
ASCTrendのインジケーターのソースコードを解析して、ロングとショートのサインを抜き出す方法もありますが、ASCTrendは処理が重いせいで、バックテストにとにかく時間がかかります。
ASCTrendのロジックはラリー・ウィリアムズの考案したWilliams%Rをベースとしており、WRPが「買われすぎ」になったら買いサイン、「売られすぎ」になったら売りサインが出るとあります。
なので、Williams%Rの関数を用いて、ASCTrendのトレンド判断に似せる形でロジックに組み込みしたいと思います。
Williams%Rの関数は、EAでもきちんと動作するので、ASCTrendの代わりにWilliams%Rを使用することとします。
3、逆指値の注文がうまくいかない問題。
単純にわたしのスキル不足というのもあるのでしょうが、逆指値の注文を使用してもリアルトレードではうまく発注されないとこがあります。
バックテストはきちんと動作するので、前回別のEAで使用した逆指値の関数をそのまま使います。
手始めに、ChatGPTに以下のプロンプトを送信して、ロジック部分を構築してもらいました。
Williams%Rをベースに、WRPが「買われすぎ」になったら買いサイン、「売られすぎ」になったら売りサインが出るEAを作成して下さい。
完成したEAを微調整し、なんとか動くところまでたどり着きました。
もはや、このレベルになるとChatGPTでは対処しきれないので、細かな調整はすべて手作業となります。
完成したEAでバックテストをまわしてみます。
というわけで、完成したEAのバックテスト結果はこちらです。
利食いポイントを10pipsとか狭い設定にすると、このように右肩下がりの資産チャートになります。
なので、利食い損切り幅は100pips固定でバックテストします。
まず、Williams%Rのみのバックテスト結果です。
-30以上でロング、-70以下でショートとします。
初期パラメーターは1時間足14個分での測定となります。
このトレードルールは、単純にトレンドフォローとなりますので、トレンド相場で利益が狙える仕様ですね。
次に、フラクタルズの高値安値のブレイクアウトポイントに逆指値を置くロジックを追加します。
ここで問題が発生。
なぜか全ティックでバックテストをまわすと、途中でエラーになってしまい、バックテストが停止する不具合が起こります。
始値のみのバックテストでは、無事完走することが出来ました。
しかしながら結果はマイナスになってしまいました。
最後に、損切りロジックを追加したバージョンです。
これは珍しい、今まで見たことのない資産チャートの形です。
プロフィットファクターは1.02とギリギリプラスです。
トレード回数も、38790回と非常に多いです。
チャートの急上昇している個所は、ナンピンで積み上げたポジションを一気に決済したことが原因だと分かりました。
本当はワンポジで動くようにしたかったのですが、逆指値注文を1つだけ飛ばすといった処理がうまく機能していないみたいです。
成績はともかく、このEA、非常に不安定でとてもじゃないけど皆様にお配りできる代物ではありません。
こんなバグだらけのEA、配布しようものなら、わたくしまさやんの名が汚れます。
というわけで、非常に心苦しいのですが、今回のEAの配布は無しということでお願いします。
本日のまとめ
ASCTrendのインジケーターはとても優秀で、他のテクニカル指標と組み合わせることで勝てる可能性がある。
ASCTrendはインジケーターである為、EA化が難しい。
そこで、Williams%RをベースにEAを作ることで、ASCTrendと近いロジックは構築できる。
フラクタルズはサインインジケーターとなる為、EA化が難しい。
フラクタルズの高値安値は、ローソク足5本分の高値安値を使って簡単に求めることが出来るので、ローソク足のプライスアクション手法として検証することが可能。
フラクタルズのローソク足の形状はスパイクと似ていますね。
スパイクに優位性が無いことは、過去の動画で検証済みです。
検証して気付いたのですが、ASCTrendのサインインジケーターはトレンドフォローの売買シグナルが発生します。
上昇トレンドにある場合には「買い」シグナルを、下降トレンドにある場合には「売り」シグナルを出すことから、移動平均線を用いたトレンド判断と同じような結果が得られます。
フラクタルズとASCTrendは、チャート上で高値安値のポイントを特定し、それを視覚的に表示するインジケーターです。
フラクタルズとASCTrendのロジックを使用したEAは、完成度の高いEAなら需要があるでしょうが、今回の検証結果からは他のトレンドフォロー型のEAより優れていることを立証することは出来ませんでした。
個人的にはWilliams%Rを使用したEAに、確かな手ごたえを感じました。
Williams%RならEA化は簡単です。
ChatGPTでも問題なく作れるでしょうから、Williams%Rについては今後も検証を続けていきたいと思います。
他にも、こんな手法EAにしてほしいみたいなリクエストがあれば、コメントお願いします。
【免責事項】
・本GPTsについて、正当性を保証するものではありません。
・本GPTsを利用して損失を被った場合でも一切の責任を負いません。
・投資の決定は、自己判断 自己責任でお願いします。
この記事が気に入ったらサポートをしてみませんか?