тики тестер стратегии мт5 - страница 4

 
RaptorUK:
Я говорю не о пропущенных тиках в тестере стратегий, а о пропущенных тиках во время записи. Если вы считаете тики, которые вы видите во время записи данных, и вы пропускаете тики, то ваш счет будет ниже, чем должен быть. Очень просто определить, пропустили ли вы тик во время записи, мне просто интересно, делали ли вы это и что вы делали, когда обнаружили, что пропустили тик?

Как я уже писал, я доверяю тому, что мои данные, записанные в реальном времени, являются полными. Причины для этого:

1, Иногда регистрировалось около тысячи тиков в минуту (что равно более десяти тиков в секунду!). Это достаточно большое число, чтобы убедить меня, что нет никаких проблем с производительностью советника. (И из-за этой цифры я не думаю, что были неучтенные тики и советник не успевал за темпом).

2, Советник работает на выделенном VPS Metatrader, который обслуживается профессиональным поставщиком услуг, специально настроенным для торговли (т.е. минимальные перерывы в соединении).

 
NyemaSanya:

Как я уже писал, я доверяю тому, что мои данные о реальном времени на VPS являются полными. Причины этого:

1, Иногда регистрировалось почти тысяча тиков в минуту (это более десяти тиков в секунду!). Этого количества достаточно, чтобы убедить меня в отсутствии проблем с производительностью советника.

2, Советник работает на выделенном VPS Metatrader, который обслуживается профессиональным провайдером специально для торговли.


Кстати, мне интересно, как вы можете определить, есть ли пропущенный тик при записи?

Хорошо, вы не проверяете, поэтому вы не знаете, правильно ли вы считаете или нет... Почему вы просто не сказали. Сколько времени занимает выполнение OnTick()? Если оно не закончилось до прихода следующего тика, не пропустите ли вы тик?

Как проверить? Ну... ведите счет тиков по ходу дела, обнуляйте этот счетчик, когда начинается новый бар, и увеличивайте его для каждого тика, сравнивайте свой счет с Volume для бара 0, если ваш счет отличается, вы пропустили по крайней мере один тик.

 
RaptorUK:

Хорошо, значит, вы не проверяете, поэтому вы не знаете, правильно ли вы посчитали или нет... Почему вы просто не сказали. Сколько времени требуется вашему OnTick() для выполнения? Если он не успеет завершиться до прихода следующего тика, не пропустите ли вы тик?

Как проверить? Ну... ведите счет тиков по ходу дела, обнуляйте этот счетчик, когда начинается новый бар, и увеличивайте его для каждого тика, сравнивайте свой счет с Volume для бара 0, если ваш счет отличается, вы пропустили по крайней мере тик.

Итак, вы только что нашли для себя приятную задачу! ;-)
 
RaptorUK:

Хорошо, значит, вы не проверяете, поэтому вы не знаете, правильно ли вы посчитали или нет... Почему вы просто не сказали. Сколько времени требуется вашему OnTick() для выполнения? Если он не успеет завершиться до прихода следующего тика, не пропустите ли вы тик?

Как проверить? Ну... ведите счет тиков по ходу дела, обнуляйте этот счетчик, когда начинается новый бар, и увеличивайте его для каждого тика, сравнивайте свой счет с Volume для бара 0, если ваш счет отличается, вы пропустили по крайней мере тик.

Почему вы настаиваете на этом моменте?
 
angevoyageur:

Почему вы настаиваете на этом?


Просто мне пришло в голову еще одно обстоятельство, показывающее, насколько нелепо его приклеивание. Чтобы получить тиковые данные тестера, я запустил советник без визуализации. Это намного быстрее, чем в реальной жизни, чтобы получить один день, требуется менее полуминуты. Даже в этом случае все тики были записаны.....

 
NyemaSanya:

Только что мне пришло в голову еще одно обстоятельство, показывающее, насколько нелепо его втыкание. Чтобы получить тиковые данные тестера, я запустил советник без визуализации. Это намного быстрее, чем скорость реальной жизни, чтобы получить один день, требуется менее полуминуты. Даже в этом случае все тики были записаны.....

При форвард-тесте вы ВСЕГДА пропустите несколько тиков (в течение значительного времени тестирования). С этим ничего нельзя поделать, эти тики просто не попадают в ваш скрипт/EA. См. документацию:

