Тип ордера FillOrCancel

Тип ордера FillOrCancel
Atom
8/30/2011
Church


Иногда случается ошибка: [code=plain]AC$ 30.08.2011 18:00:09.579 [alpha] System.ArgumentException: Транзакции 'ACCOUNT=SPBFUT00czw; CLIENT_CODE=SPBFUT00czw; TRANS_ID=57550479; CLASSCODE=SPBFUT; SECCODE=RIU1; QUANTITY=1; OPERATION=S; TYPE=L; ACTION=NEW_ORDER; PRICE=165065; EXECUTION_CONDITION=FILL_OR_KILL;' не была зарегистрирована. Причина 'Ошибка создания заявки. [FORTS] "Неполное сведение FOK заявки.".'. Parameter name: transactionTxt at #=qWVb3hlEq_bsi0PlbyLoPNGtmi$sN1GAXJmEglIOuywk=.#=qe2XG1WRxcPRM7kYqWweGZ$USUGIpyehjN9FXfaVbRqk=(String #=qoaJFz4elMnSbwxESEkocqA==, OrderStatus& #=qF9fiowcCBpgiw2vJwkeiPQ==, UInt32& #=qVABNTzTaO$dkfjwyZVXGRQ==, Int64& #=qufGPkJZSaS$_1AhJXi0Q_Q==, String& #=qZYLywgaI4aboC1fy22p5YQ==) at StockSharp.Quik.QuikTrader.#=qIiEPgk1OxvfO3bGPdOk80whIsPAOOUvmEP23HUwhR00=(Order #=qE1hxwYv7mjShNv3VqnQ$4Q==, TransactionBuilder #=qMayz96ds6ngzqy1uCpM0Mw==) at StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order) at StockSharp.Algo.BaseTrader.RegisterOrder(Order order) at StockSharp.Algo.Strategies.Strategy.RegisterOrder(Order order) at Church.Strategies.Alpha.Alpha.GoShort() at Church.Strategies.Alpha.Alpha.Process() at StockSharp.Algo.Strategies.StrategyRule.#=qFRqbpWkXa_e5qv6Y_c3Cjqa84vmqnWUiNQozd3UzbCQ=.#=qE64_FjSgaXcFnXD55NNbNw==(Object #=qXmNYxa6wjOyOlL9yFxtNvA==) at StockSharp.Algo.Strategies.Strategy.#=qiaS4JJP6dIvcV4PykmPE_w==(StrategyRule #=qE1G0wojhtVI3LgG2ikwMjQ==, Object #=qN7sJLpCukdtyplL46bCrEQ==)[/code]

Код заполнения ордера: [code=csharp] var order = CreateOrder(OrderDirections.Sell, this.Security.BestBid.Price - EntrySlip, this.Volume); order.ExecutionCondition = OrderExecutionConditions.FillOrCancel;[/code]

Это бага? Что такое transactionTxt и нужно ли его передавать?


Tags:


Thanks:


< 1 2 
Church

Avatar
Date: 9/1/2011
Reply


State = Failed, Status = null.

Thanks:

Alexander

Avatar
Date: 9/3/2011
Reply


В общем это так просто не исправить. Используйте IsAsyncMode. Начиная с версии 3.2.11 он будет использован по умолчанию.

подробнее - читайте в доке уже сейчас

Thanks:

Den

Avatar
Date: 11/17/2011
Reply


[quote=Alexander Mukhanchikov;10809]В общем это так просто не исправить. Используйте IsAsyncMode. Начиная с версии 3.2.11 он будет использован по умолчанию.

подробнее - читайте в доке уже сейчас[/quote]

Коллеги,

у кого-нибудь в итоге заработали Fill_or_cancel? :)

[url=http://forum.rts.ru/viewtopic.asp?t=17523]Здесь[/url] написано про некий параметр @CotirContr. Может быть его не хватает при создании заявки и отправки через Quik?

Thanks:

Alexander

Avatar
Date: 11/17/2011
Reply


[quote=Den;13696][quote=Alexander Mukhanchikov;10809]В общем это так просто не исправить. Используйте IsAsyncMode. Начиная с версии 3.2.11 он будет использован по умолчанию.

подробнее - читайте в доке уже сейчас[/quote]

Коллеги,

у кого-нибудь в итоге заработали Fill_or_cancel? :)

[url=http://forum.rts.ru/viewtopic.asp?t=17523]Здесь[/url] написано про некий параметр @CotirContr. Может быть его не хватает при создании заявки и отправки через Quik? [/quote]

А через квик сейчас не работает? Даже если послать по той цене, которая гарантированно присутствует в стакане?

Thanks:

Den

Avatar
Date: 11/18/2011
Reply


[quote=Alexander Mukhanchikov;13699]

А через квик сейчас не работает? Даже если послать по той цене, которая гарантированно присутствует в стакане?[/quote]

Проверил в боевом Квике:

  1. Если заявка может быть удовлетворена и по цене, и по объему - она сразу удовлетворяется. Ошибок нет.

  2. Если цена в стакане есть, но не хватает объема - ошибка.

  3. Если выставить цену в середину спреда - ошибка.

  4. Если цена есть, но в глубине стакана - ошибка.

Вывод: в любом случае когда заявка не может быть немедленно удовлетворена мы имеем ошибку. Если заявка немедленно удовлетворяется - ошибки нет.

Thanks:

Den

Avatar
Date: 11/18/2011
Reply


[quote=Den;13757][quote=Alexander Mukhanchikov;13699]

А через квик сейчас не работает? Даже если послать по той цене, которая гарантированно присутствует в стакане?[/quote]

Проверил в боевом Квике:

  1. Если заявка может быть удовлетворена и по цене, и по объему - она сразу удовлетворяется. Ошибок нет.

  2. Если цена в стакане есть, но не хватает объема - ошибка.

  3. Если выставить цену в середину спреда - ошибка.

  4. Если цена есть, но в глубине стакана - ошибка.

Вывод: в любом случае когда заявка не может быть немедленно удовлетворена мы имеем ошибку. Если заявка немедленно удовлетворяется - ошибки нет. [/quote]

Уважаемые разработчики!

Я еще раз прочитал [url=http://www.quik.ru/forum/import/77353/77354/]ответ с форума Квик[/url] и ТОЧНО понял, что требуется сделать в S# и почему:

Если заявка не может быть удовлетворена, то с ФОРТСа летит сообщение "Неполное сведение FOK заявки", причем ударение на второй слог: "сведЕние" ([url=http://forum.rts.ru/viewtopic.asp?t=17050]см. тут[/url]), что означает она не может быть удовлетворена. Квиковцы это сообщение тупо транслируют.

Посему логично было бы на стороне S# это фильтровать и обрабатывать для всех заявок c EXECUTION_CONDITION == FILL_OR_KILL, выставляя заявке статус Cancelled, а не выбрасывать исключение.

Что думаете на этот счет?

Thanks:

Alexander

Avatar
Date: 11/19/2011
Reply


[quote=Den;13762][quote=Den;13757][quote=Alexander Mukhanchikov;13699]

А через квик сейчас не работает? Даже если послать по той цене, которая гарантированно присутствует в стакане?[/quote]

Проверил в боевом Квике:

  1. Если заявка может быть удовлетворена и по цене, и по объему - она сразу удовлетворяется. Ошибок нет.

  2. Если цена в стакане есть, но не хватает объема - ошибка.

  3. Если выставить цену в середину спреда - ошибка.

  4. Если цена есть, но в глубине стакана - ошибка.

Вывод: в любом случае когда заявка не может быть немедленно удовлетворена мы имеем ошибку. Если заявка немедленно удовлетворяется - ошибки нет. [/quote]

Уважаемые разработчики!

Я еще раз прочитал [url=http://www.quik.ru/forum/import/77353/77354/]ответ с форума Квик[/url] и ТОЧНО понял, что требуется сделать в S# и почему:

Если заявка не может быть удовлетворена, то с ФОРТСа летит сообщение "Неполное сведение FOK заявки", причем ударение на второй слог: "сведЕние" ([url=http://forum.rts.ru/viewtopic.asp?t=17050]см. тут[/url]), что означает она не может быть удовлетворена. Квиковцы это сообщение тупо транслируют.

Посему логично было бы на стороне S# это фильтровать и обрабатывать для всех заявок c EXECUTION_CONDITION == FILL_OR_KILL, выставляя заявке статус Cancelled, а не выбрасывать исключение.

Что думаете на этот счет?[/quote]

В 4.0.6 будет фикс, спасибо

Thanks:

Den

Avatar
Date: 12/7/2011
Reply


[quote=Alexander Mukhanchikov;13781]

В 4.0.6 будет фикс, спасибо[/quote]

Проверил на 4.0.6. Получил эсепшен: [code]Транзакция 'ACCOUNT=SPBFUTXXXXX; TRANS_ID=67142778; CLASSCODE=SPBFUT; SECCODE=RTS-12.11; QUANTITY=1; OPERATION=B; TYPE=L; ACTION=NEW_ORDER; PRICE=140000; EXECUTION_CONDITION=FILL_OR_KILL;' не была зарегистрирована. Причина 'Ошибка создания заявки. [FORTS] "Неполное сведение FOK заявки.".'. [/code]

У самой заявки я наблюдаю следующие поля: [code]Canceled: Empty: Partially: Matched: Balance: <1> State: Status: <> [/code]

Похоже что поведение не изменилось, в чем заключался фикс?

Thanks:

Alexander

Avatar
Date: 12/7/2011
Reply


Точку забыл во время фикса в сообщении "Неполное сведение FOK заявки." Сделал фикс#2, будет в 4.0.8

Thanks: Den

Den

Avatar
Date: 12/12/2011
Reply


[quote=Alexander Mukhanchikov;14426]Точку забыл во время фикса в сообщении "Неполное сведение FOK заявки." Сделал фикс#2, будет в 4.0.8[/quote]

Проверил, эксепшена нет. [code]State: Status: [/code] Спасибо!

Thanks:
< 1 2 

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

loading
clippy