Здравствуйте. При работе 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, если и там проявится, то это для меня будет критической ошибкой. Зараннее спасибо.
Comentarios (4)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
Извиняюсь за рефлектор) Посмотрел, возможную ошибку нашел: В классе MarketEmulator объявлено поле IEnumerable<Trade> - список новых сделок на бирже, который обновляется в методе UpdateTrades Ну а далее есть метод Emulate(), в котором идет пробежка по все зарегистрированным сделкам - вызывается дочерний метод. В нем для лимитированных заявок if (xxx.Type == OrderTypes.Limit) этот список копируется в локальный IEnumerable<Trade> и тупо очищается (= null), и таким образом для следующей лимитированной заявки сделок и не остается.
Постучитесь в скайп mika_soukhov. Я дам сырцы нового MarketEnumalor, из 4.1.
Я мало что понял из написанного.