【今週の成績 & ChatGPT】無料EAポートフォリオを運用してみる 2 (5/15 – 5/19, 2023)
ミニレビュー – 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.2
NOZAX ポートフォリオ No.2
- 口座: 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つでポートフォリオを回そうと思います。