Проблема с ТЕСТЕТРОМ после обновления MT5 до билда 1340 - страница 2

 
Большое спасибо Владимир. Очень полезная ссылка.

Но есть глупый вопрос. SYNT - это индикатор. Возможно его будет впоследствии подставить в тестере при прогоне советника?
 
AlBacherov:
Большое спасибо Владимир. Очень полезная ссылка.

Но есть глупый вопрос. SYNT - это индикатор. Возможно его будет впоследствии подставить в тестере при прогоне советника?
Я такие кульбиты не совершал :) . Даже в голову не приходило.
 
Slawa:
Да. В этой ситуации биды равны ластам.

Но ведь это не корректно!  Не знаю, обсуждалось это или нет, но очевидно что данный способ нарушает статистическое равновесие.

В реальности цена Ласт на бирже может совпадать как с Бидом, так и с Аском, вероятность одинакова.  Т.е. среднестатистически получается:  Ласт = (Бид + Аск) / 2

У вас же она всегда совпадает только с Бидом.  Итого, имеем перекос котировок в одну сторону на половину спреда.  Если на бирже цена Ласт совпала с Аском, то в тестере у нас появится Бид по этой же цене, т.е. мы сможем продать по такой высокой цене, хотя в реальности по ней можно было только купить.

Как следствие - наличие закономерности на пустом месте, которую робот легко может поймать при тестировании.  По сути, продажи имеют статистическое преимуществами перед покупками.   Т.е. если в советнике запретить покупки, оставив только продажи, мы увеличим его матожидание на пол-спреда.  Разве это нормально?

Возможно на форексе это было не столь критично, т.к. там нет единых котировок, всё размыто. Но на биржевых котировках другое дело.

Советую внимательно отнестись к этой проблеме, и восстановить статистическую справедливость.  Должно быть так:   Аск = Ласт + спред/2,   Бид = Ласт - спред/2

 
Karputov Vladimir:
Я такие кульбиты не совершал :) . Даже в голову не приходило.
Но ведь в этом и суть. Склейка нужна для прогона советника. А индикатор, это всего лишь визуализация. 

Получается, несмотря на хорошую работу проделанную Вами, для теста советников он не поможет. Если только как-то не обмануть самого советника.
 
AlBacherov:
Но ведь в этом и суть. Склейка нужна для прогона советника. А индикатор, это всего лишь визуализация. 

Получается, несмотря на хорошую работу проделанную Вами, для теста советников он не поможет. Если только как-то не обмануть самого советника.
На тот момент я делал именно индикатор. И ничего более. А вообще-то обещают скоро в MetaTrader 5 свои датафиды - нуно подождать немножко.
 
Alexey Navoykov:

Но ведь это не корректно!  Не знаю, обсуждалось это или нет, но очевидно что данный способ нарушает статистическое равновесие.

В реальности цена Ласт на бирже может совпадать как с Бидом, так и с Аском, вероятность одинакова.  Т.е. среднестатистически получается:  Ласт = (Бид + Аск) / 2


По биржевым инструментам бары строятся по цене last. Что будет, если last=(bid+ask)/2? Будет искажение баров. Мы очень долго думали над этим вопросом и поняли, что генерация биржевого потока цен bid, ask и last на основе готовых минуток - невозможна.

Чтобы избежать описываемых проблем мы специально добавили режим тестирования на основе реальных тиков.

 
Slawa:

По биржевым инструментам бары строятся по цене last. Что будет, если last=(bid+ask)/2? Будет искажение баров. Мы очень долго думали над этим вопросом и поняли, что генерация биржевого потока цен bid, ask и last на основе готовых минуток - невозможна.

Чтобы избежать описываемых проблем мы специально добавили режим тестирования на основе реальных тиков.

Вы видимо меня неправильно поняли.  Я в курсе, что бары строятся по ласту.  Речь шла о том, как синтезировать бид и аск, зная ласт.   Режим на основе реальных тиков оставим в стороне, речь не о нём.

Попытаюсь ещё раз объяснить (хотя, казалось, разжевал уже подробней некуда). 

На бирже цена ласт гуляет между бидом и аском.  Т.е. среднестатистически она будет примерно посередине между ними.  Вы согласны с этим?   Именно это я и имел ввиду, написав формулу last=(bid+ask)/2.   А из этого следует:   bid= last-spread/2,  ask= last+spread/2.     Повторюсь, это не буквально, а среднестатистически.  

