我想在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个订单。
答案 0 :(得分:0)
**if(OrdersTotal()<=MAX_ORDERS)**
由于=符号,这最多可以发送6笔交易。它还将在满足<=
条件之前随时进行买卖交易。澄清一下,您是想对冲吗?您的 MAX_ORDERS
被定义为预处理程序指令。 input int MAX_ORDERS =5;
才能更改此值。
答案 1 :(得分:0)
#define MAX_ORDERS 5 在 ea 脚本开头输入 this 后是否需要在脚本后面添加 **if(OrdersTotal()<=MAX_ORDERS