Аналог iBarShift - страница 8

 
Vitaly Muzichenko:

Я проверил быстро: есть функция которая работает не первый день, вместо неё подставил iBarShift3 и получил неправильную работу советника. С этого и сделал вывод.

Вот та, которую использую

попробуйте с вашей функцией сделайте это:

Print("iBarShift1 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:01')));
Print("iBarShift0 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:00')));

Ваша функция выдаст разные значения, но час то один. Значит она не рабочая.

В MQL4 родная функция выдает одинаковые значения.

iBarShift3 выдает тоже одинаковые значения, но при периодах D1, W1 и MN1 тоже аналогично ошибается. Нужно код чуть подкрутить. Знаю как, сделаю чуть позже, когда время будет.

В остальном эти функции ведут себя одинаково, только iBarShift3  гораздо быстрее.


ЗЫ: Извиняюсь. Ваша функция работает правильно. Не тот код вставил. Это моя ведет себя неправильно на периодах D1,W1 и MN1. Сегодня подправлю.

 
Запутали уже меня столпы программирования - так какая функция нынче точно всё считает на всех TF?
 
Aleksey Vyazmikin:
Запутали уже меня столпы программирования - так какая функция нынче точно всё считает на всех TF?
Ну по логике самая медленная вроде считает всё правильно :-)
 
Aleksey Vyazmikin:
Запутали уже меня столпы программирования - так какая функция нынче точно всё считает на всех TF?
https://www.mql5.com/ru/forum/743/page7#comment_6995147
 
Aleksey Vyazmikin:
Запутали уже меня столпы программирования - так какая функция нынче точно всё считает на всех TF?
И все ли корректно работают при наличии пропусков баров!
 
Yury Kirillov:
Ну по логике самая медленная вроде считает всё правильно :-)

Нет, самая медленная считает не верно, судя по индикатору выложенному ранее.

Yury Kirillov:
И все ли корректно работают при наличии пропусков баров!

Это как раз очень важно, ибо бывает, что время идет, а бара нет, особенно на мелких TF, тогда в разных днях может быть разное число баров с минутами...

 
Vitaly Muzichenko :

Я проверил быстро: есть функция которая работает не первый день, вместо неё подставил  iBarShift3  и получил неправильную работу советника. С этого и сделал вывод.

Вот та, которую использую

Это мой код. Есть какие-либо проблемы ?

 
Nikolai Semko :
...

Нештатные ситуации есть во всех алгоритмах, которые были до этого, в том числе и у @Alain Verleyen

Можно создать полный аналог iBarShift MQL4, но код будет весьма объёмный и смысла в этом я никакого не вижу. 

Какую проблему вы обнаружили?

 
Alain Verleyen:

Какую проблему вы обнаружили?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Аналог iBarShift

Nikolai Semko, 2018.04.04 17:47

попробуйте с вашей функцией сделайте это:

Print("iBarShift1 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:01')));
Print("iBarShift0 = "+IntegerToString(iBarShift (_Symbol,PERIOD_H1,D'04.04.2018 08:00:00')));

Ваша функция выдаст разные значения, но час то один. Значит она не рабочая.

В MQL4 родная функция выдает одинаковые значения.

iBarShift3 выдает тоже одинаковые значения, но при периодах D1, W1 и MN1 тоже аналогично ошибается. Нужно код чуть подкрутить. Знаю как, сделаю чуть позже, когда время будет.

В остальном эти функции ведут себя одинаково, только iBarShift3  гораздо быстрее.


ЗЫ: Извиняюсь. Ваша функция работает правильно. Не тот код вставил. Это моя ведет себя неправильно на периодах D1,W1 и MN1. Сегодня подправлю.


 
Vitaly Muzichenko :

Спасибо.