『ChatGPT』を使ってEAを作る方法

EA作成入門
スポンサーリンク

概要

最近AIの勢いが凄いですよね。私も色々試しながら楽しんでます。

さて、今回はAIの『ChatGPT』を使ってEAを作る方法について解説します。

『ChatGPT』を使えるようにする方法から、『ChatGPT』とのコミュニケーションの取り方、さらに『ChatGPT』でプログラミングするには必須のコマンド等をお伝えします。

ChatGPTを理解して、使えるようにする

まずは、ChatGPTについて理解していきましょう。

ChatGPTとは、大量のテキストを学習し、その学習結果を元に自然言語処理を行うAIです。ChatGPTを使ってEAを作成する場合、トレードに関する情報をChatGPTに入力し、応答が返ってきた結果を組み立てていきます。

ChatGPTを使う方法

ChatGPTの公式から簡単な登録で利用可能になります。以下に解説していきます。

1.ChatGPTの公式を開き、『Try ChatGPT』をクリックします。アカウントがない場合は『Sign up』から進めていきます。

2.登録はメールアドレスかGoogle/Microsoftアカウントを使います。メールアドレスで登録する場合は、8文字以上のパスワードの設定が求められます。のちほど電話番号の入力→ショートメール認証があります。

3.最後に、登録したアドレス宛にOpenAIからメールが届くので、メール本文の「Verify email address」から登録画面を開きます。名前と電話番号を登録すると、6桁の認証コードが記載されたショートメールが送られてくるので、それを入力して完了です。

あとは赤枠の所に聞きたい事を入力していきます。聞きたい事を入力したら、右側の紙飛行機ボタンをクリックします。

するとChatGPTが応答してくれます。

凄いですね!聞いたら何でも答えてくれます!

この機能を利用して、EAを作っていく感じになります。

ChatGPTに質問してみる

それでは早速ChatGPTに質問していきましょう。質問内容はこんな感じにしてみましょう。

「ドル円の1時間足チャートを分析して、RSIを使って買いエントリーするMT4のEAプログラムをつくってほしい」

ポイントは『通貨ペア』や『時間足』『MT4』『インジケータ名』を使いながら『EAプログラムを作ってほしい』という質問内容にすることです。

すると、ChatGPTの応答はこんな感じでソースコードを返してくれます。

// EAの設定
extern double Lots = 0.1; // 取引量(ロット数)
extern int RsiPeriod = 14; // RSIの期間
extern int RsiOversold = 30; // RSIの買いシグナルの閾値

// エントリー関数
void OnTick()
{
    double rsi = iRSI(Symbol(), PERIOD_H1, RsiPeriod, PRICE_CLOSE, 0);
    
    // RSIが買いシグナルの閾値以下になったら買いエントリーする
    if (rsi <= RsiOversold)
    {
        OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Bid - StopLoss * Point, Bid + TakeProfit * Point);
    }
}
全く同じ回答が返ってくることは稀なので参考程度に。
※何回も同じ事をきくだけで色々な回答が返ってきます

凄いですね、もうEAが完成しちゃいそうです!が、まだ早まってはいけません。コンパイルをしていきましょう。

コンパイルをすると、

ありゃ、エラーが出ちゃいましたね。これではEAが作れません。

ChatGPTはコンパイルが必ず成功するソースコードを返答しれくれるわけでありません。体感で90%以上のソースコードでコンパイルが成功しません。

プログラミング未経験者には高い壁が・・・

プログラミング未経験者が『ChatGPT』を使うと、上記のようなエラーで詰まっちゃう思います。殆どと言っていい程、中々100%正しいプログラムは返ってきません。

プログラミング未経験者が『ChatGPT』を使うのは高い壁があるといえます。
※簡単なプログラム知識が必須

ただ、ほんの少しのプログラミング知識を持っていれば、上記のエラー自体は単純で「undeclared identifier」というエラー内容は、変数が宣言されていないという意味なので、「StopLoss」「TakeProfit」変数を宣言するとコンパイルできるようになり、RSIのEAが作れます。

よって、ほんの少しのプログラミング知識を持っていれば『ChatGPT』がかなり使えるのは事実です。

MQL4を理解する

ChatGPTでEAを作るには、MQL4についての基礎知識をある程度身につける必要があります。MQL4とはMetaTrader 4のプログラミング言語であり、EAを作成するための言語といえます。

もちろん、プログラミング基礎知識は付けずとりあえずChatGPTに質問しまくってEAを作る事も可能ですが、かなり効率が悪いです。

先ほどもお伝えした通り『ChatGPT』を使ってプログラミングしてみると、結構ミスってる事が多いので、結局自分で直してあげる必要がでてきます。

プログラミング知識なしにEAを作るのであれば、「EAつくーる」を使った方がてっとり早いです。

