| / | Форум |
|
ArtemRG
22.09.2006 07:45
Тестировал с визуализацией советника на H1. Поставил на график
индикатор, который обращается к периоду D1. Оказалось, что из
массива iHigh(NULL, PERIOD_D1, 0) поступает не иммитируемая история, а
текущая реальная.
Пример индикатора (на IE7 непонятно, как вставить код корректно) #property indicator_chart_window int start() { Comment ("D1 high=", iHigh(NULL, PERIOD_D1,0)," low=", iLow(NULL, PERIOD_D1, 0)," close=",iClose(NULL, PERIOD_D1,0)," ATR=", iATR(NULL, PERIOD_D1, 10, 0)); return(0); } Вообще давно заметил, что если советник при тестировании обращается к другому периоду, то возникают проблемы со стабильностью результатов его тестирования на разных машинах. Когда дадите доступ к историческим данным, то, пожалуйста, добавьте скрипт, который бы проверял целостность этих данных. Желательно, чтобы охватывались все периоды. Такой скрипт даст уверенность в качестве истории при смене машины или переинсталяции программы. |
|
Бесплатная Groupware для групп разработчиков Установите систему групповой работы TeamWox и объедините усилия всех разработчиков. Это поможет вашей команде работать быстрее и организованнее. Благодаря TeamWox станет намного проще ставить задачи и контролировать их выполнение. |
|
Integer
22.09.2006 08:04
Почему бы разработчикам не пойти по другому пути - чтонить типа
вирутального сервера в виде отдельной программы с возможностью
изменения скорости подачи котировок. Все проблемы решаются
- и портфельные и визуализация и ручная тренировка.
|
|
klot
22.09.2006 15:57
ArtemRG писал (а): Дело в том, что в индикаторах при Визуальном Тестировании не
работает функция эмуляции текущего времени.Тестировал с визуализацией советника на H1. Поставил на график индикатор, который обращается к периоду D1. Оказалось, что из массива iHigh(NULL, PERIOD_D1, 0) поступает не иммитируемая история, а текущая реальная. Пример индикатора (на IE7 непонятно, как вставить код корректно) #property indicator_chart_window int start() { Comment ("D1 high=", iHigh(NULL, PERIOD_D1,0)," low=", iLow(NULL, PERIOD_D1, 0)," close=",iClose(NULL, PERIOD_D1,0)," ATR=", iATR(NULL, PERIOD_D1, 10, 0)); return(0); } Вообще давно заметил, что если советник при тестировании обращается к другому периоду, то возникают проблемы со стабильностью результатов его тестирования на разных машинах. Когда дадите доступ к историческим данным, то, пожалуйста, добавьте скрипт, который бы проверял целостность этих данных. Желательно, чтобы охватывались все периоды. Такой скрипт даст уверенность в качестве истории при смене машины или переинсталяции программы. Т.е. если индикатор использует текущее время например, как у вас iHigh(NULL, PERIOD_D1,0) данные будут вычисляться с 0-ого барра т.е. с сегодняшнего, а нужно вычислить номер бара на момент тестирования. я это делаю так: //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //---- datetime _curtime=CurTime(); //--- datetime _cur_time=iTime(NULL,0,0); // Сами моделируем CurTime() //--- int _nbar_day=iBarShift(NULL,PERIOD_D1,_cur_time); // Вычислим номер бара большего ТФ datetime _time_day=iTime(NULL,PERIOD_D1,_nbar_day); // Найдем абсолютное время открытия дня int _nbar_cur_period=iBarShift(NULL,0,_time_day); // Вычислим номер бара текущего ТФ datetime _time_nbar_cur_period=iTime(NULL,0,_nbar_cur_period); //Проверка времени открытия бара //--- Comment( "_cur_time= ",TimeToStr(_cur_time,TIME_DATE|TIME_SECONDS),"\n", "_time_day= ",TimeToStr(_time_day,TIME_DATE|TIME_SECONDS),"\n", "_time_nbar_cur_period= ",TimeToStr(_time_nbar_cur_period,TIME_DATE|TIME_SECONDS),"\n", "_curtime= ",TimeToStr(_curtime,TIME_DATE|TIME_SECONDS),"\n", "_nbar_day= ",_nbar_day,"\n", "__nbar_cur_period= ",_nbar_cur_period ); //--- // Всё получилось, что хотел!!! //---- return(0); } //+------------------------------------------------------------------+ |
|
klot
22.09.2006 16:00
ArtemRG писал (а): В советниках и скриптах - время при визуально тестировании правильно
эмулируется. Я не замечал ошибок.
Тестировал с визуализацией советника на H1. Поставил на график индикатор, который обращается к периоду D1. Оказалось, что из массива iHigh(NULL, PERIOD_D1, 0) поступает не иммитируемая история, а текущая реальная. Вообще давно заметил, что если советник при тестировании обращается к другому периоду, то возникают проблемы со стабильностью результатов его тестирования на разных машинах. |
|
MAEstro
22.09.2006 17:45
Integer писал (а): Почему бы разработчикам не пойти по другому пути - чтонить типа вирутального сервера в виде отдельной программы с возможностью изменения скорости подачи котировок. Все проблемы решаются - и портфельные и визуализация и ручная тренировка. Идея отличная, осталось дождаться её реализации :) |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий