Я как то пытался повторить в TDS результаты онлайн торгов и боле менее схожие результаты у меня получились только при отключении проскальзывания.
Я какое-то время, для себя, разбирался с вопросом повторения в тесте результатов торгов проведенных онлайн и пришел к выводу (касается только нашего бота, на других не проверял), что включение в ТДС функции проскальзывания может значительно увеличивать разницу между торгами онлайн и тестом. Стал размышлять и пришел к такому взгляду. Проскальзывание в реальных торгах имеет место быть. Но степень влияния на результаты торгов проскальзывание имеет не значительное. В ТДС мы можем задавать условия проскальзывания такими жесткими (думая, что кашу маслом, не испортишь), что в тесте моделируется ситуация, которой в реальной торговле и в принципе быть не может. Например в ТДС можно задать ситуацию, что 80% сделок будут идти с проскальзыванием. А в жизни, к примеру 90% сделок было без проскальзывания. Мои наблюдения и схожие выводы делали и другие форумчане. Большинство ТДСников пришли к выводу, что применение функции проскальзывания не приближают тесты к реальности. В большинстве случаев реальные торги и тесты без проскальзывания, как близнецы братья, и для меня ТДС прекрасный инструмент для анализа. А частный случай реальных торгов будет всегда частным случаем и не более.
Согласен.
Пришел к тем же выводам о необходимости отключения искусственного проскальзывания в тестах аналитическим путем и в 2.5 летних тестах онлайн.
Спойлер...
О проскальзываниях в тестах...
Имхо, применительно к нашему боту их можно обнулить и не использовать вообще.
Проскальзывания в тестах надо использовать в одноордерных пробойно/отбойных ботах, особенно резких скальперах - там это обязательно.
Но в нашем боте, при открытии ордеров и закрытии по ТР, имхо, имитировать проскальзывание бессмысленно и даже вредно.
Кратко объясню почему так думаю - я ж 3-й год торги онлайн круглосуточно смотрю и выверяю на сервере для тестов...
Сетки из рыночных ордеров у нас закрываются по ТР - серверному ТР.
Статистика 2+ лет закрытия сеток по ТР на десятках счетов разных типов в никаких ДЦ из СНГ вполне репрезентативна и очень однородна - не по ТР крайне редко закрывается ничтожно малое (менее одной из сотен) количество сеток только в случаях, если ТР было достигнуто истекающим импульсом/шипом. В этом и только этом случае на счетах всех типов возможно, что сервер ДЦ не успевает закрыть все ордера сетки по ТР и часть ордеров закрывается ботом по чуть худшей цене.
Случаи краткосрочных подвисаний серверов ДЦ в моменты импульсов, конечно, бывают - но не часты и, в абсолютном большинстве случаев, сетка закрывается все же по ТР, но на секунды или минуту-две позже, чем должна бы. То есть сервер с какой-то задержкой, но факт достижения ТР ценой всё же отрабатывает.
В итоге, в части закрытия сеток по серверным ТР, использование в тестах не нулевого проскальзывания (как и завышенного фиксированного спрэда) в более 99% случаев заведомо искажает результаты тестирования, ухудшая их против торгов онлайн.
В части открытия ордеров ситуация более вариантная, но и там проскальзывание бесполезно и лишь по другому исказит картину.
Может, заметили (но скорее нет :) ), что в боте нет параметра проскальзывания...
В реальности применяется достаточно сложный алгоритм принятия решения о допустимости открытия и переоткрытия рыночного ордера в широком диапазоне от чуть меньше шага до (шаг+GapMinPips). Конечно, первичное решение об открытии ордера принимается тогда, когда цена пройдет шаг+ от предыдущего ордера - а вот где удастся открыть/выставить ордер, это уже бот будет несколько раз пробовать и обдумывать что получилось.
В итоге, с учетом движения цены и собственных люфтов разных ДЦ, идеальных сеток почти не бывает, но большинство ордеров открывается как надо или по ценам чуть дальше/лучше, чем надо - типа с положительным проскальзыванием.
Но это в реале...
А в тестере бот строит идеальные сетки пипочка в пипочку - часто чуть хуже закрывающиеся, чем в реале.
И, если в тестере добавить проскальзывание, то отклонение от реала в тестере будет еще больше - причем в сторону случайного сплющивания/укорачивания сетки...
Ну и нахрена то умышленное/случайное проскальзывание в тестах нашего бота нужно? Имхо, для нас оно бессмыслено.
В итоге, имхо:
1) минимальный спрэд в настройках TDS под пару/счет/ДЦ в тестах задавать можно и нужно
2) параметр бота MaxSpread в тестах счетов с плавающим спрэдом использовать можно и нужно, а для счетов с фиксированным спрэдом нет.
3) все варианты проскальзываний в тестах для нашего бота бесполезны и лишь искажают результат.
...







