logic - 使用 MQL4 限制每对交易
问题描述
我想在 MQL4 中使用我的 EA 来限制 MT4 中的数量或交易/订单。我希望每对的限制不是对所有对,例如:如果条件/逻辑匹配,那么将在附加 EA 的每种货币上执行 2 次交易。
这是我尝试过的代码,但它限制了所有附加了 EA 的货币对的交易。
//+------------------------------------------------------------------+
//| psar.mq4 |
//| MSZ |
//| nill |
//+------------------------------------------------------------------+
#property copyright "MSZ"
#property link "nill"
#property version "1.00"
#property strict
#define MAX_ORDERS 5
input int TP=10;
input int SL=30;
input double lot=1;
void OnTick()
{
//---
double SAR;
static int Ticket=0;
SAR=iSAR(Symbol(),0,0.02,0.2,0);
if(OrdersTotal()<=MAX_ORDERS)
{
if(SAR>Open[0])
{
Ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,10,Ask+SL*Point,Ask-TP*Point,"Done By MSZ.Inc");
if(Ticket<0)
{
Alert("Error In Opening Order");
}
else
{
Alert("Sell Order Executed");
}
//Alert("Its Sell Signal");
}
else if(SAR<Open[0])
{
Ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,10,Bid-SL*Point,Bid+TP*Point,"Done By MSZ.Inc");
if(Ticket<0)
{
Alert("Error In Opening Order");
}
else
{
Alert("Buy Order Executed");
}
}
}
else
{
Alert("Orders Limits reached");
}
}
//+------------------------------------------------------------------+
我希望它在附有 EA 的每个图表上执行 5 个订单。
解决方案
#define MAX_ORDERS 5 在 ea 脚本开头输入这个后,是否需要在脚本后面添加 **if(OrdersTotal()<=MAX_ORDERS