Да, если ответ на транзакцию и заявка пришли вместе.
Николай прав, обычно OnOrder не может прийти сразу после отправки транзакции (исключение дата центр). Но он может прийти после OnTransRepley, т.е. после получения ответа на транзакцию
nikolz написал: более того, ответ на транзакцию OnTransRepley всегда приходит первым,
Не всегда, транзакции и заявки едут разными потоками, которые между собой не синхронизируются.
Цитата
nikolz написал: так как это ответ сервера брокера, а ответ onOrder - это трансляция сервера биржи сервером брокера.
тоже нет, ответ на транзакцию содержит номер заявки. QUIK не может его знать, только биржа его может сообщить, значит это ответ биржи, а не сервера брокера.
по правилам, раз нет скобок, то проверка по очереди распишите выражение на два сначала temp = true and false --получим false потом dis_not= temp or true --получим true
это то же самое что dis_not= true and false or true --получим true
Aleksei, Добавьте проверку вида function OnCalculate(Index) if CandleExist(Index) then --выводим расчетное значение индикатора else --выводим nil end end
awkozlov написал: 1.в какой таблице лежит список базовых активов?
В QUIK такой таблицы нет. Есть только Params в которой все подряд.
Цитата
awkozlov написал: 2.какая таблица привязывает базовый актив к фьючерсам?
У каждого фьючерса в таблице Params есть параметр с обозначением базового актива.
Цитата
awkozlov написал: Хотелось бы получить Любой фьючерс по базовосу активу.
Единственный вариант, перебрать в цикле все инструменты класса SPBFUT и выбрать из них только нужные. Получить все инструменты класса SPBFUT можно функцией getClassSecurities Далее перебираем их в цикле. По каждому спрашиваем параметры функцией getSecurityInfo, в ней смотрим на код базового актива в параметре base_active_seccode Если это нужный нам код, то что-то делаем, иначе идем по циклу дальше.
nikolz написал: Добрый день, всем! -------------- Вопрос в продолжении темы топика ------------ Если код клиента нужен для идентификация клиента и таких кодов в терминале может быть несколько ( иначе этот код тождественно равен UID терминала), то почему этого кода вообще нет в заявке на фьючерсы и опционы . как в этом случае различаем клиентов? ------------------ Мое мнение, прежнее - код клиента - это атавизм . Поэтому в документации QLUA этот параметр в транзакции можно не заполнять. ------------------ Хотелось бы услышать начальника транспортного цеха.
Идентификация клиента происходит по параметрам Код фирмы + Торговый счет + Код клиента. У одного UID может быть несколько кодов клиентов. Один UID может иметь доступ к счетам разных фирм. Но такие привелении конечным клиентам не выдаются. На срочном рынке, нет такого понятия как "Код клиента", там есть только Код фирмы + Торговый счет. И в правах указывается "Торговый счет" Код клиента можно не указывать только если в правах он один, и на сервере включена автоподстановка (по умолчанию вкл) В такой сситуации сервер сам подставит код клиента.
Georgy написал: Всех приветствую, подскажите как можно дневные ЕМА установить на часовой график?
Простого способа нет. Сложный способ, по имеющимся данным часового графика, произвести расчет дневного. Т.е. при каждом вызове OnCalculate, проверять какие свечки были за предыдущий сутки, и по ним производить расчет индикатора. Сам по себе расчет, можно делать через функции из наших примеров
QUIK гарантирует что данные в терминал будут переданы в том же порядке какой приехал с биржи. QUIK никакого искусственного упорядочивания в этом месте не делает, как приехало с биржи, так и попало в терминал.
Anton Belonogov написал: Таким образом, к сожалению, ввод заявки с признаком "Только пассивная" с помощью sendTransaction на данный момент не представляется возможным.
На самом деле это не так Есть два формата транзакций, первый тот что описан в документации и там действительно нет признака "Только пассивная" И второй, тот который в документации не описан, но тем не менее допустим. Для понимания о чем речь, откройте Карман транзакций, положите в него необходимую транзакцию, и сохраните от туда в tri файл. Открыв файл блокнотом Вы увидите транзакцию во втором формате. Этот формат допустимо использовать во всех способах подачи транзакций, включая sendTransaction В этом формате, есть признак "только пассивная" и его можно использовать в sendTransaction. Вообще, в этом формате можно использовать любые параметры любых транзакций, без каких либо доработок. Ограничения такие, в русском терминале допустимо использовать только русские параметры, в английском только английские. Перемешивать параметры от разных форматов нельзя.
"Si - фьючерсный контракт на курс доллара США/ российского рубля, обращающийся на бирже РТС FORTS." Вот это описание (или подобное) можно получить из Quik ?
Биржа такое транслирует? Если не т то и в QUIK Вы эту информацию не найдете, т.к. в QUIK информация попадает с биржи.
Quikos написал: Но справедливости ради, в самом Lua скрипте - который непосредственно в квике запускаю - перезаписи не наблюдаю. А вот в Lua C api - наблюдаю.
Раз в скрипте Lua не наблюдается, со стороны поддержки QUIK считаем вопрос закрытым
Alexander написал: А я вот решил почему-то ещё и ждать прихода самой сделки, использую OnTrade(). Может это и не надо. Что скажут разработчики? Нужен ли двойной контроль?
Ветка сильно разрослась трудно понять что требуется от разработчиков. Если вопрос в том как получить факт исполнения заявки то он есть в самой заявке в параметре flags бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка исполнена
nikolz написал: Вы видите там вторую транзакцию?Ау , где вторая транзакция, кто тут ее посылает?
Если Вы не видите, это не значит что ее нет. Жаль то приходятся в пятый раз повторять:
Цитата
Sergey Gorokhov написал: Не бывает по одной sendTransaction две заявки с разными номерами. Даже теоретически.
Надо принять это как незыблемую аксиому. И пока Вы этого не сделаете, разобрать вообще никак не получится.
Цитата
nikolz написал: Возможно врач забыл скальпель в желудке пациента .
Посмотрите как сделано в документации, глава описания функции CandleExist там не зря указано обнуление переменных при indx == 1 Возможно у Вас та же история, попробуйте обнулять переменные при первом индексе
nikolz написал: как в индикаторе можно отправить вторую заявку из другого места?
При чем тут индикаторы? Вы наверное считаете что раз пишите индикатор, то все на форуме в курсе про это? Ну допустим. Если речь про индикаторы то OnCalculate может сработать несколько раз, смотрите в эту сторону Или может у Вас несколько разных индикаторов с одним алгоритмом, кто знает
И еще раз, а то вдруг не понятно
Цитата
Sergey Gorokhov написал: Не бывает по одной sendTransaction две заявки с разными номерами. Даже теоретически.
Владимир, Как уже было сказано у нас тикет не повторяется В связи с не однократным отказом в сотрудничестве, делаем заключение что дальнейший анализ не представляется возможным. Тему считаем закрытой.
Stanislav Tvorogov написал: Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что мы также считаем целесообразным его реализацию и постараемся включить в план доработок при выпуске одной из следующих версий нашего ПО.
Доброго здоровья, Станислав!!! Подскажите, предложения реализованы? С какой версии рабочего места? В каком файле находятся настройки соединений? У меня версия 7.25. В ней уже реализовано слежение за соединениями с серверами?
Яна написал: Коллеги, изменилось ли что-то с момента последнего ответа? Очень нужен нормальный API к квику.
Выпуск такого API не планируется, потому что уже есть FIX приборы.
Цитата
Яна написал: Кстати, у ИБ даже курс по программированию на их API выложен, поэтому нам бы тоже такое не помешало. Безусловно за такой курс готов заплатить.
Для заявок OrderNum+ClassCode+TradeDate Для сделок TradeNum+Operation+ClassCode+TradeDate Для обезличенных сделок TradeNum+ClassCode+TradeDate+SecCode
на сделках (не обезличенных) нумерация на разных инструментах одного класса не совпадает. Да это значит что номер одной сделки в обезличенных, и в обычных, может быть разным