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

makegrid with sl 100 pips.mq4

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

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

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

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

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 4, реализующий сеточную торговлю (grid trading). Советник размещает отложенные ордера на покупку и продажу в виде сетки с заданным шагом в пунктах, формируя несколько позиций на разных ценовых уровнях.

Советник поддерживает фильтрацию направлений через скользящие средние EMA (50, 100, 200), позволяя открывать длинные позиции только при цене выше указанной EMA и короткие — только при цене ниже. Также доступна фильтрация по индикатору MACD: при пересечении нулевой линии советник отменяет все отложенные ордера и при необходимости закрывает открытые позиции.

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

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

НастройкаОписание
uniqueGridMagic Уникальное магическое число для идентификации сделок, принадлежащих данной сетке.
Lots Объём торговой позиции по умолчанию.
GridSize Расстояние между ордерами сетки в пунктах.
GridSteps Общее количество ордеров, которые размещаются в сетке.
TakeProfit Тейк-профит в пунктах. Если не задан (равен нулю или меньше нуля), автоматически устанавливается равным размеру сетки.
StopLoss Стоп-лосс в пунктах. Если задан значением больше нуля, применяется к каждому ордеру. По умолчанию сеточные стратегии стоп-лосс не используют.
UpdateInterval Интервал обновления ордеров в минутах. Советник пересчитывает и перераспределяет сетку с заданной периодичностью.
wantLongs Разрешает открытие длинных (buy) позиций в сетке.
wantShorts Разрешает открытие коротких (sell) позиций в сетке.
wantBreakout Разрешает размещение отложенных ордеров выше текущей цены (длинные) и ниже текущей цены (короткие) — breakout-сигналы.
wantCounter Разрешает размещение отложенных ордеров ниже текущей цены (длинные) и выше текущей цены (короткие) — counter-сигналы.
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 Если включён фильтр MACD, определяет, нужно ли также закрывать открытые позиции с убытком при пересечении 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