Старатель (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 26 27 28 29 30 31 32 33 34 35 36 ... 46 След.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Вот это
Цитата
Старатель пишет:
При отправке колбеков с сервера на терминал trans_id=0 можно использовать для обозначения, что данный параметр проставлен. Если параметр не проставлен, то он = nil .
Противоречит Вот этому
Цитата
Старатель пишет:
Я же предлагаю при получении транзакции от клиента сохранить эту транзакцию с trans_id , если его не было, со значением "по-умолчанию" = 0 .
Специально для вас выделил жирным. Или надо цветом и подчеркнуть?

Цитата
Sergey Gorokhov пишет:
Допустим, как уже было сказано приехала сделка. И мы знаем что эта сделка была выставлена через интерфейс
С Ваших слов сервер отправил ее клиенту с trans_id=nil
С моих слов, если вы уже знаете, что сделка была выставлена через интерфейс, то и отправляйте 0.
По-моему я достаточно ясно описал своё предложение (и не надо выдирать слова из контекста):
Цитата
Старатель пишет:
Далее, когда сделка приезжает на сервер, в общем случае отправлять её клиенту, раз уж транзакцию ещё не нашли, без проставленного параметра.
А когда транзакция найдётся, то проставить найденное значение параметра. И там будет либо номер транзакции либо честный ноль.
Я уже не знаю, как вам ещё объяснить. Я искренне надеюсь, что лично вы не принимаете никакого участия в разработке продуктов ARQA.

Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Далее, когда сделка приезжает на сервер, в общем случае отправлять её клиенту, раз уж транзакцию ещё не нашли, без проставленного параметра .
Это частный случай, который в общем маловероятен (проверьте сами) из-за которого в этой ветке весь сыр бор.
Вам уже говорили:
Цитата
_sk_ пишет:
Это плохо, если разработчики говорят в терминах вероятностей о поведении программы.
И вы сами объясняете наличие нескольких колбеков необходимостью отправки дополнительных параметров, в частности uid и trans_id:
Цитата
Sergey Gorokhov пишет:
На сделке, которая является сущностью торговой системы нет некоторых полей, которые есть в QUIK
В частности это UID, TRANS_ID а также набор флагов и ряд других специфичных параметров
Серверу чтобы проставить эти обновленные параметры приходится отправлять сделку несколько раз.
Цитата
Sergey Gorokhov пишет:
Цитата
Антон пишет:
Почему не оставили только для заявок, меньше нужно было бы информации повторной пересылать.
Потому что пользователи хотели чтобы на сделках был TRANS_ID и другие параметры
Я вам задавал прямой вопрос:
Цитата
Старатель пишет:

OnTrade всегда приходит с заполненным полем trans_id?
Если trans_id=0 в сделке, означает ли это, что сделка была совершена вручную?
Вы можете на него также прямо без ёрзаний ответить? (Сейчас говорю только про штатную ситуацию.)
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
На сделке, которая является сущностью торговой системы нет некоторых полей, которые есть в QUIK
В частности это UID, TRANS_ID а также набор флагов и ряд других специфичных параметров
Серверу чтобы проставить эти обновленные параметры приходится отправлять сделку несколько раз.
Цитата
Sergey Gorokhov пишет:
Сейчас работает так:
Приехала сделка.
Сервер ищет транзакцию
Он ее нашел и выяснил что на транзакции есть trans_id и отправляет сделку клиенту с проставленным trans_id.
Если на транзакции нет trans_id он отправляет "0"
Вы даёте крайне противоречивую информацию в своих сообщениях: во втором случае, вы не указываете, что trans_id может отправляться несколько раз.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Допустим он ее нашел и выяснил, что на транзакции есть trans_id, а значит согласно Вашей логике он должен отправить trans_id=0
Ну что вы лепите? Что вы вырываете куски из текста?
Цитата
Старатель пишет:
Я же предлагаю при получении транзакции от клиента сохранить эту транзакцию с trans_id, если его не было, со значением "по-умолчанию" = 0.
Далее, когда сделка приезжает на сервер, в общем случае отправлять её клиенту, раз уж транзакцию ещё не нашли, без проставленного параметра.

А когда транзакция найдётся, то проставить найденное значение параметра. И там будет либо номер транзакции либо честный ноль.
Согласно моей логике, серверу вообще не надо знать, что транзакция подана именно через Lua. (Не надо придумывать отсебятины.)
Согласно моей логике сервер должен сохранить транзакцию в своей SQL-базе с номером транзакции, если он был указан, либо с нулём, если он не был указан.
При обратной отправке колбека клиенту, соответственно и отправлять этот номер. Один раз. Зачем два раза-то?
(Это поэтому у вас сейчас 3 колбека? Даже если допустить, что в первом всегда приходят не все параметры, почему все недостающие нельзя отправить в одном следующем колбеке?)

Складывается впечатление, что вы узнаёте о новом функционале, по мере того, как поступают вам вопросы на эту тему.
Более компетентный сотрудник есть?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Вы же предлагаете чтобы сервер делал одну и ту же работу два раза.
первый раз он будет искать транзакцию по сделке чтобы проставить trans_id=0
а второй раз чтобы проставить правильный trans_id
Я этого не предлагал.
Скрытый текст


Учитывая неосведомлённость сотрудников технической поддержки об изменениях в новой версии QUIK v.7, можно сделать вывод, что ваше нежелание привести нормальное описание работы нового функционала связано с некомпетентностью в данном вопросе.

Поэтому я вынужден привлечь внимание начальства к тому, как работает служба технической поддержки ARQA Technologies:
проведите переаттестацию ваших сотрудников и наладьте взаимоотношение между отделами, в частности между техподдержкой и программистами: это недопустимо, когда специалист технической поддержки не знает продукт, поддержкой которого занимается. И я сейчас говорю не конкретно об этой теме: могу привести с десяток примеров, где мне и другим пользователям приходится поправлять сотрудников техподдержки, дабы они не вводили в заблуждение своими неверными высказываниями относительно работы программы.

И пригласите, пожалуйста, более компетентного сотрудника, чтобы закрыть вопрос.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Я делаю выводы на основе ваших слов:
Скрытый текст

Цитата
Sergey Gorokhov пишет:
Есть другие биржи (не МБ) и на них некоторые параметры сделки обновляемые. Например там сделки можно отменять.
Мы поддержали этот функционал в QUIK
На МБ ничего не менялось, там параметры обновляемыми НЕ стали.
Так всё-таки "биржевые" параметры сделки стали обновляемы, но не для МБ? Или я опять делаю неверный вывод?

Цитата
_sk_ пишет:
Осталось надеяться, что если мы в очередной коллбэк OnTrade увидели установленные поля
class_code, sec_code, price, qty (или как он там теперь будет называться), order_num (или как он там теперь будет называться), trade_num, clearing_comission, exchange_comission, tech_center_comission, datetime, settle_date,
то при последующих коллбэках эти поля уже не поменяют свои значения.

Или могут и поменять?
Цитата
Sergey Gorokhov пишет:
Чисто технически, да могут поменяться
Чисто практически, такая ситуация маловероятна
Обратите внимание на выделенные жирным шрифтом параметры. Вы не опровергли, что значения этих параметров могут поменяться.
Ну и что нам с этой информацией делать? Сидеть "на измене" и ждать "засады"?
Давайте жёстко разграничим: в штатной ситуации так-то и так-то; если произошло то-то - то это не штатная ситуация и надо бить тревогу.
А то тут действительно начинаешь путаться.

Цитата
Sergey Gorokhov пишет:
На последние вопросы от Вас, я просто повторил ответы которые уже давались именно в этой ветке форума
Ой ли?
Цитата
Sergey Gorokhov пишет:
Не совсем так, в штатной ситуации да действительно, если trans_id есть то поменяться он уже не может.
Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Это справедливо для всех параметров?
нет не для всех, а только для тех которые берутся из транзакции, конкретно UID и trans_id
Конкретно на этот вопрос вы не отвечали. Да и сейчас ваш ответ не ясен (здесь интересуют все обновляемые параметры):
Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Можно ли рассчитывать, что для сделки, которая была 2 часа назад, сохранённые сейчас параметры останутся неизменными через час?
В общем случае нет. В частном из-за сбоя не сервере.
"Нет" - означает "нет, нельзя рассчитывать"? Или что "параметры сделки останутся неизменными"?


И для понимания работы данного функционала и решения проблемы с двусмысленностью чтения некоторых значений параметров необходимо:
1) Дать исчерпывающий список обновляемых параметров.
2) Внести изменения в ПО таким образом, чтобы все отсутствующие параметры имели значение nil (это касается не только OnTrade).
3) Для параметра trans_id внести изменения таким образом, чтобы для транзакций, заявок, сделок без "Идентификатора транзакции" значением по-умолчанию был 0. Если значение параметра ещё не определено, то соответственно - nil.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Чем больше "недоказанностей", тем больше возникает вопросов:
Можно ли рассчитывать, что для сделки, которая была 2 часа назад, сохранённые сейчас параметры останутся неизменными через час?
Может ли брокер повлиять на изменение параметров сделки, которая уже была получена клиентом?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
"биржевые" параметры, НЕ стали вдуг обновляемыми, кто Вам такое сказал?
Это ваши слова?
Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Поэтому обозначить, какие именно параметры являются не обновляемыми для вас не составит труда.
Обновляемые параметры мы уж определим сами методом исключения.
Вы можете самостоятельно определить список, просто взглянув на описание биржевого интерфейса.
Тогда не нужно перекладывать ответственность на биржу.

