Пожелания к MQL5 - страница 51

 
Планируются ли в Метатрейдере графики в виде "кркстики-нолики" ? Сйчас приходится юзать Омегу с со всеми вытекающими неудобствами. Было бы неплохо видеть этот вид графика в МТ.
 
kombat писал (а) >>

Решается довольно просто...

Переименованием StatementDetailed.htm в statement.htm

Спасибо! а то так бы и мучался..

 
Pharaon писал (а) >>
Планируются ли в Метатрейдере графики в виде "кркстики-нолики" ? Сйчас приходится юзать Омегу с со всеми вытекающими неудобствами. Было бы неплохо видеть этот вид графика в МТ.

Не могли бы Вы показать скриншот? В каком виде Вы хотели бы видеть крестики-нолики?

 

по крайней мере хотелось бы struct, enum, typedef

 

В МТ4 с некоторых пор цена для торговых приказов может мыть не нормализована - нормализация выполняется автоматически терминалом.

Само по себе это хорошо и правильно. Неприятности наступают если такую программу протестировать - в тестере автоматическая нормализация не выполняется. Появляются отказы виртуального сервера со всеми вытекающими.

Пожелание - единообразие. Хорошо бы в МТ5 использовать один общий блок для расчётов в тестере и в терминале.

 
Приветствую!
При написании советника столкнулся с одной проблемой: появляется ошибка
ERR_ZERO_DIVIDE 4013 Деление на 0
код следующий:
//30мин------------------Волчок ----------------------------------------------2
  if(High[1]-Open[1]!=0 && Open[1]-Close[1]!=0 && Close[1]-Low[1]!=0 && 
  Open[1]>Close[1] && (High[1]-Open[1])/(Close[1]-Low[1])>=0.85 && (Open[1]-Close[1])/(High[1]-Open[1])>=0.85 
   && (Open[1]-Close[1])/(Close[1]-Low[1])>=0.85 )
  {
  persent_sell=persent_sell+2;
  Print("Волчок 30мин sell+2");
  }
Т.е. проверка на отсутствие деления на нуль в условии есть но увы ошибка появляется, хотя как я понимаю это всего лищь условие т.е. ни каких действий непредпринимается, везде стоит && и следовательно при несоблюдении хотя бы первого условия дальнейшая работа данного участка кода уже непроизводиться.
Приходиться поступать так:
//30мин------------------Волчок ----------------------------------------------2
  if(High[1]-Open[1]!=0 && Open[1]-Close[1]!=0 && Close[1]-Low[1]!=0)
  if(Open[1]>Close[1] && (High[1]-Open[1])/(Close[1]-Low[1])>=0.85 
   && (Open[1]-Close[1])/(High[1]-Open[1])>=0.85 
   && (Open[1]-Close[1])/(Close[1]-Low[1])>=0.85)
  {
  persent_sell=persent_sell+2;
  Print("Волчок 30мин sell+2");
  }
С таким дополнительным условием данная ошибка уже отсутствует. А например вот в таком виде с одним условием (отсутствия деления на нуль)
//30мин------------------Проникающие линии -----------------------------------3
  if(High[2]-Low[2]!=0 && Open[1]>Close[1] && Open[2]<Close[2] && Close[1]<Open[2]
   && Open[1]>=(Low[2]+(High[2]-Low[2])/3) && High[1]<=(High[2]-(High[2]-Low[2])/3))
  {
  persent_sell=persent_sell+3;
  Print("Проникающие линии 30мин sell+3");
  }
ошибка непоявляется - т.е. проверка проходит нормально.
В чём проблема я что-то непонял т.к. как я понимаю первый вариант кода является правильным и несодержит ошибок.
 
ОЧЕНЬ НЕ ХВАТАЕТ ВОЗМОЖНОСТИ ЗАПИСИ И ИСПРАВЛЕНИЯ КОММЕНТАРИЕВ ПРИ И ПОСЛЕ ОТКРЫТИЯ ОРДЕРА!!!
 
z_e_e_d писал (а) >>
Приветствую!
При написании советника столкнулся с одной проблемой: появляется ошибка
ERR_ZERO_DIVIDE 4013 Деление на 0
...

Жесть, даже неохота разбираться с приоритетами операций в такой записи...

Для начала советую вынести общие подвыражения перед if...

 
z_e_e_d писал (а) >>
Приветствую!
При написании советника столкнулся с одной проблемой: появляется ошибка
ERR_ZERO_DIVIDE 4013 Деление на 0

У вас есть 3 деления в if-e. Если (Close[1]-Low[1])==0 ИЛИ (High[1]-Open[1])==0 ИЛИ (Close[1]-Low[1])==0 - согласитесь - такое вполне возможно, то и будет деление на 0.

 
SK. писал (а) >>

Не могли бы Вы показать скриншот? В каком виде Вы хотели бы видеть крестики-нолики?

Скрин графика "крестики-нолики" из Омеги