Магия S# или что то другое?
В последнее время с моей стратегией твориться сплошная магия...
Одну магическую штуку, я обнаружил совсем недавно!
Вот пример кода:
Code
var activeOrders = (from orders in this.Orders
where (orders.State == OrderStates.Active)
select orders).ToList();
if (activeOrders.Count == 0)
{
//что то
}
else
{
var lastOrderPrice = activeOrders.FirstOrDefault().Price;
var bestAsk = this.Security.GetMarketDepth().BestAsk;
var bestBid = this.Security.GetMarketDepth().BestBid;
//если спрэд удовлетворяет условия
if (e.SpreadPrice >= Convert.ToDecimal(this.Security.MinStepSize * Properties.Settings.Default.SignalSpreadSize))
{
//если наша заявка стоит первой на покупку или продажу
if (lastOrderPrice == bestAsk.Price || lastOrderPrice == bestBid.Price)
{
//что то делаем
}
// еще что то и т.д.
}
}
Главное то, что заявку стратегия должна выкидывать только одну (и чаще всего так и делает), а если уже была выставлена заявка, то важно знать первая она или нет? И var
lastOrderPrice это определяет. Но если я стою, к примеру первый на покупку, то
var bestBid почему то видит заявку, которая стоит за моей заявкой. Вот она - магия, или нет?
Возможно, я просто плохо знаю и понимаю работу S#, но мне кажется, что такой код вполне должен нормально работать.