Не создает стоп "по исполнению"
Atom Ответить
10.08.2011


1. Создаю лимитированную заявку:
Код
Order t_order = new Order
{
	Type = OrderTypes.Limit,
	Portfolio = portfolio,
	Price = _price,
	Security = instrument,
	Volume = _vol,
	Direction = _direction,
};
Core.Trader.RegisterOrder(t_order);

Все ОК, создается

2. Создаю стоп по исполнению для лимитированной заявки:
Код
t_stopOrder = new Order
{
	Type = OrderTypes.Conditional,
	Portfolio = portfolio,
	Volume = _vol,
	Security = instrument,
	Price = instrument.ShrinkPrice(_priceSL + slippage),
	Direction = _direction, // Судя по хелпу - игнорируется
	StopCondition = new QuikStopCondition
	{
		ConditionOrder = t_order,
		ConditionOrderPartiallyMatched = true,
		ConditionOrderUseMatchedBalance = true,
		Type = QuikStopConditionTypes.TakeProfitStopLimit,
		ExpiryDate = DateTime.MaxValue,
		ActiveTime = null,
		StopLimitPrice = instrument.ShrinkPrice(_priceSL),
		StopPrice = instrument.ShrinkPrice(_priceTP),
		Offset = 0,
		Spread = 5,
	},
};

Тут выдает ошибку:
Код
CREATE STOP ERROR: Код ошибки WrongSyntax Сообщение ACCOUNT=SPBFUT006А4; CLIENT_CODE=SPBFUT006А4; TRANS_ID=61069504; CLASSCODE=SPBFUT; SECCODE=SRU1; QUANTITY=1; OPERATION=B; ACTION=NEW_STOP_ORDER; STOPPRICE=9055; PRICE=9026; EXPIRY_DATE=GTC; IS_ACTIVE_IN_TIME=NO; STOPPRICE2=9070; BASE_ORDER_KEY=4640126731; USE_BASE_ORDER_BALANCE=YES; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=YES; OFFSET=0; OFFSET_UNITS=PRICE_UNITS; SPREAD=5; SPREAD_UNITS=PRICE_UNITS; STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_AND_STOP_LIMIT_ORDER;

Теги:


Спасибо:




5 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 10.08.2011
Ответить


Supervisor Перейти
Тут выдает ошибку:
Код
CREATE STOP ERROR: Код ошибки WrongSyntax Сообщение ACCOUNT=SPBFUT006А4; CLIENT_CODE=SPBFUT006А4; TRANS_ID=61069504; CLASSCODE=SPBFUT; SECCODE=SRU1; QUANTITY=1; OPERATION=B; ACTION=NEW_STOP_ORDER; STOPPRICE=9055; PRICE=9026; EXPIRY_DATE=GTC; IS_ACTIVE_IN_TIME=NO; STOPPRICE2=9070; BASE_ORDER_KEY=4640126731; USE_BASE_ORDER_BALANCE=YES; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=YES; OFFSET=0; OFFSET_UNITS=PRICE_UNITS; SPREAD=5; SPREAD_UNITS=PRICE_UNITS; STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_AND_STOP_LIMIT_ORDER;


А в Квик терминале можете создать такую заявку? Пришлите скрин с ее настройками (окно ввода)?
Спасибо:

Supervisor

Фотография
Дата: 11.08.2011
Ответить


Через квик создает
Автор топика
Спасибо:

Supervisor

Фотография
Дата: 11.08.2011
Ответить


Еще замечу, что такая же но обычная стоп-заявка через S# создается нормально.
Стоп по исполнению от обычного стопа отличается у меня только тремя строчками:
Код
ConditionOrder = t_order,
ConditionOrderPartiallyMatched = true,
ConditionOrderUseMatchedBalance = true,
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 11.08.2011
Ответить


Я думаю проблема в Order.Volume. Для этого типа стоп заявки объема не должен выставляться.
Спасибо:

VassilSanych

Фотография
Дата: 26.02.2013
Ответить


Пустой объём вызывает ошибку, когда срабатывает условие.
Код
2013/02/26 18:03:05.697|       |SS_RIH3@RTS_SPBFUT00066|Снятие всех активных заявок.
2013/02/26 18:03:05.704|       |SS_RIH3@RTS_SPBFUT00066|Регистрация новой Limit (0x3D1A0AF) заявки на Buy с ценой 152630 и объемом 1. 
2013/02/26 18:03:05.976|       |StrategyManager|Status:Started, PnL:0, Slippage:0, Position:0, Latency:00:00:00.2453681, Latency
2013/02/26 18:03:05.978|       |SS_RIH3@RTS_SPBFUT00066|Регистрация новой Conditional (0x438A50) заявки на Sell с ценой 152760 и объемом 0. 
2013/02/26 18:03:10.848|       |QuikManager|847 Сделка 26.02.2013 18:03:10 83391512 152630 1 от заявки 64514941/2007839552 Покупка Цена=152630 Объем=1 Сост=Active Бал=1
2013/02/26 18:03:10.851|       |SS_RIH3@RTS_SPBFUT00066|Новая Buy сделка 83391512 по цене 152630 на 1 заявки 64514941.
2013/02/26 18:03:14.231|       |SS_RIH3@RTS_SPBFUT00066|Position 0, Portfolio.GetPosition() 1, Trader.Portfolios...GetPosition() 1, PositionManager.Position 0
2013/02/26 18:03:14.231|       |SS_RIH3@RTS_SPBFUT00066|Сигнал Sell
2013/02/26 18:03:14.232|       |SS_RIH3@RTS_SPBFUT00066|Position 0, Portfolio.GetPosition() 1, Trader.Portfolios...GetPosition() 1, PositionManager.Position 0
2013/02/26 18:03:14.233|       |SS_RIH3@RTS_SPBFUT00066|Position 0, Portfolio.GetPosition() 1, Trader.Portfolios...GetPosition() 1, PositionManager.Position 0
2013/02/26 18:03:14.233|       |SS_RIH3@RTS_SPBFUT00066|Position 0, Portfolio.GetPosition() 1, Trader.Portfolios...GetPosition() 1, PositionManager.Position 0
2013/02/26 18:03:20.131|       |SS_RIH3@RTS_SPBFUT00066|Position 0, Portfolio.GetPosition() 1, Trader.Portfolios...GetPosition() 1, PositionManager.Position 0
2013/02/26 18:03:20.131|       |SS_RIH3@RTS_SPBFUT00066|Position 0, Portfolio.GetPosition() 1, Trader.Portfolios...GetPosition() 1, PositionManager.Position 0
2013/02/26 18:03:21.119|       |SS_RIH3@RTS_SPBFUT00066|Position 0, Portfolio.GetPosition() 1, Trader.Portfolios...GetPosition() 1, PositionManager.Position 0
2013/02/26 18:03:21.120|       |SS_RIH3@RTS_SPBFUT00066|Position 0, Portfolio.GetPosition() 1, Trader.Portfolios...GetPosition() 1, PositionManager.Position 0
2013/02/26 18:03:26.151|       |SS_RIH3@RTS_SPBFUT00066|Отмена заявки 64514941.
2013/02/26 18:03:26.155|Error  |QuikManager|Ошибка регистрации заявки: System.ArgumentException: Объем заявки не может быть нулевым.
Имя параметра: order
   в StockSharp.Algo.Helper.ChechOrderState(Order order, Boolean checkVolume) в e:\Projects\C_Projects\StockSharp\Sources\Algo\Helper.cs:строка 78
   в StockSharp.Algo.Helper.CheckOnNew(Order order, Boolean checkVolume) в e:\Projects\C_Projects\StockSharp\Sources\Algo\Helper.cs:строка 86
   в StockSharp.Algo.BaseTrader.RegisterOrder(Order order) в e:\Projects\C_Projects\StockSharp\Sources\Algo\BaseTrader.cs:строка 1358
2013/02/26 18:03:26.163|       |StrategyManager|Status:Started, PnL:-40, Slippage:0, Position:0, Latency:00:00:00.2453681, ErrorState
2013/02/26 18:03:26.156|Error  |SS_RIH3@RTS_SPBFUT00066|Заявка 0 (0x438A50) не была принята по причине System.ArgumentException: Объем заявки не может быть нулевым.
Имя параметра: order
   в StockSharp.Algo.Helper.ChechOrderState(Order order, Boolean checkVolume) в e:\Projects\C_Projects\StockSharp\Sources\Algo\Helper.cs:строка 78
   в StockSharp.Algo.Helper.CheckOnNew(Order order, Boolean checkVolume) в e:\Projects\C_Projects\StockSharp\Sources\Algo\Helper.cs:строка 86
   в StockSharp.Algo.BaseTrader.RegisterOrder(Order order) в e:\Projects\C_Projects\StockSharp\Sources\Algo\BaseTrader.cs:строка 1358.
2013/02/26 18:03:26.165|       |QuikManager|245 Заявка 64514941/2007839552 Покупка Цена=152630 Объем=1 Сост=Done Бал=0
2013/02/26 18:03:26.167|       |QuikManager|245 Заявка 64514941/2007839552 Покупка Цена=152630 Объем=1 Сост=Done Бал=0
2013/02/26 18:03:26.168|       |SS_RIH3@RTS_SPBFUT00066|Новая позиция: SPBFUT00066-RIH3@RTS=1.


Другие параметры:
См. соседнюю ветку
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy