Как установить отложенный ордер при тестировании на истории? Тестирую на Н1
protected override void OnStarted()
{
_candleManager
.WhenCandlesFinished(_series)
.Do(ProcessCandle)
.Apply(this);
this
.WhenNewMyTrade()
.Do(ProcessNewTrade)
.Apply(this);
base.OnStarted();
}
private void ProcessCandle(Candle candle) { ..Некоторое условие которое наступает на свече 29.01.2019 15:00:00 var order = this.CreateOrder(Sides.Buy, 211.50m, 1); order.Type = OrderTypes.Conditional; order.Condition = new EmulationOrderCondition ;
private void ProcessNewTrade(MyTrade trade) { ..Однако здесь сделка происходит по 209.83 на следующей свече (209.82 - цена открытия следующей свечи(16:00:00) + 0.01(SpreadSize) .. Но вход должен произойти только на 17:00:00 } }
Вот Лог: из него видно, что свеча перебивающая 211.50 только в 17:00:00
0001/01/01 00:00:00.000| |HistoryEmulationConnector|Connect
0001/01/01 00:00:00.000| |HistoryBasketMessageAdapter|Connecting 'EmulationMessageAdapter'.
0001/01/01 00:00:00.000| |HistoryBasketMessageAdapter|Connected to 'EmulationMessageAdapter'.
0001/01/01 00:00:00.000| |HistoryEmulationConnector|Lookup 'PortfolioLookup,T(L)=2019.01.01 00:00:00.000,Name=,TransId=1,Curr=,Board=,IsSubscribe=False' for 'EmulationMessageAdapter'.
0001/01/01 00:00:00.000| |HistoryEmulationConnector|Lookup 'OrderStatus,T(L)=2019.01.01 00:00:00.000,Sec=S#:@, Native:,Type:,OrderTransId=0,TransId=2,OrderId=,TransId=2' for 'EmulationMessageAdapter'.
0001/01/01 00:00:00.000| |HistoryBasketMessageAdapter|Connecting 'История (c 01.01.2019 0:00:00 +00:00 по 25.03.2019 0:00:00 +00:00)'.
0001/01/01 00:00:00.000| |HistoryBasketMessageAdapter|Connected to 'История (c 01.01.2019 0:00:00 +00:00 по 25.03.2019 0:00:00 +00:00)'.
2019/01/01 00:00:00.000| |HistoryEmulationConnector|Lookup 'SecurityLookup,T(L)=2019.01.01 00:00:00.000,Sec=S#:@, Native:,Type:,TransId=3,SecId=S#:@, Native:,Type:,Name=,SecType=,ExpDate=' for 'История (c 01.01.2019 0:00:00 +00:00 по 25.03.2019 0:00:00 +00:00)'.
2019/01/01 00:00:00.000| |HistoryEmulationConnector|Создан новый портфель test account.
2019/01/01 00:00:00.000|Debug |HS_SBER@TQBR_test account|Переход из состояния Stopped в Started.
2019/01/01 00:00:00.000| |HS_SBER@TQBR_test account|Стратегия Запущена. [0,-1]. Позиция 0.
2019/01/01 00:00:00.000| |HistoryMessageAdapter|Origin tf: 01:00:00
2019/01/01 00:00:00.000| |HistoryEmulationConnector|Изменение состояния эмуляции Stopped -> Starting
2019/01/01 00:00:00.000| |HistoryEmulationConnector|Изменение состояния эмуляции Starting -> Started
2019/03/28 12:28:39.363| |CachedBasketMarketDataStorage1|Loading 01.01.2019 0:00:00 .... 2019/03/28 12:28:39.499| |CachedBasketMarketDataStorage1|Loading 29.01.2019 0:00:00
....
2019/01/29 11:00:00.000| |HS_SBER@TQBR_test account|Новая свеча 01/29/2019 10:00:00 +03:00: SBER@TQBR 209.71;209.71;207.50;207.72; объем 9204220
2019/01/29 12:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Законченные свечи TimeFrameCandle_SBER@TQBR_01-00-00 (0x3F6A66A)'. Активация.
2019/01/29 12:00:00.000| |HS_SBER@TQBR_test account|Новая свеча 01/29/2019 11:00:00 +03:00: SBER@TQBR 207.75;208.89;206.91;208.84; объем 7600920
2019/01/29 13:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Законченные свечи TimeFrameCandle_SBER@TQBR_01-00-00 (0x3F6A66A)'. Активация.
2019/01/29 13:00:00.000| |HS_SBER@TQBR_test account|Новая свеча 01/29/2019 12:00:00 +03:00: SBER@TQBR 208.84;209.65;208.60;209.50; объем 6430830
2019/01/29 14:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Законченные свечи TimeFrameCandle_SBER@TQBR_01-00-00 (0x3F6A66A)'. Активация.
2019/01/29 14:00:00.000| |HS_SBER@TQBR_test account|Новая свеча 01/29/2019 13:00:00 +03:00: SBER@TQBR 209.49;210.53;209.00;210.17; объем 5241780
2019/01/29 15:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Законченные свечи TimeFrameCandle_SBER@TQBR_01-00-00 (0x3F6A66A)'. Активация.
2019/01/29 15:00:00.000| |HS_SBER@TQBR_test account|Новая свеча 01/29/2019 14:00:00 +03:00: SBER@TQBR 210.15;210.40;209.50;210.40; объем 2324240
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Законченные свечи TimeFrameCandle_SBER@TQBR_01-00-00 (0x3F6A66A)'. Активация.
2019/01/29 16:00:00.000| |HS_SBER@TQBR_test account|Новая свеча 01/29/2019 15:00:00 +03:00: SBER@TQBR 210.36;210.52;209.63;209.82; объем 2880690
2019/01/29 16:00:00.000| |HS_SBER@TQBR_test account|Регистрация новой Conditional (0x2B7A1F2) заявки на Buy с ценой 211,50 и объемом 1. Buy Stop Enter
2019/01/29 16:00:00.000| |HistoryEmulationConnector|RegisterOrder: 0/ SBER@TQBR test account Покупка Цена=211.50 Объем=1 Сост=None Бал=0 Тип=Conditional
2019/01/29 16:00:00.000| |HistoryEmulationConnector|New order: 8/ SBER@TQBR test account Покупка Цена=211.50 Объем=1 Сост=Pending Бал=1 Тип=Conditional
2019/03/28 12:28:45.288| |SecurityMarketEmulator|Заявка 8 зарегистрирована.
2019/03/28 12:28:45.300| |SecurityMarketEmulator|Заявка 8. Исполнение объема 1 по цене 209,83.
2019/03/28 12:28:45.302| |SecurityMarketEmulator|Заявка 8 полностью исполнена.
2019/03/28 12:28:45.306| |SecurityMarketEmulator|Сделка 1 заявки 8 P=209,83 V=1.
2019/01/29 16:00:00.000| |HistoryEmulationConnector|Order changed: 8/1 SBER@TQBR test account Покупка Цена=211.50 Объем=1 Сост=Done Бал=0 Тип=Conditional
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Отмена заявки 8/1 (0xBF7771) OR Полное исполнение 8/1 (0xAE65B0) OR Ошибка регистрации. 8/1 (0x27B1BBF)'. Активация.
2019/01/29 16:00:00.000| |HS_SBER@TQBR_test account|Заявка 8 (0x2B7A1F2) больше не активна.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Отмена заявки 8/1 (0xBF7771) OR Полное исполнение 8/1 (0xAE65B0) OR Ошибка регистрации. 8/1 (0x27B1BBF)'. Удаляется.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Отмена заявки 8/1 (0xBF7771)'. Освободило ресурсы.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Полное исполнение 8/1 (0xAE65B0)'. Освободило ресурсы.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Ошибка регистрации. 8/1 (0x27B1BBF)'. Освободило ресурсы.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Отмена заявки 8/1 (0xBF7771) OR Полное исполнение 8/1 (0xAE65B0) OR Ошибка регистрации. 8/1 (0x27B1BBF)'. Освободило ресурсы.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Ошибка снятия заявки 8/1 (0x122DB4B)'. Удаляется.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Ошибка снятия заявки 8/1 (0x122DB4B)'. Освободило ресурсы.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Ошибка снятия заявки 8/1 (0x122DB4B)'. Удалено.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Отмена заявки 8/1 (0xBF7771) OR Полное исполнение 8/1 (0xAE65B0) OR Ошибка регистрации. 8/1 (0x27B1BBF)'. Удаление.
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Ошибка снятия заявки 8/1 (0x122DB4B)'. Удаление.
2019/01/29 16:00:00.000|Error |HistoryEmulationConnector|System.InvalidOperationException: Сообщение 'Execution,T(L)=2019/01/29 16:00:00.000,T(S)=2019/01/29 16:00:00.000,(Transaction),Sec=S#:SBER@TQBR, Native:,Type:,Ord=1/0/8,Fail=,Price=0,OrdVol=,TrVol=,Bal=0,TId=,Pf=test account,TPrice=,UId=,State=Done' привело к ошибке обработки. ---> System.ArgumentException: Элемент с тем же ключом уже был добавлен.
в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
в System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) в System.Collections.Generic.Dictionary2.Add(TKey key, TValue value)
в Ecng.Collections.SynchronizedDictionary2.Add(TKey key, TValue value) в StockSharp.Algo.EntityCache.ProcessOrderMessage(Order order, Security security, ExecutionMessage message, Int64 transactionId, Tuple3& pfInfo)
в StockSharp.Algo.Connector.ProcessOrderMessage(Order o, Security security, ExecutionMessage message, Int64 transactionId, Boolean isStatusRequest)
в StockSharp.Algo.Connector.ProcessTransactionMessage(Order order, Security security, ExecutionMessage message, Int64 transactionId, Boolean isStatusRequest)
в StockSharp.Algo.Connector.ProcessExecutionMessage(ExecutionMessage message)
в StockSharp.Algo.Connector.OnProcessMessage(Message message)
--- Конец трассировки внутреннего стека исключений ---
2019/01/29 16:00:00.000| |HistoryEmulationConnector|New own trade: 29.01.2019 16:00:00 +03:00 1 209,83 1 от заявки 8/1 SBER@TQBR test account Покупка Цена=211,50 Объем=1 Сост=Done Бал=0 Тип=Conditional
2019/01/29 16:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Новые сделки стратегии HS_SBER@TQBR_test account (0x21CF1C8)'. Активация.
2019/01/29 16:00:00.000| |HS_SBER@TQBR_test account|Новая Buy сделка 1 по цене 209,83 на 1 заявки 8.
2019/01/29 17:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Законченные свечи TimeFrameCandle_SBER@TQBR_01-00-00 (0x3F6A66A)'. Активация.
2019/01/29 17:00:00.000| |HS_SBER@TQBR_test account|Новая свеча 01/29/2019 16:00:00 +03:00: SBER@TQBR 209.82;211.20;209.81;210.96; объем 5350460
2019/01/29 18:00:00.000|Debug |HS_SBER@TQBR_test account|Правило 'Законченные свечи TimeFrameCandle_SBER@TQBR_01-00-00 (0x3F6A66A)'. Активация.
2019/01/29 18:00:00.000| |HS_SBER@TQBR_test account|Новая свеча 01/29/2019 17:00:00 +03:00: SBER@TQBR 210.96;213.30;210.96;212.94; объем 11824230
Может не так регистрирую стоп заявку?
Kommentare (0)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Noch keine Kommentare. Seien Sie der Erste!