Еще полгода назад начинал писать одну из версий скальпера. тестер показывал стабильную прибыль. сейчас обновился до последней версии S#, логика осталась абсолютно без изменений — тестер показывает стабильный минус.
Цены исполнения всех сделок в среднем на 10 п хуже, чем были раньше. Пробовал выставить в новой версии «UseMarketDepth = false» - выскакивает ошибка, т.к. все заявки отправляются через Security.BestAsk.Price + 500 (по рынку, используя цену лучшего бида или оффера)… старая версия не ругалась на это.
пошел дальше… убрал в коде все BestBid и BestAsk, т.е. любое обращение к стакану и заменил на Security.LastTrade.Price +- 500. и о чудо, результаты тестов стали совпадать )))
и вот тут сам по себе возник вопрос… какая разница, используя я стакан или нет, если в обоих случаях выставляется рыночная заявка? и как это может влиять на цены исполнения заявок, если, как я понимаю, цена исполнения определяется исходя из последующих сделок?
评论 (3)
登录 或 创建账户, 登录或注册以发表评论
рыночная заявка сводится по стакану. покупка - по биду. Если вы тестируете без стакана (useMD=false) то идет эмпирика по цене сведения равной LastTrade +- проскальзывание Slippage. По умолчанию проскальзывание ноль. Поэтому переписав свой код вы получили тоже что и раньше.
Но то что вы получили - это нереалистично потому что проскальзывание без использования стаканов вычислить невозможно. Поэтому, видимо, ваш скальпер на тестировании со стаканами показывает более реалистичный минус.
Спасибо. Вроде разобрался. Кстати, у меня наоборот - тест без стаканов и результат на реале почти совпадают. теперь возникала другая проблема... при тестировании стало выскакивать исключение System.OutOfMemoryException... во время Indicator.Process(candle). даже 2 дня не получается протестировать. пробовал в конце дня разово делать Indicator.Container.ClearValues(); - после этого индикаторы вообще не хотят нормально считаться. значения даже близко на правду не похожи.
вообще конечно странно... после Indicator.Container.ClearValues(); - некоторые индикаторы продолжают считаться правильно, некоторые абсолютно нет.
стал тупо перебирать все возможные индикаторы... Highest - нормально продолжает, а Lowest - постоянно выдает 0. т.е. нет никакой закономерности... помогитееее )))