ChatGPTFX自動売買(EA)の作り方MQL4

コードも書けるChatGPTに、ナンピンマーチンEAを解読・改良してもらってみた。

※アフィリエイト広告を利用しています

広告

ChatGPTは、OpenAIによって訓練された大規模な言語モデル(対話型AI)です。

どんな質問にもそれなりに回答してくれるとのことで、以下、ChatGPTとの対話形式も取り入れて話を進めます。

Q:MT4で書かれたEAのコードを読み解くことは可能でしょうか?
A:はい、MT4で書かれたEA(エキスパートアドバイザー)のコードを読み解くことは可能です。MT4はMQL4というプログラミング言語で書かれたEAをサポートしています。MQL4はC言語に似た文法を持っていますので、プログラミングの経験がある方なら理解することができます。また、MT4のEAはオンライン上に多数のリソースがあり、解説やサンプルコードも利用できます。
頼もしい返事をいただきました。それでは。今回はChatGPTにナンピンマーチンEAを扱ってもらいます。
広告

ナンピンマーチンEAをChatGPTに解読してもらってみる

今回は、以下の記事で作成したEAを使います。

まずは、Chat GPTがこのEAのロジックを読めるか確認してみます。

Q:以下は、MQL4で書かれたEAです。どのようなロジックか解読して、詳細を説明していただけるでしょうか。

<実際のコードは省略>

A:
このEAは、MetaTrader 4 (MQL4) で書かれたFXトレードのExpert Advisor (EA) です。EAは自動トレードを行うプログラムです。このEAは、一定のロジックに基づいて、FX市場での買い・売り注文を自動的に実行します。

  • 入力:
    • first_lot: 初期ロット数
    • nanpin_range: ナンピン幅
    • profit_target: 利益目標
    • magic_number: マジックナンバー
    • slippage: スリッページ
  • ロジック:
    1. 現在のポジションを確認します。買い・売りのポジション数、およびそれぞれのポジションの含み損益を計算します。
    2. 買い・売りのいずれかのポジションがない場合、新規エントリー注文を実行します。
    3. 売り・買いのいずれかのポジションがあり、含み損益が一定のレンジに達した場合、決済注文を実行します。

このEAは、買い・売りのポジションを自動的に実行するものですが、実際の取引には様々なリスクが伴いますので、取引には十分な知識と経験が必要です。

概要をきちんと説明してくれています。正しく理解出来ているようです。

ナンピンマーチンEAをChatGPTに改良してもらってみる

続けて、コードを修正してEAを改良してみることをお願いしてみます。

ナンピン幅をATRに連動させてみる

Q:以下は、MQL4で書かれたEAのコードです。ナンピン幅をATRに連動させるロジックに改良できますか?

<実際のコードは省略>

すると、何故か英語で回答が返ってきました。(日本語でお願いします。とか付ければ日本語で回答してくれるようですが、コード部分が長すぎて英語が良いと判断されたのかもしれません。)

A:Yes, you can improve the logic to link the width of the nanpin with ATR (Average True Range).

Here is a code snippet to implement the logic:

double nanpin_range = 200;
double ATR_value = iATR(Symbol(), PERIOD_CURRENT, 14, 0);
nanpin_range = nanpin_range * ATR_value;

Replace the original value of nanpin_range with the new calculation. This will make the width of the nanpin dynamic based on the ATR value of the current symbol and period.

要するに、「ATRにナンピン幅を連動させることは出来ますよ。以下のように、nanpin_rangeのロジックを変更してください。」ということを言っています。

おっしゃる通り、ATRをiATRという関数で取得して、nanpin_range×ATRという形でnanpin_rangeを洗い替えるようなロジックになっています。確かに、ナンピン幅がATRに連動します。

ただし、このままですとナンピン幅がATR倍になってしまうので、nanpin_rangeは、倍率とか係数という意味で使う必要があります。例えば、ナンピン幅をATRの2倍にしたい場合は、nanpin_range=2とするイメージです。

