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


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

Теги:


Спасибо:




13 Ответов
Mikhail Sukhov

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


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


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

xaxa

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


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

Mikhail Sukhov

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


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


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

xaxa

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


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

xaxa

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


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

Mikhail Sukhov

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


xaxa Перейти
ProcessDataError - ничего не выводит


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

xaxa

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


Код

....

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


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

xaxa

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


Вообщем пришел к тому, что у меня работает DerivedOrder только на ММВБ. Как ни странно при запуске ФОРТСе DerivedOrder стабильно возвращает null. А есть такие у кого на ФОРТС все ок? Кстати а можно как то это обойти?
Автор топика
Спасибо:

Mikhail Sukhov

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


xaxa Перейти
Вообщем пришел к тому, что у меня работает DerivedOrder только на ММВБ. Как ни странно при запуске ФОРТСе DerivedOrder стабильно возвращает null. А есть такие у кого на ФОРТС все ок? Кстати а можно как то это обойти?


Если попробовать Sample на FORTS такая же проблема?
Спасибо:

xaxa

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


Проблема оказалась в том, что на таблице заявок был фильтр только на акции
Автор топика
Спасибо:


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

loading
clippy