見出し画像

【ボリンジャーバンド編】FXテクニカル手法をChatGPTでEA化する【ノーコードEA開発】


ChatGPT担当のナナミです。

前回の動画では、一目均衡表を使用して、順張りのEAと逆張りのEAを開発しました。

GPTsのリンクはこちら(GPT Store)
https://chatgpt.com/g/g-VYNEupgws-masayan-ea-generator-for-mt4-ver1-01

■ブログURL
https://fx.reform-network.net/2024/06/11/gpts「masayan-ea-generator-for-mt4-」条件を指定するだけで高性能なeaを生/

■前回記事
https://note.com/aimjey/n/nb5cb06a1f9d0

本日使用するテクニカル指標は、ボリンジャーバンドです。

ボリンジャーバンド

ボリンジャーバンドは順張り手法と逆張り手法の両方で使える数少ないテクニカル指標です。

個人的にはシグマタッチは2σ(シグマ)で判定することが多いです。

順張りトレードの時は2シグマにタッチで順張り方向にエントリーし、逆張りトレードの時も2シグマにタッチでトレンドとは逆方向にエントリーします。

ボリンジャーバンド単体で売買判断しても良いのですが、他のテクニカル指標と組み合わせることが多いです。

今回は、Bolivan EAというわたしが開発したEAのロジックを使用し、順張り型のEAと、逆張り型のEAの開発を行いたいと思います。

Bolivan EA
https://www.gogojungle.co.jp/systemtrade/fx/49202

Bolivan EA(ボリバンEA)は、順張り時はボリンジャーバンドと移動平均線を使用し、逆張り時はボリンジャーバンドとRSIを使用したマルチロジックEAです。

このEAを参考に、順張りトレードのEAと逆張りトレードのEAを作成しようと思います。

まず、順張りトレードのロジックのEAを作成します。

送信するプロンプトは以下の通りです。

Deviation = 2;// Bollinger Band Deviation (Min=1 Max=3)
Bands = 20;// ボリンジャーバンドの計算期間

サーバー時間の7時から18時まで順張りトレードでエントリーします。

有料版のBolivan EAでは、ロングポジションを保有している場合は、移動平均より現在値が下の時に決済し、ショートポジションを保有している場合は、移動平均より現在値が上の時に決済するロジックを組んでいます。
また、1時間足20個分で標準偏差±2σを計算して売買を行います。
しかしながら、ChatGPTで生成されたコードでバックテストをまわすと、バグが発生しました。

今回は、バグの修正は行わず、単純にボリンジャーバンド±2σで順張り判定のEAに仕上げました。
ロジックが複雑だから勝てるといったことは無く、ロジックがシンプルでもきちんと優位性があれば勝てるEAは作成可能です。

ChatGPTでEA開発する場合、複雑すぎるロジックだとChatGPTに正しく解釈してもらえず、思ったような成績が期待できないことがあります。
その場合、ロジックをシンプルにすることで、動作が安定することがあるので、うまくいかない時はシンプルなロジックにすることをオススメします。

作成した順張りロジックのEAでバックテストをまわしてみましたが成績はイマイチです。

少し調整すれば成績は改善するでしょうが、順張りのロジックは移動平均線のほうが成績が良いので、ボリンジャーバンドを使った順張り手法は重要としません。

次に、逆張りのEAを作成します。
送信するプロンプトは以下の通りです。

サーバー時間の18時から7時まで逆張りでエントリーします。
ボリンジャーバンドが2σ(2シグマ)をローソク足の終値が上に抜けている状態でRSIの値が70以上かつ、ローソク足が下落(陰線)したタイミングでショートエントリーします。
ロングエントリーはショートの逆で、ボリンジャーバンドの-2σ(マイナス2シグマ)をローソク足の終値が下に抜けている状態でRSIの値が30以下かつローソク足が上昇(陽線)したタイミングでロングエントリーします。

サイトにある文章をそのままコピペしました。

生成されたコードでバックテストをまわしてみましたが、成績は良くないです。

Bolivan EAは順張りと逆張りをサーバー時間に合わせて切り替えるマルチロジックのEAです。
やはり、順張りと逆張りだからうまくいくEAなのでしょう。

それなら、順張りと逆張り両方でトレードするEAをChatGPTで作成することにします。

最終奥義、まるごとコピペです。

以下が送信するプロンプトです。

順張りトレードする時間帯は、東京時間の午後から欧州時間が終わるまでです。(サーバー時間の7:00~17:59)
上記以外の時間帯にポジションが無い時だけ逆張りトレードモードに切り替わります。

