【今週の成績 & ChatGPT】無料EAポートフォリオを運用してみる 2 (5/15 – 5/19, 2023)

ポートフォリオ運用,ポートフォリオ2,ミニレビュー ChatGPT

ミニレビューChatGPTに聞いてみた!                                                                                                                                                                                                                                           

今回はChatGPTが書いたMT5のプログラムのご紹介です。簡単なプログラムならMT5でもいけそうです。

Q: MT5EAで、「トータルの利益が一定以上に達したら、全ポジションを決済する」プログラムを書いてください。 なお、決済する通貨ペアは全てとします。

 指示追加
  ・「総利益が1000単位以上になった場合」を外部変数で指定できるようにしてください。
  ・ EA名を「ProfitClose」としてください。


 何度かエラーでコンパイルできず。⇔ その都度、エラーの内容をそのまま伝える。

いつもなら、エラーで断念するところですが、今回は上手くいきました!

A: ChatGPTの返答: https://chat.openai.com/auth/login

MT5(MetaTrader 5)では、MQL5言語を使用してExpert Advisor (EA)を作成できます。EAは、取引の自動化を行うためのプログラムです。

あなたの要求を満たすようなEAは以下のようになるでしょう。ただし、このコードは全てのポジションを閉じるために使用します。利益が一定値以上に達したときにだけ作動します。

以下の例では、全てのポジションの総利益が1000単位以上になった場合に全てのポジションを閉じます。この単位はあなたがMT5を使用している通貨に依存します。

//+------------------------------------------------------------------+
//|                                                  ProfitClose.mq5 |
//|                        Copyright 2023, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2023, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

// Set default profit threshold to 1000
input double ProfitThreshold = 1000; 

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double total_profit = 0;
   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      ulong ticket = PositionGetTicket(i);
      if(ticket > 0)
        {
         total_profit += PositionGetDouble(POSITION_PROFIT);
        }
     }
   
   if(total_profit >= ProfitThreshold) // Use the external variable here
     {
      for(int i=PositionsTotal()-1; i>=0; i--)
        {
         ulong ticket = PositionGetTicket(i);
         if(ticket > 0)
           {
            MqlTradeRequest request;
            MqlTradeResult result;
            
            ZeroMemory(request);

            request.action = TRADE_ACTION_DEAL; 
            request.symbol = PositionGetString(POSITION_SYMBOL); 
            request.volume = PositionGetDouble(POSITION_VOLUME); 
            request.type = PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY ? ORDER_TYPE_SELL : ORDER_TYPE_BUY;
            request.price = request.type == ORDER_TYPE_BUY ? SymbolInfoDouble(request.symbol, SYMBOL_ASK) : SymbolInfoDouble(request.symbol, SYMBOL_BID);
            request.deviation = 20; 
            request.magic = 123456; 
            request.comment = "Close position"; 
            request.position = PositionGetInteger(POSITION_TICKET); 

            if(!OrderSend(request, result))
            {
              Print("OrderSend failed with error ",GetLastError());
            }
            else
            {
              Print("OrderSend succeeded, deal performed with ticket #", result.deal);
            }
           }
        }
     }
  }
//+------------------------------------------------------------------+

EAを起動するとき、またはEAの設定を変更するときに ProfitThreshold 変数を調整することで、利益閾値を変更できます。デフォルト値は 1000 に設定されていますが、これは任意の値に変更できます。

このコードを使用する前に、必ずデモ環境でテストしてください。

便利だけど、これに頼っているとプログラミング能力は鍛えられませね。

MQL5無料EA – NOZAXポートフォリオ No.

NOZAX ポートフォリオ No.
  • 口座:    NZXゼロ(ECN)(NOZAX)
  • 初期残高:  100,000円
  • 稼働EA
  • TraderMind EA MT5: 通貨ペア: USDCAD#, 時間枠:1時間足, ロット数:0.04 Lot
  • White Bear DT for NOZAX V1.13: 通貨ペア: USDJPY#, 時間軸:5分足, ロット数:0.02 Lot
  • Gold Multiply Funds EA: 通貨ペア: XAUUSDD#, 時間軸:30分足, ロット数:0.01 Lot
  • Catastrofix EA MT5: 通貨ペア: Custom Symbol Suffix:# EURBGP, EURAUD, EURNZD, EURUSD, GBPCAD, AUDJPY 時間軸:1時間足, ロット数:Risk % Per Trade: 0 (固定ロット):0.01 Lot

5/15 – 5/19の成績(NOZAXポートフォリオ No.2)

  • TraderMind EA MT5: 1勝1敗、トータルの損益は-1737円(-41.0pips)でした。
  • White Bear DT USDJPY: 8勝2敗、トータルの損益は -575円 (-22.7pips)でした。
  • Gold Multiply Funds EA: 1勝4敗、トータルの損益は -3064円(-2194pips)でした。
  • Catastrofix EA MT5: 7勝6敗、トータルの損益は 3861円 (401.7pips)でした。

これまでの成績(NOZAXポートフォリオ No.2)

各EAの個別の成績は以下の通りです。

  • 4/10-5/19 (2023)
    (利益が1円でもあったトレードは「勝」、一方逆は「負」として集計)
  • 残高 : 100,000円 → 100,487円

ポートフォリオの現況と予定

Gold Multiply Funds EAは、XAUUSDを取引するEAで、かなり期待していたのですが、テスト開始以来成績が振るいません。このEAもAIを利用してエントリーポイントを見つけているようですが、AIによる予測がうまくいかなくなっているのか、精度が落ちてきている気がします。

単に相場に合っていなかっただけで、今後成績を伸ばしてくる可能性も無きにしも非ずなので、とりあえずこのポートフォリオからは外して、デモ口座で様子をみたいと思います。

TraderMind EA MT5もWhite Bear DTも決して調子が良い訳ではないので、悩ましいところですが、とりあえず次週はこの2つとCatastrofix EAを加えた3つでポートフォリオを回そうと思います。

NOZAX

新進気鋭のMT5 FXブローカー【NOZAX】→ → → 詳しくはこちら!

Posted by GOMA