[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 92

 
Mathemat:

Я просто сказал о правиле парсинга, принятом в современных языках, если фигурных скобок нет.

кстати, а ты проверял какой else к какому if отнесется в MT4 и MT5 ?

я как то попался на таком без скобок, но разбираться подробно не стал.
 

Да проверить несложно. Итак, имеем конструкцию (это только МТ4):

if (cond1)
  if (cond2) operator1;
  else operator2;

Код для проверки:

int start( )
{
   int x = 3;
   int y = 4;
  
   bool cond1 = x == 2;
   bool cond2 = y == 4;
  
   if ( cond1 )
      if ( cond2 )   Print( "1. cond1 && cond2");
      else           Print( "2. cond1 && !cond2");

   if ( cond1 )
      { if ( cond2 ) Print( "3. cond1 && cond2"); }
   else              Print( "4. cond1 && !cond2");


   return( 0 );
}//+------------------------------------------------------------------+

Результат:

2012.04.24 18:17:12 test_if EURUSD,H4: 4. cond1 && !cond2


Анализируем. Если бы else в первой конструкции без скобок относился к if ( cond1 ), то было бы распечатано

2. cond1 && !cond2

(cond1 не выполняется - переходим сразу к else).

Но оно не распечатано. Это объяснимо только одной гипотезой: else относится к if ( cond2 ).

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

P.S. Вообще говоря, это известное правило парсинга. Просто опытным кодерам оно не особо интересно, т.к. они все равно предпринимают параноидальные меры предосторожности :) Поэтому они часто его не знают.

Не думаю, что в МТ5 оно будет другим, - несмотря на изменившиеся правила оценки булевых выражений.

 
Помогите пожалуйста усовершенствовать два индикатора: ЕМА (экспоненциальное скользящее среднее с ценами закрытия) и Envelopes (конверт с ценами закрытия) для МТ4. Нужно, чтобы на ценовой шкале высвечивалась цена закрытия на моментвремени и всё. Подскажите как это сделать или где взять... Заранее спасибо за помощь.
 
 

Помогите разобраться чтото торможу.

Имеется двумерная таблица

1 2 1
0 1 2

0 1 1

И каждому состоянию этой таблцы может соотвествовать несколько значений. Я правильно понимаю что надо организовывать 3х мерный масиив для того чтобы это реализовать?

И как (можно ли) назначить 3 ему измерению размер отличный от размера при объявлении массива (в процессе расчетов)?

 
Skydiver:

1 2 1
0 1 2

0 1 1

1. И каждому состоянию этой таблцы может соотвествовать несколько значений. Я правильно понимаю что надо организовывать 3х мерный масиив для того чтобы это реализовать?

2. И как (можно ли) назначить 3 ему измерению размер отличный от размера при объявлении массива (в процессе расчетов)?

1. Ну да. arr[ номер_строки_таблицы ][ номер_столбца_таблицы ][ номер_значения для (строка, столбец) ]

2. Нет, нельзя. Объявляйте 3-е измерение сразу побольше.

P.S. Это еще что. У меня даже 4-мерные массивы используются в расчетах.

 

подскажите как адекватно реализовать такую задачу...

необходимо проверять по истечении суток (после фиксации) - была ли получена прибыль после последней зафиксированной прибыли, проверять пока не вернется true.

это или через файлы запись/чтение или через историю делать нужно.. но в функциях работы с историей ничего не нашел.. ((

 
w_ersoc:

подскажите как адекватно реализовать такую задачу...

необходимо проверять по истечении суток (после фиксации) - была ли получена прибыль после последней зафиксированной прибыли, проверять пока не вернется true.

это или через файлы запись/чтение или через историю делать нужно.. но в функциях работы с историей ничего не нашел.. ((

Смотреть и долго думать https://www.mql5.com/ru/forum/131859 к примеру https://www.mql5.com/ru/forum/131859/page4#434231

А заодно пояснить что значит "была прибыль после прибыли". Получена это зафиксирована?

 
Помогите пожалуйста с таким вопросом-известен индекс бара на таймфрейме D1. По нему можем узнать максимальную цену в этот день. Как узнать индекс бара на таймфрейме M15, который соответствует максимальной цене за этот день. Пробовал через iHighest(), но там нужно задавать количество элементов для поиска, а оно будет разным в обычный день или выходной или предпраздничный день. Может быть не нужно изобретать велосипед и для этого есть готовая функция?
 
AndEv:
Помогите пожалуйста с таким вопросом-известен индекс бара на таймфрейме D1. По нему можем узнать максимальную цену в этот день. Как узнать индекс бара на таймфрейме M15, который соответствует максимальной цене за этот день. Пробовал через iHighest(), но там нужно задавать количество элементов для поиска, а оно будет разным в обычный день или выходной или предпраздничный день. Может быть не нужно изобретать велосипед и для этого есть готовая функция?

готовой нет.

чтоб узнать число ордеров нужно найти разность двух функций iBarShift, подставив время начала дня и время его окончания(то есть +23:59)

Это и будет числом баров для требуемого промежутка.

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