Советник e-Droba-ZigZag_V2

  • Автор темы Автор темы VIZAVI
  • Дата начала Дата начала

blum32

Активный участник
Что-то не видит у меня индикатор. У кого нибудь работает?

Индикатор скомпилировать надо
...
советник для 1H или 30M таймфреймов
...
И главное: Этот сов более менее стабильно едет на паре евродоллар!
 
Последнее редактирование:

blum32

Активный участник
Вот вам еще советник, переписанный для мт5:
 
Последнее редактирование:

Александр I

Активный участник
Индикатор скомпилировать надо
...
советник для 1H или 30M таймфреймов
...
И главное: Этот сов более менее стабильно едет на паре евродоллар!

Поставил в другой терминал, там работает, но тут нужен другой подход, на пробой слишком большой стоп получается, и в итоге в лучшем случаи тут выходишь в ноль, вот если бы сперва зиг-заг пробивал предыдущий максимум или минимум, а потом на откате покупал, стоп бы ровно на 3-5 пунктов нижнего уровня или верхнего ложился, вот тогда был бы толк. у меня есть такой советник, вот только стоп там нужно двигать самому.
 

Александр I

Активный участник
На самом деле тут нужен другой тестер в мт4, штатный ну совсем другие результаты выдает... В мт5 получше_

Сможешь подправить, чтоб при обратном сигнале не закрывал открытую сделку. верхний сов, нижний индикатор.
 

Вложения

blum32

Активный участник
Сможешь подправить, чтоб при обратном сигнале не закрывал открытую сделку. верхний сов, нижний индикатор.
Код:
[FONT="Courier New"][COLOR="DimGray"]//функцию start заменить на:
//--------------------------------------------+
int start()
  {
  
   total=TotalSymbol();
   if(total>0) CheckforTral();
   if(New_bar(TimeFrame))
     {
      Signal=InitSignal();
     }
   if(Signal!=0 && ((total==1 && LastType==OP_BUY) || (total==1 && LastType==OP_SELL) || total==0) ) InitforOpen();

return(0);
  }
//------------------------------------------------------------+

//Фунцию InitforOpen заменить на:

