ChatGPTは、OpenAIによって訓練された大規模な言語モデル(対話型AI)です。
どんな質問にもそれなりに回答してくれるとのことで、以下、ChatGPTとの対話形式も取り入れて話を進めます。
ナンピンマーチン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: スリッページ
- ロジック:
- 現在のポジションを確認します。買い・売りのポジション数、およびそれぞれのポジションの含み損益を計算します。
- 買い・売りのいずれかのポジションがない場合、新規エントリー注文を実行します。
- 売り・買いのいずれかのポジションがあり、含み損益が一定のレンジに達した場合、決済注文を実行します。
この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に連動させることが出来ました。
エントリー条件を改良してもらってみる
Q:以下は、MQL4で書かれたEAです。新規エントリーの部分をテクニカル指標を用いたエントリーにコードを修正可能でしょうか?
<実際のコードは省略>
// 移動平均線によるエントリー判断
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
);
}
}
まとめ
以上、こちらが条件を上手く指定してあげれば、既存EAのロジックをChatGPTに改良してもらう、というのはなかなか実現可能性は高そうです。
前回の記事で見た通り、もしかしたらMQL5は少し難しいかもしれませんが、MQL4であればそれなりに使い道が広がりそうです。
最後に、こんな質問をしてみました。
BingAIでMT5用EAを作成してみた
BingAIというチャット型AIもご紹介しています。
ChatGPTで他にも試してみた
ChatGPTで他にも試してみています。
キャッシュバック口座の開設
作成したEAを利用して実際に運用する際は、通常の口座開設ではなく、キャッシュバック口座を開設するのがおすすめです。以下の記事で、キャッシュバックサイト経由で海外FX口座を開設する際のメリットとデメリットをまとめていますのでご覧ください。
利用者の特性に応じて、リアル口座をどのように開設するのが最適かを考える参考になると思います。