Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 30

 
Alain Verleyen:

Тестер стратегий может работать только в соответствии с теоретическими правилами.

Если брокер не соблюдает правила, это ошибка Тестера стратегий?

тестер стратегий должен работать в соответствии с реалиями

 
Maxim Dmitrievsky :

тестер стратегий должен работать в соответствии с реалиями

Как ? Что вы предлагаете?

"между вашими теоретическими воззрениями и реальностью - пропасть" ;-)

 
Alain Verleyen:

Как ? Что вы предлагаете?

"между вашими теоретическими воззрениями и реальностью - пропасть" ;-)

выше написано что предлагается: убрать завышение оценок

что бы исключить тестерные граали

 
Maxim Dmitrievsky:

выше написано что предлагается: убрать завышение оценок

что бы исключить тестерные граали

Или добавить возможность более тонкой настройки исполнения ордеров в тестере - что наверняка не так уж и трудно!
 

Билд 1940.

В настройках терминала параметр "Макс баров в окне" установлено значение 5000.

Но с каждым новым баром количество баров в окне увеличивается (об этом свидетельствуют rates_total в индикаторе и функция Bars (Symbol (), Period ()) . Так и должно быть? До каких пор будет увеличиваться количество баров в окне с течением времени?


 
_o0O:

Билд 1940.

В настройках терминала параметр "Макс баров в окне" установлено значение 5000.

Но с каждым новым баром количество баров в окне увеличивается (об этом свидетельствуют rates_total в индикаторе и функция Bars (Symbol (), Period ()) . Так и должно быть? До каких пор будет увеличиваться количество баров в окне с течением времени?

Пока памяти хватит. 5000 - начальное количество, потом только увеличивается. Так было всегда.

 

В журнале: Tester genetic mode turned on, to use complete algorithm decrease amount of optimized parameters(Включен генетический режим тестера, чтобы использовать полный алгоритм уменьшения количества оптимизированных параметров).

Выбираю полный перебор параметров, что локально что в облаке запускает принудительно генетический алгоритм. Параметров 30 из 138, до какого количества работает "медленный"?(не нашел в справке), это навсегда?

 
1945

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

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5

fxsaber, 2018.11.10 11:00

Запуск этого скрипта на кастомном символе блокирует доступ к его баровой истории. Как следствие, чарты зависают, тестер пишет
FILTER_EURUSD.rann_RannForex: symbol to be synchronized
FILTER_EURUSD.rann_RannForex: symbol synchronized, 3464 bytes of symbol info received
no data synchronized, 1023 bytes read
symbol FILTER_EURUSD.rann_RannForex synchronization error
cannot get history FILTER_EURUSD.rann_RannForex,M1


Перезагрузка не помогает.

Генетика на том символе
FILTER_GBPSGD.rann_RannForex: history for 2017 year synchronized
genetic pass (0, 97) tested with error "cannot synchronize history (FILTER_GBPSGD.rann_RannForex)" in 0:00:00.016
genetic pass (0, 98) tested with error "task rejected by tester agent" in 0:00:00.000
genetic pass (0, 126) tested with error "task rejected by tester agent" in 0:00:00.000
FILTER_GBPSGD.rann_RannForex: history for 2017 year synchronized
genetic pass (0, 126) tested with error "cannot synchronize history (FILTER_GBPSGD.rann_RannForex)" in 0:00:00.015
genetic pass (0, 98) tested with error "task rejected by tester agent" in 0:00:00.000
FILTER_GBPSGD.rann_RannForex: history for 2017 year synchronized
genetic pass (0, 98) tested with error "cannot synchronize history (FILTER_GBPSGD.rann_RannForex)" in 0:00:00.000
Best result 0 produced at generation 0. Next generation 1
128 passes of 128 failed, genetic optimization stopped at generation 0
result cache used 0 times
genetic optimization finished on pass 128 (of 15840)
optimization done in 0 minutes 02 seconds
shortest pass 0:00:00.000, longest pass 0:00:00.000, average pass 0:00:00.000
local 1722 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


После чего ситуация похожа на ту, что после TesterStop

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

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5

fxsaber, 2018.11.12 12:33

Подтверждаю. Если  в ГА нарвался на TesterStop, то кнопка Старт вместе со всем остальным становится серой. Без перезагрузки не обойтись в такой ситуации.
 
Stanislav Korotky:

Пока памяти хватит. 5000 - начальное количество, потом только увеличивается. Так было всегда.

Для более экономичного расчета индикаторам может быть доступно больше баров, чем указано в параметре "Макс. баров в окне". 
С поступлением новых баров более старые бары не сразу удаляются из кэша данных. 
Это позволяет не пересчитывать индикатор полностью на каждом новом баре, а лишь досчитывать его значения для новых баров.
 

Ошибка в индикаторах связанная с _Digits и _Point при переключении между счетами. Имеются два счета. Один и тот же символ на первом счете  имеет, к примеру, 3 знака после запятой, а на втором счете 2 знака. Если переключаемся с одного счета на другой, то в _Digits и _Point остаются старые значения. Если после этого переключить ТФ, то значения обновляются т.к. происходит переинициализация индикатора. Получение данных через SymbolInfoInteger(_Symbol,SYMBOL_DIGITS) и SymbolInfoDouble(_Symbol,SYMBOL_POINT) всегда правильное.

На МТ4, кстати, такая же ошибка.

тестовый код:

#property indicator_chart_window
#property indicator_plots 0
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
 Comment("_Point="+DoubleToString(_Point)+"  SymbolInfo="+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_POINT))
         +"\n_Digts="+IntegerToString(_Digits)+"  SymbolInfo="+IntegerToString(SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)));
 return(rates_total);
}

На первом счете на XAUUSD три знака после запятой:

переключаемся на второй счет. На нем на символе XAUUSD два знака после запятой, но _Digits и _Point продолжают показывать старые значения: