Lerdon
Destian Farbius

 
Уровень 9

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Нужен по советник по Zig-Zag

Добрый день

Нужен советник который будет выставлять уровни по последним вершинам индикатора Zig-Zag.
Скриншот снизу


ВАЖНО! Сделка не должна открываться сразу после пересечения уровней ZIG-ZAG, а лишь после того как закроются 4 бара над или под одной из вершин ZIG-ZAG.

ЗАКРЫЛИСЬ НАД ВЕРШИНОЙ HIGH: BUY
ЗАКРЫЛИСЬ ПОД LOW ВЕРШИНОЙ: SELL

Уровни выставляются по последним HIGH и LOW Zig-Zag.

В настройках нужны параметры:
SL
TP
TRALL
РАЗМЕР СДЕЛКИ:
Параметры ZIG_ZAG:
На каком баре после преодоления вершины открывается сделка:

ДОПОЛНИТЕЛЬНО ПОЯСНЕНИЕ:
пример с текущей ситуацией на EURUSD:


Сможешь?
  • 0
  • Просмотров: 2080
  • 21 марта 2020, 11:01
  • Lerdon
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
HandTester для МТ5
Следующая запись в группе  
Индикатор для MT5
18 марта 2020
21 марта 2020

Брокер для ваших роботов, 15 лет на рынке

Комментарии (8)

+
0
на 25-е
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 21 марта 2020, 22:46
+
0
Уточните, 4 бара подряд должны закрыться, или всего? Например, 3 закрылось выше линии, 4й — ниже, 5й-опять выше. Откроется ли после 5го бара сделка, или нужно ждать чтобы подряд были?
avatar

  11  andre71g Сообщений: 168 - andre71g

  • 22 марта 2020, 10:40
+
0
все 4 подряд должны закрыться над уровнем. Никаких ретестов)
avatar

  9  Lerdon Автор Сообщений: 242 - Destian Farbius

  • 22 марта 2020, 13:01
+
0
Опять же — считается только после первого пробития 4, или можно так — 1,2,3 закрылись выше линии, 4й — ниже, 5,6,7,8 -опять выше, четыре подряд — откроется ордер?
avatar

  11  andre71g Сообщений: 168 - andre71g

  • 22 марта 2020, 16:20
+
0
да
avatar

  9  Lerdon Автор Сообщений: 242 - Destian Farbius

  • 22 марта 2020, 16:28
+
0
не получилось быстро сделать. не ко мне. вот то что сделал:


//+------------------------------------------------------------------+
//|                                                          ZZ2.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 3000;     // язь
extern int Delta         = 100;      // расстояние от цены
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern int Depth         = 12;
extern int Dev           = 5;
extern int Back          = 3;

double zz0=0,zz1=0,zz2=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0)
            break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double ZZPrice(int ne=0)
  {
   double zz;
   int    i,k=iBars(NULL,0),ke=0;

   for(i=1; i<k; i++)
     {
      zz=iCustom(NULL,0,"ZigZag",Depth,Dev,Back,0,i);
      if(zz!=0)
        {
         ke++;
         if(ke>ne)
            return(zz);
        }
     }
   Print("GetExtremumZZPrice(): Экстремум ЗигЗага номер ",ne," не найден");
   return(0);
  }
//+------------------------------------------------------------------+
//| Горизонтальная линия                                             |
//+------------------------------------------------------------------+
void PutHLine(string name,double p,color clr)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_HLINE,0,0,p);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int BarsCount(int type)
  {
   int bars=0;

   if(type==0)//buy
     {
      for(int i=0; i<Bars; i++)
        {
         if(Close[i]>zz2 && Bid>zz2 && zz0>zz2)
           {
            bars++;
           }
        }
     }

   if(type==1)
     {
      for(int i=0; i<Bars; i++)
        {
         if(Close[i]<zz2 && Bid<zz2 && zz0<zz2)
           {
            bars++;
           }
        }
     }
   return(bars);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   zz0=ZZPrice(0);
   zz1=ZZPrice(1);
   zz2=ZZPrice(2);

   if(CountTrades()<1)
     {
      if(zz1>zz2)
        {
         PutHLine("UP",zz1,Blue);
         PutHLine("DN",zz2,Red);
        }
      if(zz1<zz2)
        {
         PutHLine("UP",zz2,Blue);
         PutHLine("DN",zz1,Red);
        }
     }

   Comment("\n ZZ0: ",zz0,
           "\n ZZ1: ",zz1,
           "\n ZZ2: ",zz2,
           "\n Buy Bars: ",BarsCount(0),
           "\n Sell Bars: ",BarsCount(1));
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 23 марта 2020, 22:36
+
0
А советник получается сделки вообще не открывает?
avatar

  9  Lerdon Автор Сообщений: 242 - Destian Farbius

  • 24 марта 2020, 07:22
+
0
закрылись 4 выше бай:



4 ниже сел:



www.opentraders.ru/downloads/2600/

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 24 марта 2020, 18:00

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий