Ваши вопросы по языку MQL4

vladradon

Программист
Ну допустим индикатор рисует стрелку. На текущем баре она может исчезать и появляться. Допустим при первом появлении стрелки на баре отправили письмо. А потом индюк убрал стрелку. А может автору надо было строгое соответствие стрелок и писем. Что бы по пропавшим стрелкам не отправлялись письма. Тогда письмо надо отправлять когда стрелка точно не пропадёт.
Я согласен, что без открытого кода сложновато, но можно из другого индюка (своего) считывать данные из закрытого и уже дальше в своем индюке их (данные) обрабатывать - или всю обработку прописать в сове - снова куча вариантов!)))
 

dimzaj

Новичок форума
Сигнал не перерисовывается на текущем баре! Появился, и не исчезает и не моргает! Вообще индикатор для бинарок.
 

Ugar

Гуру форума
Я согласен, что без открытого кода сложновато, но можно из другого индюка (своего) считывать данные из закрытого и уже дальше в своем индюке их (данные) обрабатывать - или всю обработку прописать в сове - снова куча вариантов!)))
Я не об открытом коде. Индикатор пока не выложен ни в каком виде. Я имел ввиду что обсуждать индикатор вообще, без конкретного индикатора, бессмысленно. Эта ветка, вроде, не для философских диспутов.
 
Последнее редактирование:

vladradon

Программист
Сигнал не перерисовывается на текущем баре! Появился, и не исчезает и не моргает! Вообще индикатор для бинарок.
То, что появилась стрелка на графике не означает, что индикатор перестал выдавать сигналы - это прогеры поймут.
 

krolix

Интересующийся
С наступившем новым годом, товарищи! Помогите разобраться с такой идеей.
Как реализовать код так чтобы в советнике тейкпрофит зависел от скользящей средней?
 

vladradon

Программист
С наступившем новым годом, товарищи! Помогите разобраться с такой идеей.
Как реализовать код так чтобы в советнике тейкпрофит зависел от скользящей средней?
Привет! С новым!
А как ты это себе представляешь? Она на то и скользящая, что меняется с каждым тиком. Стандартный ТП если с каждым тиком модифицировать, брокер зарубит твою торговлю скорее всего. Если использовать виртуальный - скользящая средняя может уйти в глубокий минус и оттуда не вернуться. Тут нужно еще кучу моментов учитывать - расчет уровня безубытка к примеру...
 

Ugar

Гуру форума
С наступившем новым годом, товарищи! Помогите разобраться с такой идеей.
Как реализовать код так чтобы в советнике тейкпрофит зависел от скользящей средней?
С наступающим? Это по старому стилю или китайским?
Всех с новым годом!
В смысле тейк профит ставить на МА? Тогда что бы не переставлять тейк профит на каждом тике, МА должна быть по ценам открытия и переставлять надо раз в бар. Но перед тем как переставлять, надо проверить что бы тейк бал корректным. В смысле что бы не оказался слишком близко к цене или вообще с другой стороны.
 

vladradon

Программист
С наступающим? Это по старому стилю или китайским?
Всех с новым годом!
В смысле тейк профит ставить на МА? Тогда что бы не переставлять тейк профит на каждом тике, МА должна быть по ценам открытия и переставлять надо раз в бар. Но перед тем как переставлять, надо проверить что бы тейк бал корректным. В смысле что бы не оказался слишком близко к цене или вообще с другой стороны.
И тебя с Новым и я рад, что ты отметил по полной!:D
 

krolix

Интересующийся
Ну сразу бы сказали что мне в платный раздел)
 

Ugar

Гуру форума
Ну сразу бы сказали что мне в платный раздел)
Здесь подскажут как самому сделать, абсолютно бесплатно. Для этого надо хоть чуток быть знакомым с программированием.
Если же с программированием совсем никак, то есть и в этом разделе ветки где делают бесплатно. Например здесь или здесь. В этом разделе форума все ветки только бесплатно. Естественно, индикатор надо выложить в соответствующей ветке.
Если же не хочется выкладывать индикатор в открытый доступ, тогда да, не в этот раздел. Надо в раздел реклама или обратиться к какому то программисту лично.
 

dimzaj

Новичок форума
То, что появилась стрелка на графике не означает, что индикатор перестал выдавать сигналы - это прогеры поймут.
А теоретически, а затем практически можно реализовать оповещение на текущем баре, если, как вы предполагаете, индик будет сигналить?
 

оn220

