Советник для бинарных опционов на основе Zigzag - страница 2

 

Окай, спасибо!

Да с таким встретился на просторах web кто не знает, так же вопрос задают. 

Берешь из индикатора условия и ставишь их в эксперт. Сам индикатор хранится ...\MQL4\Indicators 

Не удачная улыбка отображаться стала, а вот какие условия надо поставить пока не пойму. Примеры, да есть, но они немного другие. Если по некоторым примерам брать то у меня тоже не получается.(Довожу до компиляции без ошибок)

  double tr=iATR(NULL,0,5,i)*0.5;                                                                       // расчет значений индикатора
  hhb1 = iCustom(Symbol(),0,"super_signals-mod",dist2,dist1,Price,SignalGap,Slippage,MagicNumber,0,0);  // макси
  llb1 = iCustom(Symbol(),0,"super_signals-mod",dist2,dist1,Price,SignalGap,Slippage,MagicNumber,1,0);  // мини
  if( tr >= hhb1 && CountTrades() == 0)                                                                 // открытие ордера селл если ордеров нет 
{
 ticket = OrderSend(Symbol(),OP_SELL, Lots, Bid, Slippage, 0, 0, "Sell", MagicNumber, 0, Red);
 if (ticket>0)
  {
  OrderModify(ticket, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit()-hhb1*Point,0,Red);   // установка тейкпрофита  
  }
}  
 

Еще вот так у меня получается как вариант

extern double Lots          = 1.0;             
extern int  dist2           = 59;// was 21 250 
extern int  dist1           = 59;// was 14     

extern int SignalGap        = 3;               //переменная разрыв цены в потоке котировок
extern int  Slippage        = 6;
extern int  MagicNumber     = 321; 
extern int   Price          = PRICE_CLOSE;

double llb1,hhb1,limit;
int i,ticket;
//+------------------------------------------------------------------+
int init()
{
   if (Digits == 2 || Digits == 4)
return(0);                                 
}
void OnTick()
  {  
    hhb1 = iCustom(Symbol(),0,"super_signals-mod",dist2,dist1,0,0);
    llb1 = iCustom(Symbol(),0,"super_signals-mod",dist2,dist1,1,0);
    
    if( Bid >= hhb1 && CountTrades() == 0 && hhb1 == Price)                // открытие ордеров селл если ордеров нет 
    {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    }......

  С таким результатом ответов и сам научишься языку MQL4. Для меня конечно это сложно, для ка во то 5 минут.

 

Странно как-то. Смешиваете старый и новый язык (хотя и сам иногда грешу этим). Не совсем понятна работа функции

int init()
{
   if (Digits == 2 || Digits == 4)
return(0); 
}

 Если количество знаков после запятой равно 2 или 4 возвращаем 0, иначе ничего не возвращаем.

Может что-то другое хотели ?

И условие вот это странное

 if( Bid >= hhb1 && CountTrades() == 0 && hhb1 == Price)                // открытие ордеров селл если ордеров нет 

 Bid должен быть больше расчетного значения hhb1 и в то же время расчетное значение hhb1 должно быть равно константе PRICE_CLOSE (которое равно 0, но могут и поменять)

 

Заметил что не указал цену Лота, при открытии ордера

 if (Digits == 2 || Digits == 4)

 Да с этим я еще разбираюсь, хотел другое, доработаю) Пока это не основное затруднение и исправлю если, разберусь с покупкой.

Это как строить дом, не удобно строить с крыши. А фундамент пока это, выставить, сформулировать правильно торговую операцию c этого индикатора. С начало расшифровывал каждое действие индикатора  понимал, потом пытался перенести в советник и просить помощи у знающих.

 if( Bid < hhb1 && CountTrades() == 0 && hhb1 == Price)                // открытие ордеров селл если ордеров нет 

 Ок, CountTrades если количество открытых ордеров = 0 hhb1 сигнальный бар = когда цена закрывается на свече, например на периоде 5М

 
xeon5923:

Заметил что не указал цену Лота, при открытии ордера

 Да с этим я еще разбираюсь, хотел другое, доработаю) Пока это не основное затруднение и исправлю если, разберусь с покупкой.

Это как строить дом, не удобно строить с крыши. А фундамент пока это, выставить, сформулировать правильно торговую операцию c этого индикатора. С начало расшифровывал каждое действие индикатора  понимал, потом пытался перенести в советник и просить помощи у знающих.

 Ок, CountTrades если количество открытых ордеров = 0 hhb1 сигнальный бар = когда цена закрывается на свече, например на периоде 5М

Чему равно переменная hhb1?

Почему считаешь что такое сравнение допустимо

 if( ..................... && hhb1 == Price)                // открытие ордеров селл если ордеров нет 
 

 Чему равно переменная hhb1?

 hhb1 = iCustom(Symbol(),0,"super_signals-mod",dist2,dist1,0,0);

равно пользовательскому индикатору и его условиям, 0 буфер максимальной цены, 0 текущий бар. Вроде так справочник подсказывает.

 Почему считаешь что такое сравнение допустимо

 Компилировалось без ошибок, пытался внести условие чтобы срабатывало по закрытию свечи даже если сигнал сработал раньше. А только тогда когда сигнальная-максимальная свеча закроется.

 
xeon5923:

 Чему равно переменная hhb1?

равно пользовательскому индикатору и его условиям, 0 буфер максимальной цены, 0 текущий бар. Вроде так справочник подсказывает.

 Почему считаешь что такое сравнение допустимо

 Компилировалось без ошибок, пытался внести условие чтобы срабатывало по закрытию свечи даже если сигнал сработал раньше. А только тогда когда сигнальная-максимальная свеча закроется.

 

 

Тогда что это? 
extern int   Price          = PRICE_CLOSE;
 

Присвоил целому значению Price значение цену закрытия (Значение 0)

Если  не правильно . То как то наверное по другому можно вставить это условие. Условие ордер срабатывает когда сигнальная-максимальная свеча закроется. 

Если сигнальная свеча появилась то ждем её закрытия как только она закроется то выставляется ордер по её закрытию

Заметил что нету улыбки в окне терминала 4.0 build 765 даже на простом советнике(или 0 без функций) и на простом действии выводить сообщение в журнал. Сообщение выводится на каждом тике.

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

Можно наверное поставить в условие чтобы закрывался в определенное время, но пока для меня это сложновато. 

Да же при таком простом индикаторе если наложить его на GOLD_OP с мартином и посчитать за последний месяц 2 раза было когда цена доходила до 4 проигрышей подряд и на только на 5 отыгрывала. Конечно на такой случай можно мартин делать до 3-4 раз или как-то исключать такие возможности наложив дополнительные фильтры или поменять условия индикатора.

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

Редактировать и редактировать надо. 

Причина обращения: