Именно так. Так как "чужие" инструменты не моделируются при тестировании.
Так будет же сдвиг значения индикатора на один бар из-за того
что по евре берем текущий бар.
Тут надо или везде брать прошлый бар, или попытаться промоделировать все 3 пары одновременно, эта тема недавно проскакивала и вроде бы задача была успешно решена, кажись Xeon в курсе
Тут надо или везде брать прошлый бар, или попытаться промоделировать все 3 пары одновременно, эта тема недавно проскакивала и вроде бы задача была успешно решена, кажись Xeon в курсе
stringo:
Именно так. Так как "чужие" инструменты не моделируются при тестировании.
А если оставить анализ на нулевом баре, тогда происходит подсматиривание в будущее или нет.
Как в этом случае.
HIDDEN:
А если оставить анализ на нулевом баре, тогда происходит подсматиривание в будущее или нет.
Да, происходит подсматривание в будущее, т.к. бар фактически
ещё не закрылся, а советнику уже даётся его CLOSE.
stringo:
Именно так. Так как "чужие" инструменты не моделируются при тестировании.
А если оставить анализ на нулевом баре, тогда происходит подсматиривание в будущее или нет.
Кому интересно, погоняйте этого советника в тестере в режиме визуализации, например на EURUSD H1 и увидите какие значения берутся с нулевого бара чифа.
//+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ void start() { string st="iOpen()="+DoubleToStr(iOpen("USDCHF", 0, 0), 4)+"\n"+ "iHigh()="+DoubleToStr(iHigh("USDCHF", 0, 0), 4)+"\n"+ "iLow()="+DoubleToStr(iLow("USDCHF", 0, 0), 4)+"\n"+ "iClose()="+DoubleToStr(iClose("USDCHF", 0, 0), 4)+"\n"+ ""; Comment(st); } //+------------------------------------------------------------------+
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем привет.
Последнее время многие трейдеры начали писать мультивалютные экспертные системы. Т.е. для работы скажем на EURUSD, используется еще несколько валютных пар для анализа. Многие мне задают вопрос о тестировании и о реальной работе рынка одного и тогоже эксперта. И один из подобных вопросов поставил меня в небольшой тупик. Хотелось бы прояснить этот момент у разработчиков и у людей который в теме что и как.
Итак задачка следующая:
1. Для входа по EURUSD происходит анализ индикаторов по нескольким валютным парам, например по GBPUSD и USDCHF, анализ идет по показаниям индикатора, к примеру по Relative Vigor Index, RVI. Формула для расчета данного индикатора:
RVI = (CLOSE - OPEN) / (HIGH - LOW)
Вопрос который мне написали:
В тестере эксперт показывает результат который меня устраивает, но на демо счете сливает, если можешь объясни почему.
Из присланного куска кода видно следующие:
double iEURUSD,iGBPUSD,iUSDCHF;
iEURUSD = iRVI("EURUSD", 0, 10,MODE_MAIN,0);
iGBPUSD = iRVI("GBPUSD", 0, 10,MODE_MAIN,0);
iUSDCHF = iRVI("USDCHF", 0, 10,MODE_MAIN,0);
Из этого куска видно, что анализ индикаторов идет на нулевом баре, человек уточнил, что именно все должно работать на нулевом, я спорить не стал.
А вот теперь тот подводный камень, на котором спотыкаются все кто пишет подобные эксперты на нулевом баре. Различия в тестере и на реальном рынке.
т.к. тестер не умеет моделировать потиково катеровки других валютных пар, кроме той по которой идет тестирование, мы имеем сильно искаженную картину. А именно:
При работе на реальном рынке поступают тики по всем валютным парам и при запросе значения индикатора с валютной пары GBPUSD и USDCHF расчет идет по имеющимся катеровкам запрашиваемого таймфрейма.
Тестер же выдаёт результат несколько отличный от реального рынка, а именно расчет идет по уже сформировавшемуся бару.
Про тупик:
Из моих рассуждений и догадок имеем следующею картину, что при работе на нулевом баре расчет индикатора происходит по уже известным ценам CLOSE, OPEN, HIGH, LOW которые хранятся в базе истории терминала. Или все-таки расчет идет только по OPEN свечки, когда все значения CLOSE, OPEN, HIGH, LOW = одному значению, или все-таки идет подсматривание в будущее? Я специально привел пример именно индикатора Relative Vigor Index, RVI, т.к. в его формуле есть все нужные нам значения.
На данный момент я посоветывал человеку сделать следующее:
double iEURUSD,iGBPUSD,iUSDCHF;
iEURUSD = iRVI("EURUSD", 0, 10,MODE_MAIN,0);
iGBPUSD = iRVI("GBPUSD", 0, 10,MODE_MAIN,1);
iUSDCHF = iRVI("USDCHF", 0, 10,MODE_MAIN,1);
Т.е. при анализе евры использовать нулевой бар, а по остальным валютным парам прошлый бар.
В этом случае результаты тестирования и реального рынка будут ли максимально совпадать?