Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 214

 
Vladimir Tkach:

Два дня мутил красивую панельку. Но оказалось, что через нее я не могу менять параметры эксперта, заданные как inputs.

И что теперь делать? 

фантазии нет совсем ?

input double _PARAM=1.0; // да, input менять в коде нельзя, они типа const

double PARAM=0;         // но никто не заставляет использовать только и исключительно их

int OnInit()

{

   if (MoonPhaze()==0 && _PARAM>0.1) {

       PARAM=_PARAM;       // всё что задаёт пользователь через input должно проверяться и использоваться только внутри OnInit - это просто хороший тон

   }

}
 

Кажись меня не поняли.

Меняю параметры на панели (что на графике), а в inputs эксперта они не меняются. Грусть-печаль.


 
Хотя по ходу выполнения программы их значения меняются. Ладно, и так сойдет.
 
missha32:

помогите пожалуйста совсем запутался в написании функции

нужно чтоб функция возвращала количество ордеров закрытых в один день


Я бы написал так:

int CountInHistoryCloseOrder() 
{
int kp=0;
for(int i=OrdersHistoryTotal(); i>=0; i--) 
 {
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) 
   {
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn) 
     {//mn - должна быть глобальной
      if(TimeToString(OrderCloseTime(),TIME_DATE)==TimeToString(TimeCurrent(),TIME_DATE))
       {
        kp++;
       }
     }
   }
 }
return(kp);
 
missha32:

помогите пожалуйста совсем запутался в написании функции

нужно чтоб функция возвращала количество ордеров закрытых в один день

int OrdersClosedInDay(datetime time) {

datetime from=time-TimeHour(time)*60*60-TimeMinutes(time)*60-TimeSeconds(time);

datetime to=from+24*60*60;

int count=0;

for(int pos=OrdersHistoryTotal()-1;pos>=0;pos--) {

   if (!OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)) continue;

   if (OrderCloseTime()>=from && OrderCloseTime()<to)   count++;

}

return count;

}

 
Valerius:


Я бы написал так:

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

Разобрался дописал еще через одну функцию

 
Artyom Trishkin:
Объектам - нельзя. Но можно рисовать с использованием класса CCanvas - там можно
Спасибо!
 
Vladimir Tkach:

Кажись меня не поняли.

Меняю параметры на панели (что на графике), а в inputs эксперта они не меняются. Грусть-печаль.


Если лень заводить дубли инпутов и дальше использовать их в программе, всегда можно задать пользовательские параметры как "extern" - их значения можно по ходу работы изменить программно.
 
Подскажите пожалуйста. Как указать в советнике закрытие на следующей свечке? 
 
AlGuru:
Подскажите пожалуйста. Как указать в советнике закрытие на следующей свечке? 
Если бар, на котором была открыта позиция, равен 1, то закрыть эту позицию.
Причина обращения: