← 返回

EmulationTrader и 2 заявки

Здравствуйте. При работе EmulationTrader столкнулся с такой проблемой. Долго бился, в итоге упростив до минимума получил следующий результат. При старте стратегии после первой сделки создаю две заявки.

if (Security.LastTrade != null && order1 == null) { order1 = new Order ; RegisterOrder(order1); order2 = new Order ; RegisterOrder(order2); } При этом цена, допустим, в ближайшие тридцать минут не опускается ниже 211, но повышается пробивает отметку в 212, т.е. по логике должна вторая заявка реализоваться. Но этого не происходит. Т.е. первая заявка блокирует вторую и это действительно так. Если их поменять местами - то все нормально - первая срабатывает, а вторая не срабатывает. Если им установить одинаковые цены - то обе успешно срабатывают. Ну и соответственно если второй заявки сделать лимит покупки более низкий, чем для первой (зная что обе сработают), то все равно EmulationTrader сначала дождется выполнения первой заявки, а только потом начнет работу со второй. При этом если вторую заявку сделать рыночной, то блокировки не происходит, она сразу выполняется до лимитированной. При этом заявки успешно активируются. Возможно это продолжение бага Не регистрируется вторая и далее заявка EmulationTrader Тестировал только для EmulationTrader. В понедельник, если время будет, попробую для real time testing, если и там проявится, то это для меня будет критической ошибкой. Зараннее спасибо.

本主题对您有帮助吗?

分享主题

评论 (4)

登录创建账户, 登录或注册以发表评论

exarh
exarh 作者

Извиняюсь за рефлектор) Посмотрел, возможную ошибку нашел: В классе MarketEmulator объявлено поле IEnumerable<Trade> - список новых сделок на бирже, который обновляется в методе UpdateTrades Ну а далее есть метод Emulate(), в котором идет пробежка по все зарегистрированным сделкам - вызывается дочерний метод. В нем для лимитированных заявок if (xxx.Type == OrderTypes.Limit) этот список копируется в локальный IEnumerable<Trade> и тупо очищается (= null), и таким образом для следующей лимитированной заявки сделок и не остается.

Mikhail Sukhov
Mikhail Sukhov

Постучитесь в скайп mika_soukhov. Я дам сырцы нового MarketEnumalor, из 4.1.

exarh
exarh 作者

Mikhail Sukhov: Постучитесь в скайп mika_soukhov. Я дам сырцы нового MarketEnumalor, из 4.1. Спасибо за быстрый ответ. Но раз дело только в MarketEnumalor, я дождусь следующего релиза. Я не такой хакер, чтобы подменять (переопределять) одни классы другими в .NET - библиотеках. Я в основном на java пишу.

Mikhail Sukhov
Mikhail Sukhov

exarh:

Mikhail Sukhov: Постучитесь в скайп mika_soukhov. Я дам сырцы нового MarketEnumalor, из 4.1. Спасибо за быстрый ответ. Но раз дело только в MarketEnumalor, я дождусь следующего релиза. Я не такой хакер, чтобы подменять (переопределять) одни классы другими в .NET - библиотеках. Я в основном на java пишу.

Я мало что понял из написанного.