Коллеги, прошу помощи!
Есть много условий на выставление и изменение(перерегистрация)заявок. Все работает но в один момент заявка почему-то не выставляется. Понял что скорость анализа данных и выполнения условий мала.
Код
private void button1_Click(object sender, RoutedEventArgs e)
{
bool flag=false;
Globals.Trader.QuotesChanged += depth =>
{
List<MarketDepthPair> t = Globals.Trader.GetMarketDepth(security).GetTopPairs(1).ToList();
foreach (MarketDepthPair t1 in t)
{
decimal spread = t1.Ask.Price - t1.Bid.Price;
if (условие 1)
{
if ( flag==false)
{
Dispatcher.BeginInvoke(new Action(() =>
{
order_buy = new Order
{
Portfolio = Portfolio,
Price = ...,
Security = security,
Volume = 1,
Direction = OrderDirections.Buy,
};
Globals.Trader.RegisterOrder(order_buy);
order_sell = new Order
{
Portfolio = Portfolio,
Price = ...,
Security = security,
Volume = 1,
Direction = OrderDirections.Sell,
};
Globals.Trader.RegisterOrder(order_sell);
}));
flag = true;
}
else if(order_buy.State == OrderStates.Done && order_sell.State==OrderStates.Active)
{
if (условие)
{
Dispatcher.BeginInvoke(new Action(() =>
{
Globals.Trader.CancelOrder(order_sell);
order_sell = new Order
{
Portfolio = Portfolio,
Price = ....,
Security = security,
Volume = 1,
Direction = OrderDirections.Sell,
};
Globals.Trader.RegisterOrder(order_sell);
}));
}
flag = true;
}
else if (order_sell.State == OrderStates.Done && order_buy.State == OrderStates.Active)
{
if (условие)
{
Dispatcher.BeginInvoke(new Action(() =>
{
Globals.Trader.CancelOrder(order_buy);
order_buy = new Order
{
Portfolio = Portfolio,
Price = ....,
Security = security,
Volume = 1,
Direction = OrderDirections.Buy,
};
Globals.Trader.RegisterOrder(order_buy);
}));
flag = true;
}
}
else if (order_sell.State == OrderStates.Done && order_buy.State == OrderStates.Done)
{
flag = false;
}
}
}
};
}
Понимаю, что if else - очень замедляет switch не подойдет, анализирую несколько переменных. Думаю создать события на каждое из условий. Может есть уже какие нибудь стандартизированные методы решения такой задачи?
Заранее благодарю!