Лимитная торговля по каждой паре с использованием MQL4 - PullRequest
0 голосов
/ 28 июня 2018

Я хочу ограничить количество или сделки / ордера в MT4, используя мой советник в MQL4. Я хочу, чтобы лимит для каждой пары был не для всех пар, например: если условие / логика совпадают, то по каждой валюте, к которой подключен советник, будут совершены 2 сделки.

Это код, который я пробовал, но он ограничивает сделки по всем парам, к которым был прикреплен советник.

    //+------------------------------------------------------------------+
//|                                                         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");
    }
  }
//+------------------------------------------------------------------+

Я хочу, чтобы он выполнял 5 ордеров на каждой диаграмме, к которой прикреплен советник.

1 Ответ

0 голосов
/ 15 мая 2019
**if(OrdersTotal()<=MAX_ORDERS)**

Это может отправить до 6 сделок из-за знака =. Он также будет пополнять сделки на покупку или продажу в любое время, пока не будет выполнено условие <=. Чтобы уточнить, вы имеете в виду хеджирования? Ваш MAX_ORDERS определен как директива препроцессора. input int MAX_ORDERS =5;, чтобы иметь возможность изменить это значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...