nikolz написал: читайте Раздел 5. Торговые операции клиента. Руководство пользователя QUIK.там все написано.
Ничего путнего там не написано. Я это читал раньше. На мой вопрос там ответа нет.
Если правильно понял Ваш вопрос, то вас интересует в чем различие рыночной заявки по акциям и по фьючерсам. ------------------------------------------------- Ответ есть в указанном разделе. вот он: для акций: «Рыночная» – признак заявки без указания цены исполнения. Такая заявка исполняется на бирже по ценам имеющихся встречных заявок, начиная с лучшей из них. -------------------------- Для фьючерсов: «Рыночная» в пустое поле «Цена» подставляется значение «Максимально возможная цена», а при подаче заявки на продажу – «Минимально возможная цена» для данного инструмента. «Рыночная» – при наличии встречного предложения заявка исполняется по цене не хуже, чем значение, указанное в поле. -------------------------- Т е для акции расчет требуемых средств будет выполнен по лучшей цене, а для фьючерсов фактически по наихудшей цене.
Ваш ответ похоже соответствует действительности. Я пришёл к такому же выводу. Но... Так как описано в документации квика, это нечто. Там нет разделения описания по акциям и по фьючерсам. В этом самом 5-ом разделе есть подраздел "Вввод заявки", а в нём подподраздел "Окно «Ввод заявки»", там есть пункты 4 и 5 и там так написано, что ничего конкретного относительно акций и фьючерсов и вообще как попало написано
Alexander написал: А я вот решил почему-то ещё и ждать прихода самой сделки, использую OnTrade(). Может это и не надо. Что скажут разработчики? Нужен ли двойной контроль?
Ветка сильно разрослась трудно понять что требуется от разработчиков. Если вопрос в том как получить факт исполнения заявки то он есть в самой заявке в параметре flags бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка исполнена
Так я не понял, если торгуем только одним инструментом во всем терминале, то достаточно проверки if(TradeId>lastTradeId) ? Номера идут по возрастанию всегда? А если несколько скриптов, каждый по одному инструменту, то тоже достаточно этого условия?
Cyber написал: Так я не понял, если торгуем только одним инструментом во всем терминале, то достаточно проверки if(TradeId>lastTradeId) ? Номера идут по возрастанию всегда? А если несколько скриптов, каждый по одному инструменту, то тоже достаточно этого условия?
Cyber написал: Так я не понял, если торгуем только одним инструментом во всем терминале, то достаточно проверки if(TradeId>lastTradeId) ? Номера идут по возрастанию всегда? А если несколько скриптов, каждый по одному инструменту, то тоже достаточно этого условия?
Cyber написал: Так я не понял, если торгуем только одним инструментом во всем терминале, то достаточно проверки if(TradeId>lastTradeId) ? Номера идут по возрастанию всегда? А если несколько скриптов, каждый по одному инструменту, то тоже достаточно этого условия?
что такое "TradeId"?
TRANS_ID
TRANS_ID - это номер транзакции, который вы придумываете сами. Если он уникальный и вы его увеличиваете на каждой транзакции, то он будет увеличиваться. Если у Вас несколько скриптов в которых вы посылаете транзакции, то Вам надо синхронизировать в них генерацию TRANS_ID чтобы было уникально и возрастало.
Ясно, знкчит нужно городить таблицу и поиск по ней. А случайно в OnTrade не добавили уникальный номер ответа? Вроде даже запрос делали на добавление, чтоб ответы повторяющиеся группировать?
Cyber написал: Ясно, знкчит нужно городить таблицу и поиск по ней. А случайно в OnTrade не добавили уникальный номер ответа? Вроде даже запрос делали на добавление, чтоб ответы повторяющиеся группировать?
Если у Вас колбеки в каждом скрипте, то Вы можете получать текущий trans_id в колбеке OnTransReply
sao написал: Прошу разработчиков зарегистрировать пожелание:Ни в коем случае не делать никаких trans_id=nil !!
В руководстве четко прописано что поле trans_id имеет тип NUMBER. Соответственно программисты (в частности я) в своих скриптах считают что в этом поле может быть только число. В Lua значение nil это отдельный тип переменной, и например выражение t.trans_id>0 приведет к ошибке и вылету скрипта. Почему я должен перелопачивать десятки тысяч строк кода в десятках своих скриптов и вводить множество ненужных проверок, из-за того, что кому-то вдруг приспичило получать nil?
Есть же отрицательные числа. Если значение ещё не определенных параметров будет отрицательным, ничего перелопачивать не придётся.