ただ、プログラミングの基礎意識を身につけた場合、ChatGPTを使うとEAを作る速度がかなり上がります。この機会にMQL4の基礎知識について学びたい方は、以下の記事で1から解説しています。

プログラミングがある程度理解できたらEAを作っていきましょう!

ChatGPTを使ってEAを作成する

ChatGPTを使ってEAを作成するためには、ChatGPTにトレードに関する情報を聞いていきます。単語1つでかなりソースコードが変化したりします。基本的に普段自分が作るソースコードに似ているものを回答してくれるまで何度も質問していきましょう。

MT4以外の全く違うソースコードも返ってくることがありますので、冒頭でも述べた通り質問のやりとりの中で「MT4」といった単語は必須だと思います。

あと、ChatGPTは前回質問した内容を引き継いで答えをだしてくれるので、この性質も使えます。

先ほどChatGPTを使ってEAを作成した際の問いかけは「ドル円の1時間足チャートを分析して、RSIを使って買いエントリーするEAを作成したい」でしたので、続けてこうChatGPTに聞いてみて下さい。

「ドル円の1時間足チャートを分析して、RSIを使って売りエントリーする機能を作成したい」

今回は『機能』という単語にしてみました。『EA』を作成したいと質問すると丸々1本のEAを作ろうとして謎の処理も多く返ってきますが、『機能』を作成したいにすると割とピンポイントで返ってくるイメージです。

結果、以下のような返答がありました。

// EAの設定
extern double Lots = 0.1; // 取引量(ロット数)
extern int RsiPeriod = 14; // RSIの期間
extern int RsiOverbought = 70; // RSIの売りシグナルの閾値

// エントリー関数
void OnTick()
{
    double rsi = iRSI(Symbol(), PERIOD_H1, RsiPeriod, PRICE_CLOSE, 0);
    
    // RSIが売りシグナルの閾値以上になったら売りエントリーする
    if (rsi >= RsiOverbought)
    {
        OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Ask + StopLoss * Point, Ask - TakeProfit * Point);
    }
}

これを先ほど作ったEAのソースコードに展開していくわけですが面倒ですので、続けてこう聞きます。

「上記から売り買いのEAを作って下さい」

こうすることで、以下のような返答になります。

// EAの設定
extern double Lots = 0.1; // 取引量(ロット数)
extern int RsiPeriod = 14; // RSIの期間
extern int RsiOversold = 30; // RSIの買いシグナルの閾値
extern int RsiOverbought = 70; // RSIの売りシグナルの閾値

// エントリー関数
void OnTick()
{
    double rsi = iRSI(Symbol(), PERIOD_H1, RsiPeriod, PRICE_CLOSE, 0);
    
    // RSIが買いシグナルの閾値以下になったら買いエントリーする
    if (rsi <= RsiOversold)
    {
        OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Bid - StopLoss * Point, Bid + TakeProfit * Point);
    }
    
    // RSIが売りシグナルの閾値以上になったら売りエントリーする
    if (rsi >= RsiOverbought)
    {
        OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Ask + StopLoss * Point, Ask - TakeProfit * Point);
    }
}

しっかりと売りと買いを組み合わせてくれます。

これがChatGPTの魅力です!質問した流れから応答文が変わるので、どう聞いていけばいいか試行錯誤しながら試しているとEAになることも!

あっというまにRSIを使った売りと買いのEAが作れてちゃいましたね!

ChatGPTのその他機能

ChatGPTは同じ質問内容でも、以下の赤枠のボタンを押す事で違う回答を返してくれます。

こういったものを駆使して色々なプログラムを返してもらう事が可能です。想像以上に回答パターンが豊富(全く同じ回答がほぼ出てこない)なので驚くばかりです。

プログラム等が応答途中で途切れる場合の対処法

続いて、ChatGPTでプログラミングするには必須のコマンドです。この便利機能、最近まで知りませんでした。

『続けてください』

EAを作るために複雑な内容で質問をすると、プログラムが長すぎて途中で切れる事があります。これは、ChatGPTが応答する際の最大文字数が2048文字であるためです。

こんな感じで途中で途切れて終わってしまった場合、次の質問で『続けてください』と入力してあげると続きの応答をくれます。

この機能は最近知ったんですが、知ってたらかなり便利です。

さいごに

以上が、『『ChatGPT』を使ってEAを作る方法』です。

やはりプログラミングをある程度理解している方がChatGPTでEAをつくりやすく、作る速度もあがるためプログラミングを学ぶことは現段階ではまだまだ重要そうです。

あと、ChatGPTの色んな仕様や質問の前後で回答ががらりと変わるところでさらに可能性を感じました。是非みなさんも色々試してみて下さい。

※ MT4・EAが使えるFX会社のおすすめ

※ EAのサンプルソースを一覧表にまとめました


コメント