И, коль вы не отвечаете на вопросы, я вынужден их повторить:
Цитата
Старатель пишет:
Я спрашиваю почему, если это ваша инициатива, то биржевые параметры стали обновляемыми (про trans_id и uid я не спрашиваю), есть ли объективное объяснение, почему они могут бесконечно обновляться?
И почему, если эти параметры обновляемы внутри вашей системы (ведь так?), то вы не желаете приводить их полный список, а отсылаете к описанию биржевого интерфейса угадывать, какие из параметров вы могли сделать обновляемыми?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK версия 7.0.1.5 Предложения, Предложения по неудобствам нового меню версии 7.
 
Цитата
Антонио пишет:
Если открытие скрипта происходит прямо при старте программы автоматически, а не руками запуском из Доступных скриптов , то окно скрипта открывается сразу на всех, а не на одной вкладке.
В 7-й версии не проверял. В 6-й версии три варианта:
1) Окно скрипта открывается на активной вкладке (чаще всего).
2) Окно скрипта открывается на всех вкладках.
3) Окно скрипта оказывается вынесенным за пределы основного окна программы. Такое, например, может быть, если во время запуска QUIK переключится на другое приложение.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Скрытый текст

Цитата
Sergey Gorokhov пишет:
На бирже концепция не менялась
Так я и не говорил, что на бирже концепция поменялась.
Я спрашиваю почему, если это ваша инициатива, то биржевые параметры стали обновляемыми (про trans_id и uid я не спрашиваю), есть ли объективное объяснение, почему они могут бесконечно обновляться?
И почему, если эти параметры обновляемы внутри вашей системы (ведь так?), то вы не желаете приводить их полный список, а отсылаете к описанию биржевого интерфейса угадывать, какие из параметров вы могли сделать обновляемыми?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
_sk_ пишет:
В шестой версии такого не бывает, т.к. она не поддерживает обновление строк в таблице сделок.
Я потому и задаюсь вопросом: в 6-й версии таблица сделок была не обновляемой. Это значит, что пришедшая с биржи информация по сделке была либо сразу полной, либо...
Почему теперь концепция изменилась, и биржевые параметры в таблице сделок могут обновляться бесконечное число раз?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
_sk_ пишет:
Цитата
Чисто технически, да могут поменяться Чисто практически, такая ситуация маловероятна
Это плохо, если разработчики говорят в терминах вероятностей о поведении программы.

Представим, что пришла информация о сделке, где комиссии указаны нулевые. Это может произойти, если сделки по фьючерсу идут внутри дня. Адекватная торговая программа пишет в какой-нибудь лог информацию о сделке с нулевой комиссией, а потом ВНЕЗАПНО обнаруживается, после прихода ещё одного коллбэка, что комиссии-то ненулевые!
И что, такое реально может быть? А как же оно до 7-й версии работало?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
И да, вопрос
Цитата
Старатель пишет:
OnTrade всегда приходит с заполненным полем trans_id?
Если trans_id=0 в сделке, означает ли это, что сделка была совершена вручную? Или нужно подождать второго-третьего колбека, чтобы убедиться в этом?
я вам повторил не для того, чтобы получить ответ на него от вас (ибо на это надежды мало). Ответ уже был дан в сообщении #34 (прочитайте его). А для того, чтобы вы наконец задумались над тем, что пишите.
Надо делать так, как надо. А как не надо - делать не надо.
ctrl + shift + L не срабатывает в квике 7.0.1.5, не срабатывет сочетание клавиш
 
3. Сочетание горячих клавиш может не работать в некоторых окнах QUIK, например "Доступные скрипты"
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Мне приходится задавать одни и те же вопросы, потому что вы "виляете".
Вероятно, это вам необходимо
Цитата
Sergey Gorokhov пишет:
самостоятельно прочитать тему с начала
в т.ч. и свои посты.

Итак, вы можете обосновать своё утверждение?
Цитата
Sergey Gorokhov пишет:
я не вижу в trans_id=0 двусмысленного толкования.
Надо делать так, как надо. А как не надо - делать не надо.
trim() юзернейма в окне подключения Quik
 
Цитата
Alexey Ivannikov пишет:
Вместо логина можно вводить только один символ из него (любой), это решает проблему с лишними пробелами.
Здесь можно использовать в т.ч. и пробел, так что trim() будет лишним  :smile:
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
0 это не значение по умолчанию, а отсутствие значения, ибо trans_id нельзя задать равным 0.
Отсутствие значения параметра в принципе или отсутствие оного у текущего колбека? Не путайте эти два понятия.

Цитата
Sergey Gorokhov пишет:
я не вижу в trans_id=0 двусмысленного толкования.
Тогда ответьте на вопрос, который вы "не заметили":
Цитата
Старатель пишет:
OnTrade всегда приходит с заполненным полем trans_id?
Если trans_id=0 в сделке, означает ли это, что сделка была совершена вручную? Или нужно подождать второго-третьего колбека, чтобы убедиться в этом?
Цитата
Sergey Gorokhov пишет:
Так как сервер будет проставлять сам trans_id=0 это приведет к тому же что сейчас происходит с trans_id не равным 0.
А что сейчас происходит с trans_id, не равным 0? Почему колбеки будут сыпаться чаще?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
То есть Вы хотите чтобы "0" стал номером транзакции по умолчанию для заявок/сделок?
И чтобы сервер его проставлял сам после получения информации.
Ну тогда колбеки будут сыпаться по несколько раз еще чаще чем сейчас, разве не с этим мы тут боремся?
А разве сейчас у вас 0 - не есть значение "по-умолчанию" для trans_id?
Только в текущей реализации при получении значения 0 мы не можем с уверенность сказать, действительно ли там 0 или просто сервер ещё не нашёл транзакцию.

Я предлагаю не проставлять значения, если его ещё нет. А для trans_id использовать "честный 0", чтобы отличать заявки, поданные вручную от автоматизированных.

Цитата
Sergey Gorokhov пишет:
Ну тогда колбеки будут сыпаться по несколько раз еще чаще чем сейчас
Поясните.

Цитата
Sergey Gorokhov пишет:
разве не с этим мы тут боремся?
Не знаю, как вы, но я борюсь за предсказуемое поведение программы: не должно быть двусмысленного толкования значений параметров.
Надо делать так, как надо. А как не надо - делать не надо.
Открытие и закрытие торгового дня
 
Стандартной такой настройки или индикатора не существует. Но индикатор можно написать самому на QLua.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Вы же предлагаете чтобы сервер делал одну и ту же работу два раза.
первый раз он будет искать транзакцию по сделке чтобы проставить trans_id=0
а второй раз чтобы проставить правильный trans_id
Вы что-то путаете: это вы сейчас делаете двойную работу.
Судя по сообщению #34 (вы же не опровергли его), в общем случае, сервер сначала проставляет trans_id=0, а затем проставляет правильный trans_id.

Я же предлагаю при получении транзакции от клиента сохранить эту транзакцию с trans_id, если его не было, со значением "по-умолчанию" = 0.
Далее, когда сделка приезжает на сервер, в общем случае отправлять её клиенту, раз уж транзакцию ещё не нашли, без проставленного параметра.

А когда транзакция найдётся, то проставить найденное значение параметра. И там будет либо номер транзакции либо честный ноль.

Я правильно понимаю, что весь это "сыр-бор", чтобы отправить сделку клиенту сразу по получению с биржи, не "шурша" по БД SQL в поисках недостающих параметров (в частности trans_id и uid), а эти параметры отправятся следом, когда выполнится команда SELECT?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Пожелание зарегистрировали.
Однако, конкретно с trans_id это не решит проблему.
Так как trans_id="0" мы не можем указать в транзакции, а значит получив trans_id=nil или как сейчас trans_id=0 реакция будет одной и той же.
На сервер отправляются транзакции либо без trans_id (поданные вручную; из стакана, используя панель ввода заявок) либо с проставленным trans_id, отличным от нуля (поправьте, если ошибаюсь), поданные с помощью QLua, QPILE, API, tri-файла. Таким образом, trans_id=0 никем не зарезервирована. Следовательно, сервер, получив транзакцию без trans_id, сразу помечает её нулём, чтобы в будущем это использовать.
При отправке колбеков с сервера на терминал trans_id=0 можно использовать для обозначения, что данный параметр проставлен. Если параметр не проставлен, то он = nil.
Таким образом, получив колбек с trans_id (или любым другим параметром) = nil мы понимаем, что данный параметр не был проставлен в текущем колбеке и нужно ждать следующего колбека. Если же trans_id=0, то это будет автоматически означать, что транзакция была подана без параметра trans_id, т.е. вручную.

Цитата
Sergey Gorokhov пишет:
Но в случае сбоя на стороне сервера, есть вероятность что сделка может приехать без UID и без trans_id
Я имею ввиду, что если мы получили trans_id, uid (или любой другой параметр), отличный от 0 или "", то можно ли рассчитывать, что в штатной ситуации этот параметр уже не изменится?
Цитата
Sergey Gorokhov пишет:
Не совсем так, в штатной ситуации да действительно, если trans_id есть то поменяться он уже не может.
Это справедливо для всех параметров?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Вы очень умело оспариваете любую попытку помочь, однако сами ни разу не озвучили какого-либо предложения.
Отчего же? Я давно говорил и ещё раз подтверждаю:
Цитата
Старатель пишет:
подстановка значения 0 или "" вместо nil там, где значения в принципе нет, приводит к неопределённому поведению программы.
В программировании это недопустимо.
А суть такова, что проставлять нужно только те параметры, которые заведомо имеют какое-то значение. Параметры, не имеющие значений должны быть nil.
Тогда робот, получивший колбек, в котором, не проставлены интересующие его параметры, будет понимать, что нужно ждать следующего колбека.

В данной ситуации это выглядело бы так:
При получении сделки с бижи, если сервр не успел проставить номер транзакции, то он так и отправляет сделку с trans_id=nil (а не 0).
После, когда сервер будет отправлять следующий колбек, он уже проставит номер транзакции.

Но, учитывая ваш комментарий
Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Вот здесь поподробнее, пожалуйста: обновляемые параметры могут обновляться до бесконечности?
Будет обновляться столько раз сколько потребуется.
Сколько потребуется нам не известно
возникает вопрос: если мы получили сделку с проставленным trans_id, можно ли рассчитывать, что он в будущем не изменится?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Сколько должно быть колбеков на одну сделку? Есть ли какое-то определённое число? Известно ли оно вам?
от 1 до бесконечности.
Вот здесь поподробнее, пожалуйста: обновляемые параметры могут обновляться до бесконечности?

Цитата
Sergey Gorokhov пишет:
Вы можете самостоятельно определить список, просто взглянув на описание биржевого интерфейса.
Нужно угадать как называется тот или иной биржевой параметр в вашей интерпретации?

Цитата
Sergey Gorokhov пишет:
Я предлагаю роботу писать некий символ в комментарии который будет однозначно определять транзакцию как поданную роботом.
У пользователя может быть куча других роботов, алго-приводов и пр., где параметры транзакций уже давно жёстко заданы производителем.
Надо делать так, как надо. А как не надо - делать не надо.
Не выставляет заявку на продажу\покупку
 
Цитата
Владимир Ишанин пишет:
Вы сказали, с нулевой ценой, я поставил.. Теперь вылазит всегда ошибка - Ошибка создания заявки. [FORTS][32] "Цена сделки вне лимита".
Цитата
Владимир Ишанин пишет:
2. Вот если выбрать стакан в quik'e, там есть функция закрыть позицию.. Там ведь мы не выбираем ничего, она сама погашается. Можно ли как-то этим воспользоваться и использовать данную функцию, но уже в скрипте? Не заморачиваясь ;)
Думаю, этот вопрос надо задавать техподдержке брокера или QUIK, поскольку в QUIK реализована подача маркет-поручений в секции ФОРТС.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Все параметры которых нет на бирже, плюс те параметры которые на бирже можно менять, являются обновляемыми.
Речь не только про TRANS_ID (это только частный случай) , есть еще комиссия брокера, флаги, UID и др.
Насколько я понимаю, список параметров сделки является стандартным и конечным, независимо от биржи и торговой площадки.
Поэтому обозначить, какие именно параметры являются не обновляемыми для вас не составит труда.
Обновляемые параметры мы уж определим сами методом исключения.
Цитата
Sergey Gorokhov пишет:
Цитата
Старатель пишет:
Задача состоит в том, чтобы при получении сделки, совершённой вручную, выполнить определённые действия. Из предыдущего комментария следует, что trans_id является обновляемым параметром, и, если там 0, то это значит, что этот параметр может быть ещё не заполнен. А может быть заполнен... В общем, надо угадать...
Можно использовать комментарий.
Вы предлагаете при подаче ручного поручения пользователю забивать ещё комментарий?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Цитата
_sk_ пишет:
А хорошо -- это описать, что такие-то и такие-то блоки данных изменяются атомарно и однократно. В документации это будет?
нет не будет
Раз уж разработчики сделали такой неопределённый функционал, хотелось бы, чтобы вы поделились известной для вас на текущий момент информацией, как это работает:
Какие параметры являются обновляемыми?
Сколько должно быть колбеков на одну сделку? Есть ли какое-то определённое число? Известно ли оно вам?

Ну и примерный алгоритм действий в следующей ситуации:
Задача состоит в том, чтобы при получении сделки, совершённой вручную, выполнить определённые действия. Из предыдущего комментария следует, что trans_id является обновляемым параметром, и, если там 0, то это значит, что этот параметр может быть ещё не заполнен. А может быть заполнен... В общем, надо угадать...
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Потому что пользователи хотели чтобы на сделках был TRANS_ID и другие параметры
OnTrade всегда приходит с заполненным полем trans_id?
Если trans_id=0 в сделке, означает ли это, что сделка была совершена вручную? Или нужно подождать второго-третьего колбека, чтобы убедиться в этом?
Надо делать так, как надо. А как не надо - делать не надо.
Не выставляет заявку на продажу\покупку
 
Это "недокументированные возможности"  :lol:
У вас в одной транзакции указывается и признак рыночной заявки (["TYPE"] = "M") и цена (["PRICE"] = tostring(bid1+5*bid3)). Видимо, с такими параметрами заявка выставляется с условием "Немедленно или отклонить", и если не находит встречного предложения, то сразу отклоняется.
Надо задавать либо лимитированную заявку с ценой, либо маркет-заявку с нулевой ценой.
Надо делать так, как надо. А как не надо - делать не надо.
Не выставляет заявку на продажу\покупку
 
Таблицы заявок, сделок, очереди котировок (стакан), возможно, вам помогут.
Надо делать так, как надо. А как не надо - делать не надо.
Не выставляет заявку на продажу\покупку
 
Цитата
Владимир Ишанин пишет:
У меня в таблице транзакций заявки регистрируются, но моя позиция при этом никак не изменяется, что может быть не так?
Позиция изменяется при исполнении заявки, т.е. после сделки.
Надо делать так, как надо. А как не надо - делать не надо.
Не выставляет заявку на продажу\покупку
 
А в чём проблема?
Код
["QUANTITY"] = tostring(math.abs(getItem("FUTURES_CLIENT_HOLDING", i).totalnet) + 1)
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
_sk_ пишет:
Представим, что пришла информация о сделке, где комиссии указаны нулевые. Это может произойти, если сделки по фьючерсу идут внутри дня. Адекватная торговая программа пишет в какой-нибудь лог информацию о сделке с нулевой комиссией, а потом ВНЕЗАПНО обнаруживается, после прихода ещё одного коллбэка, что комиссии-то ненулевые! Вот засада и головная боль для программиста! Надо либо в лог дописать, что, мол, фигня вышла, вот правильная информация о сделке, либо действовать по принципу: хочешь записать что-то в лог -- подожди некоторое время в надежде, что вдруг всё не так на самом деле.
Вот ещё один пример, когда подстановка значения 0 или "" вместо nil там, где значения в принципе нет, приводит к неопределённому поведению программы.
В программировании это недопустимо.
Надо делать так, как надо. А как не надо - делать не надо.
Не выставляет заявку на продажу\покупку
 
Цитата
Владимир Ишанин пишет:
А если пишу через переменную - количество лотов в позиции, то не ничего не происходит.
BuyVol = getItem("FUTURES_CLIENT_HOLDING",i).totalnet; -- Количество лотов в позиции BUY
lenght = string.len(BuyVol)
vol = string.sub(BuyVol,1,length) + 1
....
["QUANTITY"] = tostring(vol)
А что здесь? Вот так не проще?
Код
["QUANTITY"] = tostring(getItem("FUTURES_CLIENT_HOLDING",i).totalnet + 1)
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
Sergey Gorokhov пишет:
Это не ошибка, так и должно быть
Серьёзно, может у вас всё же какая-то ошибка, раз вы считаете, что каждый колбек приносит новую информацию, а по факту они одинаковые.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Из кода не видно, что вы обрабатываете кобек один раз: сколько раз колбек придёт, столько раз он попадёт в таблицу trades и будет обработан функцией OnTradeDo (или orders для ордеров).
Надо делать так, как надо. А как не надо - делать не надо.
Использование функции os.execute без показа окна windows cmd
 
Это работает, только если нам не важен код возврата приложения?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK v.7.0.1.5, Доступные скрипты
 
При добавлении файла было бы неплохо добавить диалоговому окну выбора файла свойство "FileMustExist"
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
XXM пишет:
Я их обрабатываю один раз.
И чищу сразу.
По какому принципу чистите? После третьего колбека?
Я не чищу, потому что могут быть различные ситуации повторного прихода колбеков: переключение на другой сервер, сбой на бирже...
Надо делать так, как надо. А как не надо - делать не надо.
QUIK v.7.0.1.5, Доступные скрипты
 
В таблице "Доступные скрипты" пропала полоса прокрутки.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK (версия 7.0.1.5), function OnTrade(trade), трехкратный вызов на одно событие.
 
Цитата
XXM пишет:
Можно, конечно, запоминать приход информации в некую базу_сделок , произвести расчеты, и по приходу следующих порций OnTrade() быстренько так глянуть в эту базу: а не было ли уже этой сделки раньше?
Собственно, так раньше было с OnOrder, когда он приходил по нескольку раз. В 7-й версии вместо OnOrder по нескольку раз приходят OnTrade. Причём все с абсолютно одинаковыми параметрами.
Цитата
XXM пишет:
Пока я не вижу критериев, как удалять из этой базы сделку, так как "несколько раз" - расплывчато. Будем копить?
А зачем удалять? Я храню таблицы номеров пришедших заявок и сделок.
Цитата
Sergey Gorokhov пишет:
На сделке, которая является сущностью торговой системы нет некоторых полей, которые есть в QUIK
В частности это UID, TRANS_ID а также набор флагов и ряд других специфичных параметров
Серверу чтобы проставить эти обновленные параметры приходится отправлять сделку несколько раз.
Иначе, отправка сделки задерживалась бы до установки всех параметров, что гораздо хуже чем получить подряд несколько обновлений.
Вот действительно непонятно, зачем слать несколько одинаковых колбеков, если уже в первом приходят все параметры. Можете подробнее пояснить?
Надо делать так, как надо. А как не надо - делать не надо.
Плохо срабатывают оповещения на изменение ТТП, Не всегда срабатывают оповещения на изменение ТТП. Закономерности срабатывания/несрабатывания уловить не получается.
 
Цитата
Старатель пишет:
в ТТП отображаются не все значения параметров
Ну, т.е. дискретно, через определённые промежутки времени.
Надо делать так, как надо. А как не надо - делать не надо.
Плохо срабатывают оповещения на изменение ТТП, Не всегда срабатывают оповещения на изменение ТТП. Закономерности срабатывания/несрабатывания уловить не получается.
 
Попробую угадать: в ТТП отображаются не все значения параметров. Поэтому и оповещения работают так.
Но можно написать QLua-скрипт, который будет отслеживать изменения параметров на основе таблицы всех обезличенных сделок. Тогда будете получать все оповещения.
Надо делать так, как надо. А как не надо - делать не надо.
7.0, 7.0
 
Нашёл: теперь он в "Основных настройках"
Надо делать так, как надо. А как не надо - делать не надо.
7.0, 7.0
 
В предыдущих версиях в меню Торговля был пункт "Настройка счетов..."
Где сейчас этот пункт меню?
Надо делать так, как надо. А как не надо - делать не надо.
OnClose()
 
Внутри колбека OnCleanUp() "Идентификатор сессии" и "Дата торгов" остаются старыми. Так и должно быть?
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource
 
Цитата
Sergey Gorokhov пишет:
Однако в общем случае, решение доступа к данным в виде заказа через CreateDataSource должно работать.
У вас работает?
Если вы получаете данные через getParamEx, то заказывать их через CreateDataSource нет смысла, поскольку заказываемые параметры должны быть по-любому в списках принимаемых параметров, независимо от вызова этой функции CreateDataSource.

Цитата
Sergey Gorokhov пишет:
Речь о том, что в общем случае, если делается заказ данных через CreateDataSourceс параметром INTERVAL_TICK (это важно) то мы получаем саму таблицу (вернее ее поток данных) и можем с ней работать минуя функции работы с графиками. Но, если мы заказываем интервал, то мы не получаем саму таблицу, а получаем только график, с которым функции доступа к таблицам не работают.

Не совсем понял ваш комментарий.
Общий случай - это когда заданы все параметры функции CreateDataSource(STRING class_code, STRING sec_code, NUMBER interval, [, STRING param])
Так вот в общем случае "решение доступа к данным в виде заказа через CreateDataSource" не работает.
Оно работает в частном случае, когда не задан последний параметр param, да и то с оговорками.

Это я так, не спора ради, даю информацию Антонио и, видимо вам.
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource
 
Цитата
Sergey Gorokhov пишет:
Вы указываете на частный случай, о статусе которого я к сожалению сейчас не готов ответить.
Однако в общем случае, решение доступа к данным в виде заказа через CreateDataSource должно работать.
Что есть частный случай и что есть общий случай в данной ситуации?
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource
 
Цитата
Sergey Gorokhov пишет:
Можете обосновать или привести пример?
https://forum.quik.ru/messages/forum10/message6292/topic525/#message6292
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource
 
Цитата
Антонио пишет:
Вопрос 2: Как узнать способ обращения к ПАРАМЕТРу? Есть ли список ПАРАМЕТРОВ, для которых обязательно/необязательно перед первым обращением создавать поток?
В текущих версиях QUIK создавать поток для параметров бумаг с помощью функции CreateDataSource, если в дальнейшем вы собираетесь обращаться к этим параметрам через getParamEx, нет никакого смысла.
Надо делать так, как надо. А как не надо - делать не надо.
Закрепить вкладки
 
+1
Надо делать так, как надо. А как не надо - делать не надо.
Можно ли получить исторические данные по инструменту не открывая график в QUIK ?, Можно ли получить исторические данные по инструменту не открывая график в QUIK ?
 
В инструкции же написано:
Цитата
Старатель пишет:
Если же график не открыт, то сначала ds:Size() = 0. Свечи придут позже.

Т.е. сразу работать со свечками не получится:
Код
ds = CreateDataSource("SPBFUT", "RIZ5", INTERVAL_M15)
repeat sleep(1) until ds:Size() ~= 0
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 ... 26 27 28 29 30 31 32 33 34 35 36 ... 46 След.
Наверх