alexhammer:
И опять пропуски! Ошибок никаких не пишет,всё нормально, в реальном времени торгует. Что теперь? Что дальше? Изворачиваться и торговать для тестера прямо из индикатора?
чтото тестерная тема внезапно стала популярной ;)
не так давно, вот тут уже было обсуждение особенностей работы тестера. тестер на самом деле не тестер а эмулятор: рынок - это чтото одно, а тестер - совсем другое. имейте эту двойственность в виду (во всех смыслах этого утверждения) и многое встанет на свои места.
прежде чем вам чтото посоветовать, я бы сначала уточнил несколько моментов: период, метод тестирования (небось "все тики...."?) и самое главное хотябы фрагменты кода которые вычисляют ваши точки входа (можно без деталей ТС но чтобы было понятно есть ли перерисовки у индикатора? нет ли заглядывания в будущее и всякое такое). В индикаторе и эксперте. Врать же может не только эксперт но и индикатор работать неправильно. вот очень показательный пример хорошего (на первый взгляд) индикатора
Столкнулся с непонятной проблемой,написал индикатор,к нему дописал стратегию,начинаю тестить, и со временем замечаю неточности входа тестера в рынок. Ну думаю, ладно из за нулевого бара может ошибается. Проверяю везде в коде чтобы расчёты проводились с начала появления бара,тоесть по OPEN,всё в порядке так и есть. Ладно думаю сделаем вход с запаздыванием,со сдвигом назад.
Результат конечно другой, но пропуски сделок у тестера так же есть. Хорошо, прикручиваем к индикатору визуально стрелочки,добавляем ещё два буфера, в которых метки BUY и SELL, не вызываем теперь из советника расчёты, а просто считываем уже готовые метки из буферов. И опять пропуски! Ошибок никаких не пишет,всё нормально, в реальном времени торгует. Что теперь? Что дальше? Изворачиваться и торговать для тестера прямо из индикатора?
Вот приведу пример:
Заместо селла сделал бай и попёр куда то, пропуская всё подряд. Хотя в некоторых местах графика всё чётко совпадает.
Неплохо было бы взглянуть на код индикатора
Спасибо всем за участие,нашёл ошибку в коде: было
for (int i=limit; i>=0; i--)
а надо:
for(int i=0; i<limit; i++)
В связи с этим вопросы: Если рассуждать чисто теоретически, то если мы начинаем рисовать от нуля, то при первом проходе если надо считать Close[i+1] то мы должны от туда получить "ноль", так как в буфере ещё пусто, а если рисовать наоборот, то Close[i+1] должен быть уже посчитан? Так как всё таки происходит прорисовка? и как правильно тогда считать?
И ещё вопрос: При появлении нового бара что мы имеем в нулевом баре?
Опять чисто теоретически рассуждаю: У нас есть точные данные только по Open[0] и
Open[0]=Low[0]
Open[0]=High[0]
Open[0]=Close[0]
и только с приходом нового тика Low,High,Close начинают меняться, правильно?
Из за того что нулевой бар постоянно пересчитывается мы и получаем перерисовывающиеся индикаторы, т.к. все стандартные индикаторы считаются по Close, зачем так сделано? почему не по Open? выход один получать данные со смещением в историю и получать задержку?
Прошу прощения, может и глупые вопросы, но хочется всё знать точно, а не иметь догадки.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Столкнулся с непонятной проблемой,написал индикатор,к нему дописал стратегию,начинаю тестить, и со временем замечаю неточности входа тестера в рынок. Ну думаю, ладно из за нулевого бара может ошибается. Проверяю везде в коде чтобы расчёты проводились с начала появления бара,тоесть по OPEN,всё в порядке так и есть. Ладно думаю сделаем вход с запаздыванием,со сдвигом назад.
Результат конечно другой, но пропуски сделок у тестера так же есть. Хорошо, прикручиваем к индикатору визуально стрелочки,добавляем ещё два буфера, в которых метки BUY и SELL, не вызываем теперь из советника расчёты, а просто считываем уже готовые метки из буферов. И опять пропуски! Ошибок никаких не пишет,всё нормально, в реальном времени торгует. Что теперь? Что дальше? Изворачиваться и торговать для тестера прямо из индикатора?
Вот приведу пример:
Заместо селла сделал бай и попёр куда то, пропуская всё подряд. Хотя в некоторых местах графика всё чётко совпадает.