Order.DerivedOrder = null для стоп заявки


Order.DerivedOrder = null для стоп заявки
Atom
1/19/2011


Столкнулся со странной ситуацией, что после выполнения условия стоп лосса DerivedOrder = null. то есть он не видит порожденную заявку. с чем это может быть связано?

Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 1/19/2011
Reply


xaxa Go to
Столкнулся со странной ситуацией, что после выполнения условия стоп лосса DerivedOrder = null. то есть он не видит порожденную заявку. с чем это может быть связано?


Таблица стоп заявок скорее всего неправильно оформлена. Verifier запускали?
Thanks:

xaxa

Avatar
Date: 1/19/2011
Reply


Да, Verifier выдает, что никаких ошибок нет. Пробовал и под РТС(файл настроек ртс) и под ММВБ(файл настроек ммвб). Режим работы синхронный. (На демо-серверах Цериха***)
Thanks:

Mikhail Sukhov

Avatar
Date: 1/19/2011
Reply


xaxa Go to
Да, Verifier выдает, что никаких ошибок нет. Пробовал и под РТС(файл настроек ртс) и под ММВБ(файл настроек ммвб). Режим работы синхронный. (На демо-серверах Цериха***)


ProcessDataError что-нибудь выводит? Состояние стоп заявки в роботе изменяется?
Thanks:

xaxa

Avatar
Date: 1/19/2011
Reply


После выполнения стоп-заявки ее состояние меняется на OrderStates.Done. ProcessDataError сейчас посмотрю...
Thanks:

xaxa

Avatar
Date: 1/19/2011
Reply


ProcessDataError - ничего не выводит
Thanks:

Mikhail Sukhov

Avatar
Date: 1/19/2011
Reply


xaxa Go to
ProcessDataError - ничего не выводит


Можете привести параметры инициализации стоп заявки? В этими условиями Sample работает?
Thanks:

xaxa

Avatar
Date: 1/19/2011
Reply


Code

....

stopLoss = CreateStopLimit(base.Security.ShrinkPrice(getCandleMiddle(secondCandle)), performReverseCount < reverseCount ? order.GetRealizedVolume() * 2 : order.GetRealizedVolume(), stopDirection);

.....
private Order CreateStopLimit(double stopPrice, int volume, OrderDirections direction)
{
double price = (direction == OrderDirections.Buy ? (stopPrice + podushka) : (stopPrice - podushka));

Order stopLossOrder = base.CreateOrder(direction, stopPrice);
stopLossOrder.Type = OrderTypes.Conditional;
stopLossOrder.Volume = volume;
stopLossOrder.StopCondition = new QuikStopCondition
{
Type = QuikStopConditionTypes.StopLimit,
StopPrice = stopPrice
};
return stopLossOrder;
}
Thanks:

Mikhail Sukhov

Avatar
Date: 1/19/2011
Reply


Sample c такими параметрами так же не работает?
Thanks:

xaxa

Avatar
Date: 1/19/2011
Reply


Попробовал Sample там все ок. Удивительно то, что на некоторых кругах DerivedOrder = null а на некоторых кругах он ловит порожденную заявку(например когда я в дебаге медленно прохожу круг). Такое ощущение что происходит это дело в асинхронном режиме. Хотя в дебаггере смотрю свойство base.Trader.isAsyncMode -оно установлено в false. Возможно ли такое в синхронном режиме что после проверки условия стоп лосса на OrderStates.Done DerivedOrder будет равен null?
Thanks:

Mikhail Sukhov

Avatar
Date: 1/20/2011
Reply


xaxa Go to
Попробовал Sample там все ок. Удивительно то, что на некоторых кругах DerivedOrder = null а на некоторых кругах он ловит порожденную заявку(например когда я в дебаге медленно прохожу круг). Такое ощущение что происходит это дело в асинхронном режиме. Хотя в дебаггере смотрю свойство base.Trader.isAsyncMode -оно установлено в false. Возможно ли такое в синхронном режиме что после проверки условия стоп лосса на OrderStates.Done DerivedOrder будет равен null?


IsAsyncMode - это в каком режиме будет использоваться Trans2Quik.dll. Эта DLL не предоставляет возможность получать данные. Поэтому данные получаются через ДДЕ, которые работает асинхронно независимо от IsAsyncMode.
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy