Проблемы, обнаруженные при обратном тестировании, и невозможность найти первопричину! - страница 5
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
. Я все еще не вижу исчезновения пиков. Как "переинициализировать" его?
Вы можете повторно инициализировать, либо изменив таймфреймы
либо
открыть окно ввода индикатора и нажать OK
You can re-initialise by either changing timeframes
or
откройте окно ввода индикатора и нажмите ОК
После попытки я понимаю, что это тот же смысл, что я сказал, что расположение пиков меняется. Правильно?
УважаемыйGumRai,
Для каждой итерации (кроме первой) Fish1 - это значение предыдущего элемента буфера, но вы не инициализируете его в ExtBuffer1[limit].
Итак, для начальной итерации (когда limit == bars) вы устанавливаете ExtBuffer1[0] = 1.1*ExtBuffer1[1] .
Но для последующих тиков (когда limit == 1) вы устанавливаете ExtBuffer1[0] = 1.1*0.00001 .
Уважаемый WHRoeder,
Большое спасибо, и я вижу проблему немного лучше с вашим руководством.
Однако, возможно, все еще нужно задать еще несколько вопросов для дальнейшего прояснения:
1. Вы можете видеть "double Fish1=0.00001; " определена в начале и вне всех функций.
То есть это должна быть глобальная переменная и, как я понимаю, ей присвоен последний ExBuffer1[0], даже если наступает новый последующий тик.
Или она автоматически восстанавливается до "0.00001" каждый раз, если наступает новый тик?
2. Теперь, когда каждый бар окрашивается по-разному с одним или многими последующими тиками, почему я могу видеть повторное окрашивание ..., bar[8], ..., или bar[1], на живом графике M1 без каких-либо прерываний?
3. Почему расположение пиков меняется после обновления?
4. Почему я вижу, что некоторые пики (около 959870576) формируются намного, намного меньше, чем"EMPTY_VALUE" (2147483647) на живых графиках M1?
5. Если появляется новый бар, предыдущий ExtBuffer1[0] автоматически меняется на ExtBuffer1[1]. Правильно?
6. Как предотвратить возможную повторную инициализацию или перерисовку?
Возможно, я все еще путаюсь в некоторых критических моментах и нуждаюсь в вашей огромной терпеливой помощи! Буду очень признателен, если вы сможете помочь с вопросами по одному!
УважаемыеWHRoeder,GumRai,
Я обновил свой индикатор в виде приведенного ниже кода в соответствии с моим пониманием после повторного прочтения ваших сообщений.
После использования его для обратного тестирования, результат намного больше соответствует индикатору. Тем не менее, все еще есть 2 проблемы. Пожалуйста, обратитесь к скриншотам ниже.
1. Торговля происходит после 4 сигналов индикатора в начале от первого ордера.
2. По-прежнему происходит смена одного ордера на 4 бара раньше сигнала индикатора.
Ниже приведен обновленный код индикатора.
1. Видно, что "double Fish1=0.00001; " определено в начале и вне всех функций.
То есть это должна быть глобальная переменная и, как я понимаю, ей присвоен последний ExBuffer1[0], даже если наступает новый последующий тик.
Или она автоматически восстанавливается до "0.00001" каждый раз, если наступает новый тик?
Лично я считаю аргументы rates_total/prev_calculated/OnCalculate отвратительными, поскольку графики/буферы - это временные ряды, и делал бы это по-старому: