Натолкнулся еще на 3 неточности (проблемы). Подключаюсь к реальному счету в режиме Симуляции.
1. Иногда сделки проходят по неправильным ценам. У фьючерса RIM7 цена должна быть кратка 10, но иногда это не так.
Код
Код private void Connector_NewMyTrades(IEnumerable<MyTrade> trades)
{
foreach (var trade in trades)
{
Console.WriteLine(@"{0} Прошла сделка {5} {4} по цене {1}, объём {2}, направление {3}.",
TimeHelper.Now.TimeOfDay, trade.Trade.Price, trade.Trade.Volume, trade.Order.Direction,
trade.Trade.Security.Code, trade.Trade.Id);
}
}
Окно вывода
14:06:32.6568830 Прошла сделка 11 RIM7 по цене 108588, объём 2, направление Sell.
14:06:39.7736608 Прошла сделка 12 RIM7 по цене 108610, объём 1, направление Buy.
14:06:39.7791045 Прошла сделка 13 RIM7 по цене 108610, объём 1, направление Buy.
14:07:01.4183506 Прошла сделка 14 RIM7 по цене 108590, объём 2, направление Sell.
14:07:14.6335282 Прошла сделка 15 RIM7 по цене 108552, объём 2, направление Buy.
14:07:15.4650348 Прошла сделка 16 RIM7 по цене 108530, объём 1, направление Sell.
14:07:15.4652660 Прошла сделка 17 RIM7 по цене 108529, объём 1, направление Sell.
2. Вторая проблема не могу получить AveragePrice
20:00:01.9982056 Заявка Sell RIM7 полностью исполнена Volume=1. Позиция -1 AveragePrice=0
Код для проверки
...
var order = this.SellAtMarket(volume);
...
Код order
.WhenMatched(this.Connector)
.Do(() =>
{
Console.WriteLine(@"{0} Заявка {2} {3} полностью исполнена Volume={4}. Позиция {1} AveragePrice={5}", TimeHelper.Now.TimeOfDay, PositionManager.Position, order.Direction, order.Security.Code, order.Volume, TraderHelper.GetAveragePrice(order, Connector) );
})
.Once()
.Apply(this);
3. Если сделать переворотную систему (мы все время в рынке), т.е. первый вход 1 контрактом Volumeу=1, а затем все время переворачиваемся 2*Volume, то через некоторое время приблизительно на 30-40 перевороте. Не хватает денег ...
2017/03/16 20:13:57.674| |S_RIM7@FORTS_Симулятор|Новая Buy сделка 24 по цене 109380 на 2 заявки 71722071.
2017/03/16 20:14:00.464| |S_RIM7@FORTS_Симулятор|Регистрация новой Market (0xDF6003) заявки на Sell с ценой 0 и объемом 2.
2017/03/16 20:14:00.465| |S_RIM7@FORTS_Симулятор|Новая позиция: (S#:RIM7@FORTS, Native:,Type:Future, Симулятор)=-1.
2017/03/16 20:14:00.465| |S_RIM7@FORTS_Симулятор|Заявка 71722072 (0xDF6003) больше не активна.
2017/03/16 20:14:00.465| |S_RIM7@FORTS_Симулятор|Новая Sell сделка 25 по цене 109360 на 1 заявки 71722072.
2017/03/16 20:14:00.465| |S_RIM7@FORTS_Симулятор|Новая Sell сделка 26 по цене 109359 на 1 заявки 71722072.
2017/03/16 20:14:16.808| |S_RIM7@FORTS_Симулятор|Регистрация новой Market (0x6FABE9) заявки на Buy с ценой 0 и объемом 2.
2017/03/16 20:14:16.808| |S_RIM7@FORTS_Симулятор|Новая позиция: (S#:RIM7@FORTS, Native:,Type:Future, Симулятор)=1.
2017/03/16 20:14:16.808| |S_RIM7@FORTS_Симулятор|Заявка 71722073 (0x6FABE9) больше не активна.
2017/03/16 20:14:16.808| |S_RIM7@FORTS_Симулятор|Новая Buy сделка 27 по цене 109380 на 2 заявки 71722073.
2017/03/16 20:15:07.679| |S_RIM7@FORTS_Симулятор|Регистрация новой Market (0x2CE1F40) заявки на Sell с ценой 0 и объемом 2.
2017/03/16 20:15:07.680| |S_RIM7@FORTS_Симулятор|Новая позиция: (S#:RIM7@FORTS, Native:,Type:Future, Симулятор)=-1.
2017/03/16 20:15:07.680| |S_RIM7@FORTS_Симулятор|Заявка 71722074 (0x2CE1F40) больше не активна.
2017/03/16 20:15:07.680| |S_RIM7@FORTS_Симулятор|Новая Sell сделка 28 по цене 109380 на 2 заявки 71722074.
2017/03/16 20:15:20.863| |S_RIM7@FORTS_Симулятор|Регистрация новой Market (0x1500FC8) заявки на Buy с ценой 0 и объемом 2.
2017/03/16 20:15:20.870|Error |S_RIM7@FORTS_Симулятор|Заявка 71722075 (0x1500FC8) не была зарегистрирована по причине 'Коллекция была изменена после создания экземпляра перечислителя.'.
2017/03/16 20:15:20.870| |S_RIM7@FORTS_Симулятор|Заявка 71722075 (0x1500FC8) больше не активна.
2017/03/16 20:15:20.906| |S_RIM7@FORTS_Симулятор|Регистрация новой Market (0x2CE342) заявки на Buy с ценой 0 и объемом 2.
2017/03/16 20:15:20.994| |S_RIM7@FORTS_Симулятор|Новая позиция: (S#:RIM7@FORTS, Native:,Type:Future, Симулятор)=0.
2017/03/16 20:15:20.994| |S_RIM7@FORTS_Симулятор|Заявка 71722076 (0x2CE342) больше не активна.
2017/03/16 20:15:20.994| |S_RIM7@FORTS_Симулятор|Новая Buy сделка 29 по цене 109420 на 1 заявки 71722076.
2017/03/16 20:15:20.994| |S_RIM7@FORTS_Симулятор|Регистрация новой Market (0x31A0F6C) заявки на Buy с ценой 0 и объемом 1.
2017/03/16 20:15:20.995| |S_RIM7@FORTS_Симулятор|Новая позиция: (S#:RIM7@FORTS, Native:,Type:Future, Симулятор)=0.
2017/03/16 20:15:20.995| |S_RIM7@FORTS_Симулятор|Заявка 71722077 (0x31A0F6C) больше не активна.
2017/03/16 20:15:21.041| |S_RIM7@FORTS_Симулятор|Регистрация новой Market (0x2E71A07) заявки на Buy с ценой 0 и объемом 1.
2017/03/16 20:15:21.041|Error |S_RIM7@FORTS_Симулятор|Заявка 71722078 (0x2E71A07) не была зарегистрирована по причине 'На счету Симулятор недостаточно денег для регистрации заявки 71722078. Необходимо 1006189.99, имеется 999685, заблокировано 992018.30.'.
2017/03/16 20:15:21.041| |S_RIM7@FORTS_Симулятор|Заявка 71722078 (0x2E71A07) больше не активна.
2017/03/16 20:15:21.483| |S_RIM7@FORTS_Симулятор|Регистрация новой Market (0x1998D3) заявки на Buy с ценой 0 и объемом 1.
2017/03/16 20:15:21.483|Error |S_RIM7@FORTS_Симулятор|Заявка 71722079 (0x1998D3) не была зарегистрирована по причине 'На счету Симулятор недостаточно денег для регистрации заявки 71722079. Необходимо 1006189.99, имеется 999685, заблокировано 992018.30.'.
2017/03/16 20:15:21.483| |S_RIM7@FORTS_Симулятор|Заявка 71722079 (0x1998D3) больше не активна.
Заранее благодарю за помощь.