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

 
Valeriy Yastremskiy #:
NUM_TIMEFRAMES то выдает ошибку при компиляции, а с int периодом не хочет работат

10 лет назад делал выбор под оптимизацию через такой костыль под МТ 4 в виде ф-ии и все:

подход по-моему понятен.... тут два периода реализовывал - типа сигнальный и трендовый. Трендовый типа должен был быть больше сигнального....

extern string A3 = "Таймфрейм и параметры технических индикаторов";
extern int s_signal_period = 7;
...

int signal_period;
int trend_period;


int init()
....       
    signal_period=GetPeriod(s_signal_period); // расчет меньшего  периода для торгов
....


//---------------------расчет параметров индикатора ОСМА-----------------------------------------------   
double OsMA_1 = iCustom(Symbol(), signal_period,...);


//для оптимизации по всем периодам по всем периодам
int GetPeriod(int period)
{int periodres;
 switch(period)
  {
   case 1: periodres=1;break;
   case 2: periodres=5;break;
   case 3: periodres=15;break;
   case 4: periodres=30;break;
   case 5: periodres=60;break;
   case 6: periodres=240;break;
   case 7: periodres=1440;break;
   case 8: periodres=10080;break;
   default: periodres=1;break;
  }
return(periodres);
} 
 
Vitaly Muzichenko #:

и прочие iХХХХ, работают без проблем

Если завтра не решу, придется переписать код)
 
Вообще не понимаю о чём сыр-бор... В МТ4 прекрасно работают функции iTime, iOpen, iТакДалее, где в качестве периода не int, а ENUM_TIMEFRAMES. Зачем костыли с дефайнами и прочими макросами городить, если код переносится один-в-один на пятёрку? Без изменений.
 

ЛЮДИ!!! Очнитесь уже. Прекратите подгонять коды на mql5 под коды mql4. Сделайте наоборот, всё что можно перевести в кодах mql4 под стандарты mql5 — переведите.

В частности в mql4 без проблем работает перечисление ENUM_TIMEFRAMES и нет никакой необходимости переводить перечисление в тип int.

 
Artyom Trishkin #:
Вообще не понимаю о чём сыр-бор... В МТ4 прекрасно работают функции iTime, iOpen, iТакДалее, где в качестве периода не int, а ENUM_TIMEFRAMES. Зачем костыли с дефайнами и прочими макросами городить, если код переносится один-в-один на пятёрку? Без изменений.
Тоже вариант. Спасибо, попробую.
Сыр бор что не работает как планировалось. Open Close Time массивы вроде как дешевле чем iXXXX серии. Если одинаково, то логичней переписать код.
 
Valeriy Yastremskiy #:
Тоже вариант. Спасибо, попробую.
Сыр бор что не работает как планировалось. Open Close Time массивы вроде как дешевле чем iXXXX серии. Если одинаково, то логичней переписать код.

Open[], Close[], Time[] etc в МТ4 работают только с текущим таймфреймом же. Опять ничего не понял в этом случае

 
Artyom Trishkin #:

Open[], Close[], Time[] etc в МТ4 работают только с текущим таймфреймом же. Опять ничего не понял в этом случае

В плане скорости возврата значения Open и iOpen на текущем тф одинаково или Open быстрее?
 
Valeriy Yastremskiy #:
В плане скорости возврата значения Open и iOpen на текущем тф одинаково или Open быстрее?

не проверял, но логично, что  Open (мт4) - заранее подготовленный массив и работает быстрее, а вот iOpen нужно запросить

Зависит от задачи, сколько нужно получить элементов (мт5), если более одного, то использовать CopyOpen вместо iOpen с запросом нужного количества

P.S. Если нужны не только цены открытия, то использовать CopyRates - можно одним вызовом получить необходимое количество всех цен
 
Купил советника..Невозможно сделать комментарии про советника или отзыв.Нет опции -"новый комментарии" Продавец советника глазу не кажет-пропал
 
Arkin Nabirov #:
нтарии про советника или отзыв.Нет опции -"новый комментарии"

А что  он Вам дался этот комментарий?

Вы перед покупкой тестили? В аренду брали?

Наслаждайтесь. Если не тестили - тоже оптите сейчас и  наслаждайтесь успешной покупкой!!!

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