Михаил, добрый день!
Я использую котирование вида BestByPriceQuotingStrategy. Могу ли я сравнивать приказ, который я отослал, с тем, что я получаю в NewMyTrades? Если нет, то как связать посланный приказ с тем, что пришло?
Пример кода:
strategy.NewMyTrades += OnNewMyTrades;
...
base.ChildStrategies.Add(new BestByPriceQuotingStrategy(_OrderInit, 4.Pips(_OrderInit.Security)));
...
private void OnNewMyTrades(IEnumerable<MyTrade> trades)
{
foreach (MyTrade trade in trades)
{
if (trade.Order.IsMatched())
{
Strategy strategy = StrategyManager.Strategies.FirstOrDefault(s => s.PositionManager.Trades.Any(t => t == trade));
if (strategy != null)
{
// =============== МОГУ ЛИ Я ТАК СРАВНИВАТЬ?
if (trade.Order == _OrderInit)
{
..........
}
}
} // end if is matched
} // end foreach
}
Comentarios (5)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
Вы создаете котирование, которое, естественно, пересоздает заявки (передаваемая заявка - это лишь информация о том, какой объем нужно скотировать). Поэтому и подписываться нужно на событие сделок у самого BestByPriceQuotingStrategy.
Будет лучше, если Вы приведете полностью смысл такого сравнения?
Когда я ставлю заявку на исполнение, у меня есть еще информация, открытие это новой позиции или закрытие существующей (с определенным внутренним id). Когда я получаю NewMyTrades, мне надо знать этот id.
Есть какие-нибудь поля, которые передаются и сохраняются после исполнения? ExtensionInfo, Comment?
А чем не устраивается событие сделок у дочерней стратегии?
Вроде устраивает. Спасибо!