順張りモードではボリンジャーバンドのシグマにタッチで順張り方向にエントリーします。
内部の処理としては、1時間足20個分で標準偏差±2σを計算して売買を行います。
決済のタイミングは、ローソク足の終値が移動平均線(1時間足20個分のSMA)にタッチしたタイミングとなります。

逆張りモードでは順張りとは反対方向に売買を行います。
具体的にはボリンジャーバンドが2σ(2シグマ)をローソク足の終値が上に抜けている状態でRSIの値が70以上かつ、ローソク足が下落(陰線)したタイミングでショートエントリーします。
ロングエントリーはショートの逆で、ボリンジャーバンドの-2σ(マイナス2シグマ)をローソク足の終値が下に抜けている状態でRSIの値が30以下かつローソク足が上昇(陽線)したタイミングでロングエントリーします。
ポジションがある時は、逆張りモードでの新規エントリーは行われません。
保有ポジションが無い状態でサーバー時間の18:00~6:59に逆張りモードでエントリーします。
逆張りモードで新規エントリーしたポジションは、サーバー時間の7:00~の順張りモードで決済されます。
この為、新規エントリーの9割を順張りモードが占めます。

この文章はゴゴジャンの商品ページから引っ張ってきました。


それでは、有料EA VS 無料ChatGPTの対決です。


ボリバンEA 有料


今回作成したEA

今回は何とか勝てました。

同じ成績が出せない原因は、おそらくここかな。
以下が今回作成したEAのボリンジャーバンドの値を取得する関数です。
double BollingerUpper = iBands(NULL, 0, BollingerPeriod, BollingerDeviation, 0, PRICE_CLOSE, MODE_UPPER, 0);
double BollingerLower = iBands(NULL, 0, BollingerPeriod, BollingerDeviation, 0, PRICE_CLOSE, MODE_LOWER, 0);

こっちが有料版のEA「Bolivan EA」のボリンジャーバンドの値を取得する関数です。
double band_upper = iBands(NULL, Period, Bands, Deviation, 0, PRICE_CLOSE, MODE_UPPER, 1);
double band_lower = iBands(NULL, Period, Bands, Deviation, 0, PRICE_CLOSE, MODE_LOWER, 1);

Periodには60が入ります。また、今回作成したEAは最後が0ですが、有料版のEAは1です。
データを取得する時間足が、現在チャートの15分足なのか表示しているチャートの時間軸に関係なく1時間足のデータを拾うとか、現在のバーの値を含めるか含めないかで成績が変わってくるのだと思います。

EA開発者は、EAのロジックを確定させる際に、パラメータを微調整しながら最適な値を探ります。
過去のチャートを用いたバックテストの場合、成績を良く見せる意味でも一番成績が良い設定を採用することがほとんどです。
過剰最適化は意味ないですが、フォワード成績を少しでも良くするには、過去のバックテストで一番良い成績を採用することは有効な手段です。

今回作成したEAは、パラメーターの最適化及び、ロジックの微調整は行っていません。
ChatGPTに細かな指示をだすことが出来れば、有料版と同等の成績は出せるでしょうが、細かな指示を出すにはFXやMT4の知識はもちろんですが、MQL4プログラミングの知識も必要です。

ChatGPTで出来ることはプログラムソースコードを書くことです。
ロジックが有効かどうか、また、パラメーターの微調整は今のところEA開発者が行うしかありません。


次回は、MACDを用いたEA開発を行います。

わたしが開発したEAに、「MACD SignalTrade EURUSD」というEAがあります。

オシレーター系のテクニカル指標のMACディーとローソク足から反転ポイントを見極めて売買するEAです。

このEAは、MACDがゼロ以下の時に上向きでシグナル線にクロスでロングエントリーします。
反対にMACDがゼロ以上の時に下向きでシグナル線にクロスでショートエントリーします。

MACD単体ではダマシが多くなるので、ローソク足で上げ止まり、下げ止まりを確認してからエントリーするようにプログラミングしました。

「MACD SignalTrade EURUSD」有料EA
https://www.gogojungle.co.jp/systemtrade/fx/30754

「MACD SMA Trade GBPJPY」無料EA
https://note.com/aimjey/n/nc3b26bc94e7c

次回は、上の2つのEAのロジックをEA化してみたいと思います。

【免責事項】
・本GPTsについて、正当性を保証するものではありません。
・本GPTsを利用して損失を被った場合でも一切の責任を負いません。
・投資の決定は、自己判断 自己責任でお願いします。

この記事が気に入ったらサポートをしてみませんか?