Интересующийся
PHP:
 double OpenPriceBayClose()
  {
   double price=2;
   datetime time=0;
       
   if(OrdersHistoryTotal()>0)
     if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
       if(OrderSymbol()==_Symbol && OrderMagicNumber()==222)
         if(OrderType() ==OP_SELL)            
           return(price);        

   for(int a=OrdersHistoryTotal()-1; a>=0; a--)
      if(OrderSelect(a,SELECT_BY_POS,MODE_HISTORY))
        if(OrderSymbol()==_Symbol && OrderMagicNumber()==111 && time<OrderOpenTime())  
          if(OrderType() ==OP_BUY)
            {
            time =OrderOpenTime();
            price=OrderOpenPrice();       
            }  
   return(price);
   }
почему условие не работает когда так, if (GG10<GG20 && Ask>OpenPriceBayClose() && TT10<TT11 && TT20>TT21),а так работает if (GG10<GG20 && Ask<OpenPriceBayClose() && TT10<TT11 && TT20>TT21)
 

MrGreen86

Гуру форума
PHP:
 double OpenPriceBayClose()
  {
   double price=2;
   datetime time=0;
       
   if(OrdersHistoryTotal()>0)
     if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
       if(OrderSymbol()==_Symbol && OrderMagicNumber()==222)
         if(OrderType() ==OP_SELL)            
           return(price);        

   for(int a=OrdersHistoryTotal()-1; a>=0; a--)
      if(OrderSelect(a,SELECT_BY_POS,MODE_HISTORY))
        if(OrderSymbol()==_Symbol && OrderMagicNumber()==111 && time<OrderOpenTime())  
          if(OrderType() ==OP_BUY)
            {
            time =OrderOpenTime();
            price=OrderOpenPrice();       
            }  
   return(price);
   }
почему условие не работает когда так, if (GG10<GG20 && Ask>OpenPriceBayClose() && TT10<TT11 && TT20>TT21),а так работает if (GG10<GG20 && Ask<OpenPriceBayClose() && TT10<TT11 && TT20>TT21)
потому что цена Ask меньше OpenPriceBayClose().
кстати функция OpenPriceBayClose() у вас с ошибками.
 

alex7474

Новичок форума
Здравствуйте, скажите пожалуйста, а может параметр shift(это тот,который " Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад) иметь значение больше 10.
 

MrGreen86

Гуру форума
Здравствуйте, скажите пожалуйста, а может параметр shift(это тот,который " Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад) иметь значение больше 10.

да, если количество свечей на графике больше 10.
 

nurfirdaus

Новичок форума
Кто-то пожалуйста, этот код не работает для дневных фильтров.

PHP:
extern string StartDay     = "03"; // Start Day
extern string EndDay       = "27"; // End Day

bool DayFilter(){
	bool _res = false;
	datetime _time_curent = TimeCurrent();
	datetime _time_start = StrToTime(DoubleToStr(Year(), 0) + "." + DoubleToStr(Month(), 0) + "." + StartDay + " " + DoubleToStr(Hour(), 0));
	datetime _time_stop  = StrToTime(DoubleToStr(Year(), 0) + "." + DoubleToStr(Month(), 0) + "." + EndDay + " " + DoubleToStr(Hour(), 0));

	if (_time_start > _time_stop) {
		if (_time_curent >= _time_start || _time_curent <= _time_stop) _res = true;
	} else if (_time_curent >= _time_start && _time_curent <= _time_stop) _res = true; 
	
	return (_res);
}
 

vladradon

Программист
Кто-то пожалуйста, этот код не работает для дневных фильтров.
Попробуйте такой вариант:
PHP:
extern int StartDay     = 3; // Start Day 
extern int EndDay       = 27; // End Day 

bool DayFilter(){ 
    bool _res = false; 

    if (StartDay > EndDay) { 
        if (Day() >= StartDay || Day() <= EndDay) _res = true; 
    } else if (Day() >= StartDay && Day() <= EndDay) _res = true;  
     
    return (_res); 
}
 

nurfirdaus

Новичок форума
Попробуйте такой вариант:
PHP:
extern int StartDay     = 3; // Start Day 
extern int EndDay       = 27; // End Day 

bool DayFilter(){ 
    bool _res = false; 

    if (StartDay > EndDay) { 
        if (Day() >= StartDay || Day() <= EndDay) _res = true; 
    } else if (Day() >= StartDay && Day() <= EndDay) _res = true;  
     
    return (_res); 
}

спасибо, работает как чемпион.
 

star603

Новичок форума
Помогите исправить ошибку.

PHP:
void TrallStop()
{
for ( int i = OrdersTotal()-1; i>0, i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true && OrderMagicNumber()== Magic)
{
if(OrderType()== OP_BUY)
{
double OP = OrderOpenPrice();//цена открытия
double YT = OrderStopLoss();//стоплос
double SE = OrderTakeProfit();//профит
double Rt = 56*Point;//цена выше на несколько пунктов от цена открытия
if(OP+Rt {
OrderModify(OrderTicket(),OP,OP+Rt,SE,0,clrNONE);
}
}
}
}
return;
}
подскажите пожалуйста что то не так?
 
Верх