Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 562

 
Vladon:


функция должна задаваться переменное

например bool closee=OrderClose...........

  • return value of 'OrderSelect' should be checked
  • return value of 'OrderDelete' should be checked
  • return value of 'OrderSend' should be checked
  • return value of 'OrderClose' should be checked
  • return value of 'OrderModify' should be checked


для того, чтобы не было таких предупреждений нужно явно указать возврат в переменную
например так:
  • bool select1=OrderSelect..........
  • bool delete1=OrderDelete..........
  • bool close1=OrderClose..........
  • bool modify1=OrderModify..........
  • int send1=OrderSend..........


по пути решение ещё одной проблемы ещё раз спасибо!!!
 
Forexman77:
А как правильно? Для этого спрашиваю. Не совсем хорошо знаю как считать индикаторы.

Предположу:

должно быть так?

А вот здесь вообще не знаю

Если в целом, мне достаточно, чтобы индикатор расчитывался по последним 100 барам.

Тогда сделай так

 int i, limit;
  limit = (prev_calculated > 0)?rates_total-prev_calculated:100;
   for(i = limit; i >= 0; i--)
    {
 
AlexeyVik:

Тогда сделай так


Переменные как получаем?
prev_calculated 
rates_total
 
Forexman77:
Переменные как получаем?

Ааа... Я не обратил внимание на то, что ты используешь старый формат...

rates_total - это Bars

prev_calculated - это IndicatorCounted()

 
AlexeyVik:

Текст наверное нет, а вот лейбл пожалуйста

docs.mql4.com/ru/constants/objectconstants/enum_object_property

Свойстве OBJPROP_XSIZE и OBJPROP_YSIZE



Лейбл не следует за графиком...
 
AlexeyVik:

Ааа... Я не обратил внимание на то, что ты используешь старый формат...

rates_total - это Bars

prev_calculated - это IndicatorCounted()


Мне б со старым разобраться) Хотя на пятерке несколько советников делал.
 
Forexman77:
Мне б со старым разобраться) Хотя на пятерке несколько советников делал.

Но если ты пишешь в старом то эта конструкция не подойдёт. В старом нет условного оператора выражение1 ? выражение2 : выражение3

Но если ты пишешь в новом едиторе, только используешь старый int start() а не новый int OnCalculate(... то всё будет нормально.

 
alxm:

Лейбл не следует за графиком...
Ну тогда тебе Влад правильно посоветовал отталкиваться от размера шрифта.
 
AlexeyVik:

Но если ты пишешь в старом то эта конструкция не подойдёт. В старом нет условного оператора выражение1 ? выражение2 : выражение3

Но если ты пишешь в новом едиторе, только используешь старый int start() а не новый int OnCalculate(... то всё будет нормально.


Делаю в 610 билде, но по старому. Потом научусь с int OnCalculate, в нем слишком много кода путаться начинаю.

Сделал код следующим:

int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4;
      limit1 = (counted_bars > 0)?Bars-counted_bars:100;
      limit1=limit1-Period_MA_1;
      limit2=limit1-p2;
      limit3=limit2-p3;
      limit4=limit3-p4;
 
   for(i=limit1;i>=0;i--) ExtMapBuffer1[i]=Close[i]-Close[i+Period_MA_1];
   for(i=limit2;i>=0;i--) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer1, 0, p2, 0, MODE_EMA,i);
   for(i=limit3;i>=0;i--) ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer2, 0, p3, 0, MODE_EMA,i);
   for(i=limit4;i>=0;i--) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer3, 0, p4, 0, MODE_EMA,i);
в советнике нет сделок, где-то на 1500 появляется одна и все. При 200 индикатор считает правильно. Как-то с малым количеством баров можно заставить советника открывать сделки.



 
Forexman77:

Делаю в 610 билде, но по старому. Потом научусь с int OnCalculate, в нем слишком много кода путаться начинаю.

Сделал код следующим:

в советнике нет сделок, где-то на 1500 появляется одна и все. При 200 индикатор считает правильно. Как-то с малым количеством баров можно заставить советника открывать сделки.

Ну тогда надо сначала разобраться что ты хочешь написать советник или индикатор...

Может я что-то пропустил, но я понял так что это будет индикатор...

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