Одновременная отправка 2-х заявок
Версия 4.1 вчерашняя.
Пытаюсь сделать простенький арбитраж без котирования на тестовом сервере Плазы.
Дожидаюсь нужного состояния 2-х стаканов по инструментам и нужно одновременно отправить 2 заявки, но 2-я заявка уходит значительно позже 1-ой. Может, что-то не так делаю?
Code
//если покупаем 1-й инструмент и продаем 2-й
if (условие входа)
{
log("Вход 1-й покупаем, 2-й продаем");
noga1_buy(0,0);
noga2_sell(0,0);
}
void noga1_buy(int pos, decimal price)
{
if (pos == 0) pos = 1;
if (price == 0) price = _ins1.BestAsk.Price;
var order1 = new Order
{
Portfolio = _portfolio,
Price = price,
Security = _ins1,
Volume = unit1 * pos,
Direction = OrderDirections.Buy,
};
log("покупаем 1-ю ногу " + order1.TransactionId + " по цене" + order1.Price + " int1_pos=" + int1_pos + " int2_pos=" + int2_pos + " delta_theory=" + delta_theory + " " + order1.Direction + " delta_real=" + delta_real);
Trader.RegisterOrder(order1);
log("Заявка отправлена");
}
void noga2_sell(int pos, decimal price)
{
if (pos == 0) pos = 1;
if (price == 0) price = _ins2.BestBid.Price;
var order2 = new Order
{
Portfolio = _portfolio,
Price = price,
Security = _ins2,
Volume = unit2 * pos,
Direction = OrderDirections.Sell,
};
log("продаем 2-ю ногу " + order2.TransactionId + " по цене" + order2.Price + " int1_pos=" + int1_pos + " int2_pos=" + int2_pos + " delta_theory=" + delta_theory + " " + order2.Direction + " delta_real=" + delta_real);
Trader.RegisterOrder(order2);
log("Заявка отправлена");
}
void log(string s)
{
String current_time_str = DateTime.Now.ToString("HH:mm:ss.fff");
textBox1.AppendText(current_time_str + " " + s + Environment.NewLine);
}
А вот что выводит лог:
12:08:43.994 Вход 1-й покупаем, 2-й продаем
12:08:43.999 покупаем 1-ю ногу 0 по цене16475 int1_pos=0 int2_pos=0 delta_theory=-863,5 Buy delta_real=-867
12:08:44.367 Заявка отправлена
12:08:44.369 продаем 2-ю ногу 0 по цене17348 int1_pos=0 int2_pos=0 delta_theory=-863,5 Sell delta_real=-867
12:08:44.587 Заявка отправлена
Видно, что Trader.RegisterOrder задерживает процесс на 200-300 милсекунд.
Режим шлюза д.б. асинхронный, по крайней мере при установке выбор не предоставил.