首页 > 解决方案 > 使用 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 个订单。

标签: logicmql4algorithmic-tradingmetatrader4mql5

解决方案


#define MAX_ORDERS 5 在 ea 脚本开头输入这个后,是否需要在脚本后面添加 **if(OrdersTotal()<=MAX_ORDERS


推荐阅读