В вашем же случае:   bid=last,  ask=last+spread.    Во-первых, возникает закономерный вопрос, почему вы именно бид (а не аск) приравняли к ласту?  Чем бид лучше аска (или наоборот)?    И во-вторых, получаем сдвиг относительно среднестатистических значений на величину spread/2.   Т.е. вы искусственно создаёте перекос статистического равновесия, некую неэффективность, которую можно легко эксплуатировать (осознанно или неосознанно) для повышения прибыльности ТС.  Правда только в тестере, к сожалению.

Мне казалось, алгоритм генератора тиков должен быть избавлен от таких изъянов, способствующих появлению тестерных граалей.

 
Alexey Navoykov:

Вы видимо меня неправильно поняли.  Я в курсе, что бары строятся по ласту.  Речь шла о том, как синтезировать бид и аск, зная ласт.   Режим на основе реальных тиков оставим в стороне, речь не о нём.

Попытаюсь ещё раз объяснить (хотя, казалось, разжевал уже подробней некуда). 

На бирже цена ласт гуляет между бидом и аском.  Т.е. среднестатистически она будет примерно посередине между ними.  Вы согласны с этим?   Именно это я и имел ввиду, написав формулу last=(bid+ask)/2.   А из этого следует:   bid= last-spread/2,  ask= last+spread/2.     Повторюсь, это не буквально, а среднестатистически.  

В вашем же случае:   bid=last,  ask=last+spread.    Во-первых, возникает закономерный вопрос, почему вы именно бид (а не аск) приравняли к ласту?  Чем бид лучше аска (или наоборот)?    И во-вторых, получаем сдвиг относительно среднестатистических значений на величину spread/2.   Т.е. вы искусственно создаёте перекос статистического равновесия, некую неэффективность, которую можно легко эксплуатировать (осознанно или неосознанно) для повышения прибыльности ТС.  Правда только в тестере, к сожалению.

Мне казалось, алгоритм генератора тиков должен быть избавлен от таких изъянов, способствующих появлению тестерных граалей.

Ещё раз.

Бид приравняли к ласту по той самой причине, что бары биржевых инструментов строятся по ласту, а не по биду.

Я Вам давал ссылку на алгоритм генерации тиков. Тики генерируются на основании OHLC минутного бара. Генерируется цена бид. Цена аск получается путём прибавления спреда к сгенерированному биду.

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

Любой, даже самый навороченный, генератор даёт возможность писать тестерные граали. Так как по определению генерируется детерминированная последовательность. Мы не можем каждый раз генерировать разную последовательность, так как это нарушит повторяемость результатов

 
Slawa:

Ещё раз.

Бид приравняли к ласту по той самой причине, что бары биржевых инструментов строятся по ласту, а не по биду.

Чёт не вижу логики:   1) Бары строятся по ласту, а не по биду;  2) По этой причине бид приравняли к ласту.  

А при чём здесь бид?   Почему не аск?   Что вы так прицепились именно к биду?  Я уже два раза пытаюсь объяснить, но вы почему-то меня не слышите, или невнимательно читаете.  Бид и аск - равнозначны.  Нельзя приравнивать к ласту что-то одно из них - этим вы создаёте перекос.   Надо приравнивать среднее арифметическое между бидом и аском.

Slawa:

Про статистический перекос было известно ещё до этого Вашего заявления. Я же сказал, что мы не смогли найти приемлемого алгоритма для генерации биржевых цен бид, аск и ласт.

Я же указал правильный алгоритм, при котором не будет перекоса:   bid= last-spread/2,   ask= last+spread/2.

 
Alexey Navoykov:

Чёт не вижу логики:   1) Бары строятся по ласту, а не по биду;  2) По этой причине бид приравняли к ласту.  

А при чём здесь бид?   Почему не аск?   Что вы так прицепились именно к биду?  Я уже два раза пытаюсь объяснить, но вы почему-то меня не слышите, или невнимательно читаете то, что я писал.  Бид и аск - равнозначны.  Нельзя приравнивать к ласту что-то одно из них - этим вы создаёте перекос.   Ласту надо присваивать среднее арифметическое между бидом и аском.

Я же вам указал правильный алгоритм, при котором не будет перекоса:   bid= last-spread/2,   ask= last+spread/2.

При генерации тиков генерируются только биды и аски. Бид генерируется на основе OHLC минутного бара. Аск=бид+спред. Ласты не генерируются. Это - данность. Если для биржевых инструментов мы будем генерировать ласт=(бид+аск)/2, то на выходе мы получим неправильно построенные бары.

Поэтому используйте тестирование на реальных тиках. Я уже третий раз Вам предлагаю использовать реальные тики

Причина обращения: