Цена акции Газпрома - 27880 рублей. И количество акций в лоте - 10. И другие бумаги также. Так, вроде, быть не должно. Или я пропустил какую-нибудь новость? Да демо-счет сильно вырос. А может сильно снизился, с 300 т.р. до 230 т.р. и тут ее и деноминировали до 23.3 млн.руб.
XXM написал: 1. если вместо account = 'SPBFUT001ad' написать account = 'blablabla', мы увидим сообщение:Ошибка: Указанный счет депо не найден: "blablabla", OpenLong, SiH1, B, 1, price=74260.0
Просьба уточнить, что подразумевалось под этим пунктом?
В сообщении #6 в п.2 приведен код программы SuperScalp.lua Если выставить в function send_order() параметр account = 'blablabla', то при выставлении заявки при rus = true trans_params{} будет таким:
Речь идет в ветке "Программирование на языке Lua". При подаче заявки руками через форму заявки мы не сможем ошибочно ввести аккаунт "blablabla" в поле "Торговый счет". Поэтому говорить "тоже самое происходит и при подаче заявки руками" не корректно.
Константин написал: ... Указан не правильный счет, заявка не должна выставляться...
Именно так! ---------------- Одна функция позволяет себе заменить счет в заявке на такой, как ему кажется, БОЛЕЕ правильный счет, а другой тогда можно будет и количество подправить?
Evgeniy Karnaukhov написал: Да, действительно наблюдаем опечатку, естественно, должно быть написано "6.10.23". Данную ситуацию разбираем, документацию исправим в одной из очередных версий ПО.
Ясно.
2.
Цитата
Evgeniy Karnaukhov написал: Давайте уточним. Инцидент регистрировался на тему опечатки в документации, которые Вы привели в первых сообщениях. По поводу ответа на правильный/неправильный ввод данных в "account" Вам было отвечено ранее в #8, что все ответы корректны. Ответ "Ошибка: Указанный счет депо не найден" уже возвращается, если Вы в "account" вводите некорректное название счета. Уточните, пожалуйста, что Вы имели в виду, возможно могли не совсем правильно Вас понять.
Тема опечатки меня волновала в 135-ю очередь, там я, как писал, уже догадался, ЧТО именно следут читать:
Цитата
XXM написал: "6.11.3 ... Там этот пункт отсутствует. Догадываемся, что следует читать п. 6.9.3."
3.
Цитата
Evgeniy Karnaukhov написал: По поводу ответа на правильный/неправильный ввод данных в "account" Вам было отвечено ранее в #8, что все ответы корректны. Ответ "Ошибка: Указанный счет депо не найден" уже возвращается, если Вы в "account" вводите некорректное название счета. Уточните, пожалуйста, что Вы имели в виду, возможно могли не совсем правильно Вас понять.
"было отвечено ранее в #8, что все ответы корректны" тоже читал, понял. Также прочитал, что " Ответ "Ошибка: Указанный счет депо не найден" уже возвращается, если Вы в "account" вводите некорректное название счета." Мое уточнение будет состоять в том, вышесказанное вами НЕВЕРНО в случае одного счета в рабочем QUIK. И в сообщении #6 привожу скриншот (Отчетливо видно, что в заявке account = blablabla OnTransReply подтверждает указанный account. Но вот OnOrder и OnTrade молча игнорируют команду трейдера и делают то, что делают: меняют account на тот, который считают нужным!). И сделка, поданная с "account = blablabla" проходит, как будто так и должно быть, и не важно, account <> blablabla! Считаю верным во всех случаях ошибочного указания параметра account возвращать ответ "Ошибка: Указанный счет депо не найден", а не будет "автоматически подставлять" счет срочного рынка.
Evgeniy Karnaukhov написал: XXM, добрый день. Описанная в данном инциденте ошибка была исправлена в версии 8.12.0 терминала QUIK. Рекомендуем вам обновить версию программы. Приносим извинения за причиненные неудобства.
Вы поторопились с отчетом и извинениями:
Уточню свой предыдущий ответ: Теперь понимаю, что при одном счете ФОРТС в UID в сделках при ошибке в заявке account = 'blablabla' QUIK автоматически подставляет значение account этого счета и заявка идет на исполнение. Хотя считаю, что ответ "Ошибка: Указанный счет депо не найден" был бы правильным.
Evgeniy Karnaukhov, версию обновил. Руководство пользователя поправили, увидел. Теперь понимаю, что при одном счете ФОРТС в UID в сделках при ошибке в заявке account = 'blablabla' QUIK автоматически подставляет значение account этого счета и заявка идет на исполнение. Хотя считаю, что ответ "Ошибка: Указанный счет депо не найден" был правильным.
Уважаемый. Я вам два раза уже намекал, что вы не разработчик терминала и не даже понимаете суть вопроса. не мусорьте, помолчите и подождите ответа разработчиков.
Присоединяюсь:
Вы не разработчик терминала и даже не понимаете суть вопроса. Не мусорьте, помолчите и подождите ответа разработчиков.
https://arqatech.com/upload/iblock/194/quik_lua.zip Интерпретатор языка Lua, Руководство пользователя, Версия 8.12 4.24 Транзакции, Описание параметров транзакций, страница 91 Слов "(временно не используется)" уже нет. Т.е. имеем флаги есть, и они используются. Кем и как? Михаил отписался, но ясности не прибавил :) А что скажет QUIK clients support?
В Руководстве пользователя "Интерпретатор языка Lua" есть даже глава 5. Описание битовых флагов Но по флагам транзакций ни в этой главе, ни в других местах не нашел информации. Гадать как-то дискомфортно, прошу описания.
1. скриншот. Отчетливо видно, что в заявке account = blablabla OnTransReply подтверждает указанный account. Но вот OnOrder и OnTrade молча игнорируют команду трейдера и делают то, что делают: меняют account на тот, который считают нужным! Это ли не удивительно?
Интерпретатор языка Lua.pdf, стр.33, 3.11 Функции для работы с заявками. читаем: STRING result sendTransaction(TABLE transaction) В качестве параметра принимает таблицу, в которой имена и значения полей соответствуют параметрам tri-файла (см. Руководство пользователя QUIK, Раздел 6 «Совместная работа с другими приложениями», п. 6.11.3). Там этот пункт отсутствует. Догадываемся, что следует читать п. 6.9.3. ACCOUNT Номер счета Трейдера. Параметр обязателен при «ACTION» = «KILL_ALL_FUTURES_ORDERS». В самом деле, при сделках купли-продажи в этом параметре может быть все, что угодно, его может и не быть вовсе. Но возник теоретический (т.к. на практике нет субсчетов) вопрос: как делать заявки при наличии нескольких субсчетов ФОРТС на одном QUIK?
Эпик вин написал: Мдаа.. Давненько я такого не встречал. Обратная совместимость 0/10, очевидность 0/10, документация 2/10, шлангование и перекаты 10/10.
Этот тред длиной в два года достоин того, чтобы поместить его первой ссылкой в тех.документации арки и квика. Я бы даже сказал, что он обязателен к прочтению теми, кто собирается погружаться. Как и множество других, чуть менее эпичных.
Спасибо всем участникам за то, что многим сэкономили время на исследование этого архитектурного кошмара.
...OnTrade() и OnOrder() могут вызываться несколько раз, даже если визуально никакие поля не поменялись, так как не все поля структуры сделки видны через QLua.
Вроде бы как-то обещали, что внесете порядковый номер обновления для каждой сущности, что было видно, что что-то поменялось. Три года с тех пор прошло.
Let_it_go написал: Мне мерещится, или колбек OnTrade срабатывает три раза на каждую сделку? Один за другим приходят три отчёта о совершении одной сделки.
В системе QUIK предусмотрен где-то признак счета "Единый" или еще какой другой? И почему на первом счете лимит открытых поз. нулевой, хотя деньги есть и они видны в другой таблице -лимитов по ДС, а на другом счете, где только ФОРТС - картинка кардинально отличается?
Задавал вопрос тут: https://forum.quik.ru/forum1/topic3969/ Задавал вопрос брокеру. Никакого ответа пока не получил. Теперь вопросы задаю тут, на ветке Lua.
Как из Lua узнать сумму денежных средств на начало торгов?
Там где размыто - реальные цифры. Сперва хочу понять: в системе QUIK предусмотрен где-то признак счета "Единый" или еще какой другой? И почему на первом счете лимит открытых поз. нулевой, хотя деньги есть и они видны в другой таблице -лимитов по ДС, а на другом счете, где только ФОРТС - картинка кардинально отличается?
Имеем один счет, "Единый", картинка с таблицей "Ограничения по клиентским счетам" и "Таблица лимитов по денежным средствам":
Тот же брокер, только ФОРТС, те же таблицы:
Разница в наполнении ячеек, 1 и 2:
На первой картинке ячейка "Лимит откр. поз." в таблице "Ограничения по клиентским счетам" равна нулю, на второй - сумма денежных средств на начало торгов. На первой картинке ячейка "Входящий остаток" в таблице лимитов по денежным средствам равна сумме денежных средств на начало торгов, на второй - нулю.
Как из Lua определить, откуда брать общую цифру денежных средств на начало торгов в общем случае?
Stanislav Tvorogov написал: ... 4. Со стороны Рабочего места QUIK узнать версию серверного ПО к сожалению, невозможно. По этому вопросу рекомендуем обращаться к Вашему брокеру.
Т.к. пользовательское ПО работает в связке с серверным ПО, предлагаю ввести в информационное окно поле "Версия программы сервера".
Sergey Gorokhov написал: Suntor , По данному обращению мы диагностируем проявление исправленной в версии сервера 5.18 ошибки, связанной с трансляцией некоторых полей в таблицу транзакций через серверы доступа. Проблема исчезнет после обновления серверного ПО у Вашего брокера, до этой версии.
1. Если возникла ошибка в некотором обновлении ПО (которой, по идее, не должно появиться, ведь это же ОБНОВЛЕНИЕ!!! программы, ее улучшение, развитие, появление новых возможностей, но отнюдь не ухудшение имеющегося функционала), неужели у брокеров, которые установили это ПО, в котором обнаружены ошибки, не возникает обязанности обновить ПО, в котором эта ошибка устранена, немедленно? 2. Какой номер версии серверного ПО, в котором появилась ошибка, связанная с "трансляцией некоторых полей в таблицу транзакций через серверы доступа"? 3. Какой номер версии серверного ПО, в котором эта ошибка устранена? 4. Как пользователь QUIK может проверить версию серверного ПО?
Я уж чего только не думал, где только у себя в программе косяк искал (((
По существу: QUIK 7.14.1.7 в обоих случаях. UID и брокер не уточнял, т.к. сообщения прислал мой коллега, пользователь моей программы. На всякий случай спрошу. Но в сухом остатке: reply.brokerref - ПУСТОЙ !!!
Присоединяюсь к предложению. Давно попытался применить OnParam() - отказался: лишних срабатываний очень и очень много. Цифр сейчас привести не могу, правда, но там, насколько помню, несколько десятков ненужных срабатываний.
Указанный в УраганСкрипт.lua подход я применял в отношении как штатных индикаторов, так и написанных на Lua - с применением 'close'. Работало исправно, пока не наткнулся, что на Volume это не применимо. Спасибо за ответы : )
Код
-- УраганСкрипт.lua
line = 'Fractals'
function main()
number_of_candles=getNumCandles(line)
t = getCandlesByIndex(line, 0, number_of_candles-20, 20)
for i=0,19 do
t1 = t[i]['low']
t2 = t[i]['high']
if t1+t2>0 then
message(i..' '..line..' low = '..t1..', high = '..t2)
end
end
end
Sergey Gorokhov написал: Вам уже два человека объяснило что получить данные с графика Volume через идентификатор можно.
Я на примере (сообщение #9) показал, что данные с графика Volume через идентификатор невозможно. Через идентификатор с графика Volume можно получить значение цены инструмента, Close. Вы, пожалуйста, не подменяйте понятия "параметр свечи"(4.22 Свечки графика, Интерпретатор языка Lua "Руководство пользователя", Версия 2.3) со строковым идентификатором графика или индикатора в рамках пункта 3.10.3 getCandlesByIndex (оттуда же). На мой взгляд, тема не раскрыта. Вопрос закрыт.
Задаю другой вопрос: Есть в QUIK индикатор "Fractals"
Код
-- УраганСкрипт.lua
line = 'Fractals'
function main()
number_of_candles=getNumCandles(line)
t = getCandlesByIndex(line, 0, number_of_candles-10, 10)
for i=0,9 do
t1 = t[i]['close']
message(i..' '..line..' = '..t1)
end
end
Есть ли возможность получить из него данные штатными способами, через идентификатор?
Сергей написал: "тайно" =) Постановка вопроса претендует на раскрытие глобального коварного замысла, несомненно, вредоносного по своей сути :)
Я об этой фиче узнал из вопроса, адресованного мне в переписке. Проверил - был в шоке ! Поэтому слово "тайно" - это как бы эмоциональная реакция. На самом деле - элементарная недоработка. Получается, как к индикатору, значение объема не вытащить никак! Ведь это же VOLUME, а не какой-то там параболик, или, простите, эмашка какая !
Sergey Gorokhov написал: Для графика цены и для графика объема один источник информации, а не два.
Можете продолжить: Для графика цены, для графика объема и для графика скользящей средней - один источник информации, а не три. Поэтому ... Но, вообще-то, ответ как-то так, что не совсем ответ.
Цитата
XXM написал: присвоил идентификатор графику Volume и попытался получить ее значение через Lua-скрипт. Получил Price
Вы проясните ситуацию с идентификатором: его-то присваиваю графику объема! Почему обращаясь к нему я не получаю значение объема?
Выяснилось это как-то прозаично: присвоил идентификатор графику Volume и попытался получить ее значение через Lua-скрипт. Получил Price. Традиционный вопрос: как такое может быть?
Простенькая рабочая программа. Скачал - запустил. Только надо, чтобы на вашем QUIK был график инструмента из файла trades.csv. И еще малость: присвоить этому графику идентификатор - код тикера. Например, "SiZ5"
Stanislav Tvorogov написал: Поэтому клиенты видят многократный апдэйт одной и той же заявки без ее видимых изменений. В одной из следующих версий серверного ПО QUIK мы постараемся исправить эту ситуацию, чтобы не дублировать отправку заявки в одном и том же состоянии несколько раз.