見出し画像

【MQL5】コード生成AI、Copilotにコード書かせてみた

MT5のメタエディタにBuild3800(2023.6)で搭載されたAI機能、Copilot。
こちらのCopilot機能を使用してEAの一部を書いてもらいました('ω')

設定

①MQL5アカウントを作成してログインする必要があります。ログインしていない場合はログイン画面が表示されます。
②メタエディタの「メニューバー」→「ツール」→「オプション」→「Copilot」で設定を変更することが可能です。
③今のところ無料で使用できますが、今後有料になるかもしれません。

方法

① MQL5のメタエディタを開いてファイルを新規作成。
② グローバル領域のどこか空いてる場所にプロンプト(質問内容)を記載
③ Copilotのボタンを押すまたは、プロンプトを範囲選択して右クリック→Copilotにプロンプトを送信 or Copilotで記述
※プロンプトを送信と記述の違いは判りません。誰か教えて、、、

実験

適当にプロンプトをいくつか作成してみます。
①関数に関するコード
 平均建値の取得方法を聞いてみました。
 計算方法が間違っていた部分はコメントで修正しています。
 そしてコード全体的にMQL4で返ってくることがいいので、MQL4→MQL5変換のコンバーターが必要→こちらで購入可能(是非買って)

(引数で指定したマジックナンバーとオーダータイプの平均建値を取得する関数を教えてください。

以下のような関数を作成することができます。

double GetAveragePrice(int magic, int type)
{
   double averagePrice = 0;
   int totalOrders = 0;//double型で宣言
   double totalPrice = 0;
   
   for(int i = 0; i < OrdersTotal(); i++)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == magic && OrderType() == type)
      {
         totalOrders++;//totalOrders += OrderLots();
         totalPrice += OrderOpenPrice();//totalPrice += OrderOpenPrice()*OrderLots();
      }
   }
   
   if(totalOrders > 0)
   {
      averagePrice = totalPrice / totalOrders;
   }
   
   return averagePrice;
}

②単純な法則を理解させて書かせてみる
//val10まで以下の法則で続きを書いてください
int val0 = 0;
int val1 = 1;
→変数を作成するのが面倒な時はとても役に立ちそうです

//val10まで以下の法則で続きを書いてください
int val0 = 0;
int val1 = 1;
int val2 = 2;
int val3 = 3;
int val4 = 4;
int val5 = 5;
int val6 = 6;
int val7 = 7;
int val8 = 8;
int val9 = 9;
int val10 = 10;

//以下の法則でval[10]まで続きを書いてください。
val[0] = val0;
val[1] = val1;
→法則を理解して単純なことはできるみたいです。

//以下の法則でval[10]まで続きを書いてください。
val[0] = val0;
val[1] = val1;
val[2] = val2;
val[3] = val3;
val[4] = val4;
val[5] = val5;
val[6] = val6;
val[7] = val7;
val[8] = val8;
val[9] = val9;
val[10] = val10;

③もう少し難しく
USD/JPY/GBP/EUR/AUD
以上の通貨のかけ合わせでできる通貨ペアすべてのパターンを教えてください。
→プロンプトにもよりますが、理解してくれませんでした。会話型AIではないのでChatGPTみたいに間違いを指摘して修正することもできません。

USD/JPY, USD/GBP, USD/EUR, USD/AUD, JPY/GBP, JPY/EUR, JPY/AUD, GBP/EUR, GBP/AUD, EUR/AUD

感想

 ChatGPTと同様でCopilotも不完全で平気で間違ったコードを提示してくるのでMQLの知識は必須だなと感じました。
 まだまだ使い始めたばかりで効率いい使い方がわかりませんので、おすすめの使い方あればぜひ教えてほしいです!('ω')

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