Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1495

 
Если на некоторое время минимизировать тестер, работа ускоряется.
 
Ivan Ivanov #:
Если на некоторое время минимизировать тестер, работа ускоряется.

всегда так было..

 
Подскажите , в идикаторе если он запущен в тестере не срабатывает
void OnDeinit(const int Reason)

Можно каким то ещё способом узнать из индикатора что тестирование завершено ?

 
EgorKim #:
Подскажите , в идикаторе если он запущен в тестере не срабатывает

Можно каким то ещё способом узнать из индикатора что тестирование завершено ?

Штатно нет. Не штатно, легче визуально посмотреть. Файл логов тестера должен перестать увеличивается, ещё та задача отследить. Дату окончания теста выцепить тоже непросто. 
 
Valeriy Yastremskiy #:
Штатно нет. Не штатно, легче визуально посмотреть. Файл логов тестера должен перестать увеличивается, ещё та задача отследить. Дату окончания теста выцепить тоже непросто. 

Поступление тиков?

 
Artyom Trishkin #:

Поступление тиков?

время эмулируется))) и как контролить?, работа тестера заканчивается! тестер в 5ке для меня вещь как есть))) и конечно не вызов ондеинит в индикаторах просто грусть.

 

Meta Editor выдает ошибку 'ArrayMinimum' - constant cannot be modified и 'ArrayMaximum' - constant cannot be modified, а также '=' - illegal operation use по присвоению переменной PrevClose в следующем коде:

ulong copied = CopyTicksRange(Symbol(), ticks, COPY_TICKS_INFO, t0, t1); 
ArrayResize(ticks, copied, 100000);
double PrevClose = ticks[copied-1]; // Получаем последний элемент массива как значение PrevClose
double highestHigh = ArrayMaximum(ticks, 0, copied - 1); // Находим максимальное значение в массиве ticks
double lowestLow = ArrayMinimum(ticks, 0, copied - 1); // Находим минимальное значение в массиве ticks
 
maxvoronin74 #:

Meta Editor выдает ошибку 'ArrayMinimum' - constant cannot be modified и 'ArrayMaximum' - constant cannot be modified, а также '=' - illegal operation use по присвоению переменной PrevClose в следующем коде:

"Находим максимальное значение в массиве ticks"- максимальное значение чего мы находим?

ticks[copied-1].bid или ticks[copied-1].flags   

Шутка)))


Скорее всего вы перепутали CopyTicks  с CopyRates, хотя там тоже массив структур и указывать, какой элемент структуры вам нужен.

double PrevClose = rates[copied-1].close;

У вас в коде лишняя строка.

ArrayResize(ticks, copied, 100000);
 Не нужна она так как  CopyTicks и CopyRates , сама при копировании, распределяет размер массива.
 
Aleksandr Slavskii #:

"Находим максимальное значение в массиве ticks"- максимальное значение чего мы находим?

ticks[copied-1].bid или ticks[copied-1].flags   

Шутка)))


Скорее всего вы перепутали CopyTicks  с CopyRates, хотя там тоже массив структур и указывать, какой элемент структуры вам нужен.

double PrevClose = rates[copied-1].close;

У вас в коде лишняя строка.

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

Благодарю за подсказку. Я не знал. На всякий случай вставляю эту строку.

Верно ли я понимаю вашу шутку, что в rates все цены усредненные и учитывают бар, а в ticks - нет? Я потому и взял tick, чтобы использовать произвольный интервал времени, а не цены баров. CopyRates у меня в аналогичной формуле заполнял за отрезок час переменную copied на максимальное значение типа ulong. Эту проблему я тоже не мог решить.

 
maxvoronin74 #:

Благодарю за подсказку. Я не знал. На всякий случай вставляю эту строку.

Верно ли я понимаю вашу шутку, что в rates все цены усредненные и учитывают бар, а в ticks - нет? Я потому и взял tick, чтобы использовать произвольный интервал времени, а не цены баров. CopyRates у меня в аналогичной формуле заполнял за отрезок час переменную copied на максимальное значение типа ulong. Эту проблему я тоже не мог решить.

Всё не верно. 

MqlRates-это структура, а вы обращаетесь с ней как с переменной. 

MqlTick- тоже структура.

Вы пытаетесь соединить тёплое с мягким, поэтому компилятор вас не понимает.

Так же как и я)))

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

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