СобытиеNewTick генерируется при появлении новых котировок, оно обрабатывается функцией OnTick() подключенных экспертов. В случае, когда при поступлении новой котировки обрабатывается функция OnTick для предыдущей котировки, новая котировка будет проигнорирована экспертом, так как соответствующее событие не будет зарегистровано.

В тестере все генерируется внутри, поэтому вы не пропустите ни одного тика. И в этом заключается проблема.
 
angevoyageur:

При форвард-тесте вы ВСЕГДА пропускаете некоторые тики (на значительное время тестирования). С этим ничего нельзя поделать, эти тики просто не поступают в ваш скрипт/ЭА. См. документацию :

СобытиеNewTick генерируется при появлении новых котировок, оно обрабатывается функцией OnTick() подключенных экспертов. В случае, если при поступлении новой котировки обрабатывается функция OnTick для предыдущей котировки, то новая котировка будет проигнорирована экспертом, так как соответствующее событие не будет зарегистрировано.

В тестере все генерируется внутри, поэтому вы не пропустите ни одного тика. И в этом вся проблема.


Извините, angevoyageur:


Я не согласен ни с вами, ни с RaptorUK. Мне кажется, что вы игнорируете элементарную логику. Советник способен записать несколько сотен тысяч тиков в течение нескольких минут при запуске тестера. Это означает, что функция Ontick() была выполнена за доли миллисекунды.

Но вы продолжаете настаивать на том, что советник не может записать меньше тиков в реальном времени, имея гораздо больше времени на выполнение Ontick()?

Извините, но я думаю, что теперь это стало совершенно бессмысленным разговором, поэтому я удаляюсь.
 

@NyemaSanya: Вы, очевидно, не понимаете, что вы можете пропустить Галочку во время записи. RaptorUK уже рассказал вам об этом. Тики - это новые котировки, транслируемые с сервера брокера. Новые котировки могут быть проигнорированы mt5 при обработке вашего Tick_Recorder. angevoyageur уже говорил вам об этом. Тики - это пакеты данных, которые должны путешествовать в киберпространстве и попасть в ваш терминал, вы можете пропустить тики из-за потерянных пакетов данных. Теперь Ubzen рассказал вам об этом.

Все легендарные члены mql4, создатели mql4 | mql5 пришли к одному и тому же выводу. Подгонка кривых тиков приближается к Случайности.

- Если вы все еще думаете, что вы не можете пропустить тик в реальной жизни, тогда вам нужно исследовать свой материал, прежде чем спорить дальше.

- Если вы осознаете, что вы можете пропустить тик, тогда вам нужно ответить на вопрос, почему ваш метод лучше.

В любом случае, это просто один и тот же спор снова и снова. Прочитайте эту тему.

 
NyemaSanya:


Извините, angevoyageur:


Я не согласен ни с Вами, ни с RaptorUK. Мне кажется, что вы игнорируете элементарную логику. Советник способен записать несколько сотен тысяч тиков в течение нескольких минут при запуске тестера. Это означает, что функция Ontick() завершилась за доли миллисекунд.

Но вы продолжаете настаивать на том, что советник может быть не в состоянии записать меньше тиков в реальном времени, имея гораздо больше времени на выполнение Ontick()?

Извините, но я думаю, что теперь это стало бессмысленным разговором, поэтому я ухожу.

Зачем так реагировать ? Здесь нет ничего личного.

Это не вопрос соглашаться или нет. Советник на форвард-тесте всегда пропускает тики, это факт. Я нахожу ваш первый комментарий очень интересным в том плане, что я никогда не обращал внимания на то, что тестеры стратегий не пропускают тики, поскольку они эмулируются на основе объема. Я спросил RaptorUk, почему он настаивает, потому что я считаю этот вопрос второстепенным,я не понимал, что вы не знаете, что такое тик .

 

Я провел тест вчера (9/4) на EURUSD, с советником, который только считает тики и сравнивает данные MqlTick:

Тики
Объем (тик) по данным терминала MT5 на графике D1
46 645
Бэктест D1
46 106
Бэктест на дневном графике46 489


  • Итак, даже почти ничего не делая, советник на бэктесте все равно пропускает сотни тиков в день.
  • Меня немного заинтриговал тот факт, что бэктест дал меньше тиков, чем дневной объем.
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Structure for Current Prices
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Structure for Current Prices
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Structure for Current Prices - Documentation on MQL5