PERIOD_CURRENTは、現在のチャートの時間足を表します。EAをセットしているチャートの時間足です。14となっているところは、計算をする平均期間を表しますが、一般的な14がセットされていますね。

以上で、ナンピン幅をATRに連動させることが出来ました。

と、言いたいところですが、要注意点があります。「double nanpin_range = 200;」を設定していたのは「void OnTick()」の外でしたので、それをそのまま上記コードに書き換えても、ティックが動く度に更新するわけではありません。EAを起動した際に最初にATRを取得して、以降そのナンピン幅で固定というロジックになってしまいます。
「void OnTick()」の中に同様のコードを記載すれば、ティックが動くたびにナンピン幅が見直されるロジックになります。その時の価格変動幅に合わせて、ナンピン幅が自動的に変動するようになります。

エントリー条件を改良してもらってみる

Q:以下は、MQL4で書かれたEAです。新規エントリーの部分をテクニカル指標を用いたエントリーにコードを修正可能でしょうか?

<実際のコードは省略>

A:はい、テクニカル指標を用いたエントリーに修正することができます。例えば、移動平均線を使用する場合、以下のようにコードを変更することができます。
// 移動平均線によるエントリー判断 
if (buy_position == 0) { 
double ma = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 0); 
if (Ask > ma) { 
ticket_number = OrderSend( 
Symbol(), 
OP_BUY, 
first_lot, 
Ask, 
slippage, 
0, 
0, 
"first_buy", 
magic_number, 
0, 
Blue 
); 
} 
}

if (sell_position == 0) { 
double ma = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, 0); 
if (Bid < ma) { 
ticket_number = OrderSend( 
Symbol(), 
OP_SELL, 
first_lot, 
Bid, 
slippage, 
0, 
0, 
"first_sell", 
magic_number, 
0, 
Red 
); 
} 
}
素晴らしい。上出来です。
”新規エントリーの部分”と指定したせいもあってか、実際に正しく新規エントリー部分のコードに、iMA関数でMA(移動平均線)を取得してエントリー判断をするようなロジックを追加して返していただきました。
これらを組み合わせれば、単純なナンピンマーチンEAを、新規エントリーをMA(移動平均線)で判断して、ナンピン幅をATRに連動させるようなEAに改良することが出来ました。

まとめ

以上、こちらが条件を上手く指定してあげれば、既存EAのロジックをChatGPTに改良してもらう、というのはなかなか実現可能性は高そうです。

前回の記事で見た通り、もしかしたらMQL5は少し難しいかもしれませんが、MQL4であればそれなりに使い道が広がりそうです。

最後に、こんな質問をしてみました。

Q:稼げるEAを作成出来たりしますか?
A:私は人工知能モデルであり、EA(Expert Advisor)を作成することはできません。しかし、EAの開発に必要なアルゴリズムや手法についてのアドバイスを提供することはできます。EAは常に市場の変化に対応することが必要なので、正確な予測や判断をすることが難しいと考えられています。市場情報に基づいて動作するEAは常にリスクが伴いますので、適切なリスク管理とアクションが重要です。
ですよね。そんな単純なものではないはずです。
ただ、プログラミングが苦手な方でも、AIを上手く利用してEAを作成するという世界がもっともっと広がっていきそうな予感はします。アイデアさえあれば、簡単にEAを作成できる時代が訪れるかも知れません。
少なくとも何かやりたいことがあった時に、ググって調べるよりは、ChatGPTに聞いてしまう方が、サンプルコードをすぐに提供してもらえて楽かもしれません。

キャッシュバック口座の開設

作成したEAを利用して実際に運用する際は、通常の口座開設ではなく、キャッシュバック口座を開設するのがおすすめです。以下の記事で、キャッシュバックサイト経由で海外FX口座を開設する際のメリットとデメリットをまとめていますのでご覧ください。

利用者の特性に応じて、リアル口座をどのように開設するのが最適かを考える参考になると思います。

タイトルとURLをコピーしました