← Zurück

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (13)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

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

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

xaxa
xaxa Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

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

xaxa
xaxa Autor

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

xaxa
xaxa Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

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

xaxa
xaxa Autor

        ....

        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
Mikhail Sukhov

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

xaxa
xaxa Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

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

xaxa
xaxa Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

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

xaxa
xaxa Autor

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