//------------------------------------------------------------+
void InitforOpen()
  {
   int ticket=-1;
   double sl=0,tp=0;
   if(Signal>0 && ((total==1 && LastType==OP_SELL) || total==0))
     {
      ticket=OpenOrder(0,Lot);
      if(ticket>0 && OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        {
         if(TakeProfit!=0) tp=OrderOpenPrice()+TakeProfit*Auto_Points();
         if(StopLoss!=0) sl=OrderOpenPrice()-StopLoss*Auto_Points();
         else sl=SpoLossZZ-1*Auto_Points();
         if(Bid-sl<Min_SL_TP()*Auto_Points()) sl=Bid-(Min_SL_TP()+1)*Auto_Points();
        }
     }
   if(Signal<0 && ((total==1 && LastType==OP_BUY) || total==0))
     {
      ticket=OpenOrder(1,Lot);
      if(ticket>0 && OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        {
         if(TakeProfit!=0) tp=OrderOpenPrice()-TakeProfit*Auto_Points();
         if(StopLoss!=0) sl=OrderOpenPrice()+StopLoss*Auto_Points();
         else sl=SpoLossZZ+1*Auto_Points()+(Ask-Bid);
         if(sl-Ask<Min_SL_TP()*Auto_Points()) sl=Ask+(Min_SL_TP()+1)*Auto_Points();
        }
     }
   Signal=0;
   if(sl!=0 || tp!=0)
     {
      bool ret=false;
      int m=0;
      while(!ret && m<5)
        {
         while(IsTradeContextBusy()) Sleep(10);
         ret=OrderModify(ticket,OrderOpenPrice(),sl,tp,0,Lime);
         m++;
        }
     }
  }

//функции CheckforClose() и CloseOrders(int type) не нужны[/COLOR][/FONT]

Вот как-то так... Разумеется если я правильно понял вашу мысль!
Если нет - обращайтесь, будет свободное время: помогу!
 
Последнее редактирование:

Александр I

Активный участник
Код:
[FONT="Courier New"][COLOR="DimGray"]//функцию start заменить на:
//--------------------------------------------+
int start()
  {
  
   total=TotalSymbol();
   if(total>0) CheckforTral();
   if(New_bar(TimeFrame))
     {
      Signal=InitSignal();
     }
   if(Signal!=0 && ((total==1 && LastType==OP_BUY) || (total==1 && LastType==OP_SELL) || total==0) ) InitforOpen();

return(0);
  }
//------------------------------------------------------------+

//Фунцию InitforOpen заменить на:

//------------------------------------------------------------+
void InitforOpen()
  {
   int ticket=-1;
   double sl=0,tp=0;
   if(Signal>0 && ((total==1 && LastType==OP_SELL) || total==0))
     {
      ticket=OpenOrder(0,Lot);
      if(ticket>0 && OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        {
         if(TakeProfit!=0) tp=OrderOpenPrice()+TakeProfit*Auto_Points();
         if(StopLoss!=0) sl=OrderOpenPrice()-StopLoss*Auto_Points();
         else sl=SpoLossZZ-1*Auto_Points();
         if(Bid-sl<Min_SL_TP()*Auto_Points()) sl=Bid-(Min_SL_TP()+1)*Auto_Points();
        }
     }
   if(Signal<0 && ((total==1 && LastType==OP_BUY) || total==0))
     {
      ticket=OpenOrder(1,Lot);
      if(ticket>0 && OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        {
         if(TakeProfit!=0) tp=OrderOpenPrice()-TakeProfit*Auto_Points();
         if(StopLoss!=0) sl=OrderOpenPrice()+StopLoss*Auto_Points();
         else sl=SpoLossZZ+1*Auto_Points()+(Ask-Bid);
         if(sl-Ask<Min_SL_TP()*Auto_Points()) sl=Ask+(Min_SL_TP()+1)*Auto_Points();
        }
     }
   Signal=0;
   if(sl!=0 || tp!=0)
     {
      bool ret=false;
      int m=0;
      while(!ret && m<5)
        {
         while(IsTradeContextBusy()) Sleep(10);
         ret=OrderModify(ticket,OrderOpenPrice(),sl,tp,0,Lime);
         m++;
        }
     }
  }

//функции CheckforClose() и CloseOrders(int type) не нужны[/COLOR][/FONT]

Вот как-то так... Разумеется если я правильно понял вашу мысль!
Если нет - обращайтесь, будет свободное время: помогу!

Спасибо, супер!!!
 

blum32

Активный участник
Во еще нашел своего старенького робота на основе Е-Дробы:
 
Последнее редактирование:

Александр I

Активный участник
Во еще нашел своего старенького робота на основе Е-Дробы:

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

Вложения

  • audusdh1.png
    audusdh1.png
    43 КБ · Просмотры: 271

Александр I

Активный участник
Или вот например вход, соблюдены все условия, да я хер его знает куда она пойдёт эта евра, ну есть вход вошёл, стоп небольшой, ну поймаю лося да и хэ с ним, зато всё по системе.
 

Вложения

  • eurusdh1.png
    eurusdh1.png
    22,8 КБ · Просмотры: 166

blum32

Активный участник
Или вот например вход, соблюдены все условия, да я хер его знает куда она пойдёт эта евра, ну есть вход вошёл, стоп небольшой, ну поймаю лося да и хэ с ним, зато всё по системе.

Если например, ловить движение со второй точки на третью, подвигая к рынку стоп-ордер тралом или по условию , с учетом внутридневной активности по паре еврдоллар??
 

Александр I

Активный участник
Если например, ловить движение со второй точки на третью, подвигая к рынку стоп-ордер тралом или по условию , с учетом внутридневной активности по паре еврдоллар??

Можно конечно и стоповый тянуть, ну тогда стоп-лос будет уже больше, ну а насчёт активности, тут уже и не знаешь, будет движняк или нет. Вообще в советнике наверное такую систему незадашь, я не понимаю в програмировании, пытался несколько раз понять, но это не для моего ума. Опять же если сиг появился поздно,( допустим если импульс произошёл) когда цена уже шагнула порядка N пунктов, то я уже не вхожу, нет смысла в большом стопе. А вообще можно было бы попробовать, допустим есть второй сигнал, тогда стоповый ставится на Н пунктов от цены и далее плывёт за ней, можно, я не практиковал это , теперь попробую, неплохая идея.
 
Последнее редактирование:

IOV

Заблокирован
Скажите пожалуйста.e-Droba-ZigZag_V2.01 ордера не теряет после перезагрузки терминала???
 

Fractlr

Новичок форума
No se si como asesor, o como usted lo quiera llamar, la cuestion es que no hago nada ni en demo ni en real sin antes optimizar; asi que probaré de optimizar en los dos pares y luego decidiré si lo pongo en demo o no. Simplemente se trata de que cuando tenga los resultados compartirlos.
De acuerdo?
 

ILL1

Интересующийся
Переписывал е-дробу очень много раз
Вот нате один из вариантов этого эксперта:

E-Drobus_v3.02.mq4 - сам советник,
AlexSTAL_ZigZagProf.mq4 - индикатор,
AlexSTAL_OutsideBar.mqh - инклюд-файл
Здравствуйте, а можно еще раз выложить эти файлы?
 
Верх