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


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

Теги:


Спасибо:




1 2  >
Mikhail Sukhov

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


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


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

xaxa

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


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

Mikhail Sukhov

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


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


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

xaxa

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


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

xaxa

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


ProcessDataError - ничего не выводит
Спасибо:

Mikhail Sukhov

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


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


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

xaxa

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


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;
}
Спасибо:

Mikhail Sukhov

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


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

xaxa

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


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

Mikhail Sukhov

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


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


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

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

loading
clippy