Да очень просто. создайте индикатор, поместив в него следующий код:
#property indicator_chart_window
int start()
{
Comment(Ask+" "+iClose(NULL,0,0));
}
Теперь запустите любой советник на тестирование с визуализацией, и в любое время (хоть во время паузы, хоть по ходу тестирования) поместите этот индикатор на окно визуализации. И увидите, что коммент отображает. Правильным с точки зрения тестирования будет только второе значение - смоделированное. Ask (первая цифра) будет возвращать реальное значение - которое есть на данный момент на рынке, а не в тестере стратегий.
Отпишите здесь как попробуете, надо сравнить что у вас получилось с моим.
Да очень просто. создайте индикатор, поместив в него следующий код:
Теперь запустите любой советник на тестирование с визуализацией, и в любое время (хоть во время паузы, хоть по ходу тестирования) поместите этот индикатор на окно визуализации. И увидите, что коммент отображает. Правильным с точки зрения тестирования будет только второе значение - смоделированное. Ask (первая цифра) будет возвращать реальное значение - которое есть на данный момент на рынке, а не в тестере стратегий.
Отпишите здесь как попробуете, надо сравнить что у вас получилось с моим.
Индикатор ничего не знает о том, что наброшен на окно визуального тестирования. Попробуйте то же самое значение Ask выводить в комментарий из кода советника. Тогда вопросы отпадут.
Дело в том что я отлаживаю индикатор на исторических данных. И почему тогда iClose работает нормально?? ведь iClose при Вашем объяснении должен тоже возвращать данные реального рынка, а не смоделированные.
Теперь временные функции.
Берем следующий код:
#property indicator_chart_window int start() { Comment(TimeHour(TimeCurrent())+":"+TimeMinute(TimeCurrent())+":"+TimeSeconds(TimeCurrent())); }
и убеждаемся, что опять индикатор получает от указанных функций неверное с точки зрения тестирования значение.
Вот это мне тоже непонятно, почему индикатор обделен?
Или это предусмотрено изначально, чтобы при тестировании стратегий индикаторы вызывались только из тестируемого эксперта? Если так тогда опять есть вопросы.
Вот код. В нем и Ask и Close[0] - переменные одного класса, если можно так высказаться. Однако результат тот же. Если Ваше объяснение верно, почему close возвращает правильно, а Аsk - нет?
int start() { Comment(Ask+" "+Close[0]); //Comment(TimeHour(TimeCurrent())+":"+TimeMinute(TimeCurrent())+":"+TimeSeconds(TimeCurrent())); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Кроме того, в индикаторах не работают функции TimeHour, TimeMinute и подобные, опять же в режиме тестирования стратегий. Приходится обходить - в советник включать объявление глобальных переменных, хранящих в себе время и дату (которые в советник приходят корректно) и публиковать их в этих глобальных переменных при каждом тике. а индикатор берет уже эти данные из пространства глобальных переменных.
Обращаю внимание, что в руководстве написано - "в режиме тестирования стратегий данные возвращаемые этими функциями моделируются"