← К каталогу
Исходный код · ID 4308

source code of grid with 100 pips stop loss.mq4

Похожие материалы по тегам

! macd+.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!macd_adx.mq4MQL4 / MetaTrader 4 · 1 общих теговxauusd_gold_perfect.mq4MQL4 / MetaTrader 4 · 1 общих теговtm sniper pro.pineTradingView · 1 общих теговsniper pro.mq5MQL5 / MetaTrader 5 · 1 общих теговpro +.pineTradingView · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой советник для платформы MetaTrader 4, реализующий сеточную торговлю. Он автоматически размещает отложенные ордера на покупку и продажу на заданных ценовых уровнях с настраиваемыми параметрами объёма, тейк-профита и стоп-лосса.

Советник поддерживает фильтрацию ордеров по уровням скользящих средних EMA 50, 100 и 200, а также дополнительно может использовать индикатор MACD для подтверждения направления сделок. При определённых условиях MACD советник отменяет все отложенные ордера и при необходимости закрывает открытые позиции.

Доступны настройки направления торгов (длинные и/или короткие позиции), типов входа (пробой или контртренд), частоты обновления сетки и уникального магического номера для идентификации ордеров конкретной сетки.

Настройки программы

НастройкаОписание
uniqueGridMagic Уникальный магический номер для идентификации ордеров данной сетки.
Lots Объём лота для каждого ордера.
GridSize Расстояние в пунктах между ордерами сетки — размер сетки или ячейки.
GridSteps Общее количество ордеров, которые размещаются в сетке.
TakeProfit Значение тейк-профита в пунктах. По умолчанию равен размеру сетки, но может быть переопределено.
StopLoss Значение стоп-лосса в пунктах. Если не задан (0), стоп-лосс не устанавливается.
UpdateInterval Интервал обновления ордеров в минутах. Советник пересчитывает сетку с заданной периодичностью.
wantLongs Разрешает размещение длинных (покупка) позиций.
wantShorts Разрешает размещение коротких (продажа) позиций.
wantBreakout Включает размещение длинных ордеров выше текущей цены и коротких ордеров ниже текущей цены (пробой).
wantCounter Включает размещение длинных ордеров ниже текущей цены и коротких ордеров выше текущей цены (контртрендовый вход).
limitEMA50 Ограничение размещения ордеров по уровню EMA 50: для длинных позиций — цена выше EMA 50, для коротких — ниже EMA 50.
limitEMA100 Ограничение размещения ордеров по уровню EMA 100: для длинных позиций — цена выше EMA 100, для коротких — ниже EMA 100.
limitEMA200 Ограничение размещения ордеров по уровню EMA 200: для длинных позиций — цена выше EMA 200, для коротких — ниже EMA 200.
GridMaxOpen Максимальное количество одновременно открытых позиций. В текущей версии данная настройка не реализована.
UseMACD Включает использование индикатора MACD для фильтрации направления сделок. При пересечении линий MACD отменяются все отложенные ордера.
CloseOpenPositions Если включён параметр UseMACD, определяет, нужно ли также закрывать открытые позиции с убытком при срабатывании условия MACD.
Получить полный код

Поиск по коду файла

extern int    uniqueGridMagic = 11111;   // Magic number of the trades. must be unique to identify

extern double Lots = 0.05;              // 
extern double GridSize = 20;            // pips between orders - grid or mesh size
extern double GridSteps = 10;          // total number of orders to place
extern double TakeProfit = 30;        // number of ticks to take profit. normally is = grid size but u can override
extern double StopLoss = 70;            // if u want to add a stop loss. normal grids dont use stop losses
extern double UpdateInterval = 1;      // update orders every x minutes
extern bool   wantLongs = true;        //  do we want long positions
extern bool   wantShorts = true;      //  do we want short positions
extern bool   wantBreakout = true;     // do we want longs above price, shorts below price
extern bool   wantCounter = true;      // do we want longs below price, shorts above price
extern bool   limitEMA50 = true;       // do we want longs above ema only, shorts below ema only
extern bool   limitEMA100 = true;       // do we want longs above ema only, shorts below ema only
extern bool   limitEMA200 = true;       // do we want longs above ema only, shorts below ema only
extern double GridMaxOpen = 0;         // maximum number of open positions : not yet implemented..
extern bool   UseMACD = true;          // if true, will use macd >0 for longs only, macd >0 for shorts only

extern bool CloseOpenPositions = false;// if UseMACD, do we also close open positions with a loss?

string GridName = "MakeGrid_50_100_200_30pips_stop100";       // identifies the grid. allows for several co-existing grids
double LastUpdate = 0;          // counter used to note time of last update

int init()
  {
      // код доступен только после оплаты
   }

bool IsPosition(double atRate, double inRange, bool checkLongs )
  {

     int totalorders = OrdersTotal();
     for(int j=0;j<totalorders;j++)                                // scan all orders and positions...
      {
        OrderSelect(j, SELECT_BY_POS);

        if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) )  // only look if mygrid and symbol...
         {  int type = OrderType();
             if (MathAbs( OrderOpenPrice() - atRate ) < (inRange*0.9)) // dont look for exact price but price proximity (less than gridsize)
              { if ( ( checkLongs && ( type == OP_BUY || type == OP_BUYLIMIT  || type == OP_BUYSTOP ) )  || (!checkLongs && ( type == OP_SELL || type == OP_SELLLIMIT  || type == OP_SELLSTOP ) ) )
                 { 
                    return(true); 
                 }
              }
         }
      } 
   return(false);
  }

void CloseAllPendingOrders( )
  {
     int totalorders = OrdersTotal();
     for(int j=totalorders-1;j>=0;j--)                                // scan all orders and positions...
      {
        OrderSelect(j, SELECT_BY_POS);

        if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) )  // only look if mygrid and symbol...
         {  
          int type = OrderType();
          bool result = false;
          switch(type)
          {
             case OP_BUY       : result = true ;
             case OP_SELL      : result = true ;

            case OP_BUYLIMIT  : result = OrderDelete( OrderTicket() ); 
            case OP_BUYSTOP   : result = OrderDelete( OrderTicket() ); 
            case OP_SELLLIMIT : result = OrderDelete( OrderTicket() ); 
            case OP_SELLSTOP  : result = OrderDelete( OrderTicket() ); 
          }
         }
      } 
   return;
  }

void CloseOpenOrders()
{
  int total = OrdersTotal();
  for(int i=total-1;i>=0;i--)
 {
    OrderSelect(i, SELECT_BY_POS);
    int type    = OrderType();
    bool result = false;

    if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) )  // only look if mygrid and symbol...
     {

        switch(type)

Показано первые 50% кода (символов: 5577)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
557,70₽ ≈ $6.82