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

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

Страницы: Пред. 1 ... 20 21 22 23 24 25 26 27 28 29 30 ... 78 След.
Отметки на графике QUIK средствами QLUA
 
Цитата
Sergey Gorokhov написал:
И свечки устанавливаются на координаты дата/цена, а не X,Y окна

Речь конечно же про метки, а не свечки)
Отметки на графике QUIK средствами QLUA
 
Цитата
Goodchild написал:
Подскажите. Нужно в собственном Индикаторе на lua вывести несколько меток на график, примерно в левый верхний угол и в правый нижний угол. Как получить параметры окна графика?
Здравствуйте,
К сожалению такой возможности не предусмотрено.
И свечки устанавливаются на координаты дата/цена, а не X,Y окна
Можно ли в ЛУА определить, что таблица полностью загружена?
 
Здравствуйте,
Надежного способа нет. Т.к. данные поступают непрерывным потоком. Иными словами нет той точки которая отделяет старые данные от новых.
На форуме можно найти много разных вариантов. Например этот или тут
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
Цитата
S C написал:
вот так правильно ?

Согласно синтаксису правильно.
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
S C,

Открываете файл QLUA.chm
Ищите главу "Функции для заказа параметров Таблицы текущих торгов"
там описание функции ParamRequest
Цитата:

Функция заказывает получение параметров Таблицы текущих торгов.

BOOLEAN ParamRequest(STRING class_code, STRING sec_code, STRING db_name)

Для корректной работы функции включите в настройках Рабочего места QUIK признак получения данных «Исходя из настроек открытых пользователем таблиц» (меню Система / Настройки / Основные настройки..., раздел «Программа» / «Получение данных»).
Параметры:

class_code – код класса;
sec_code – код бумаги;
db_name – код параметра.
В случае успешного завершения функция возвращает «true», иначе – «false».
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
Цитата
S C написал:
это правильно?  
Конечно не правильно.
Настоятельно рекомендуем ознакомиться с документацией QLUA.chm
-Функции взаимодействия скрипта Lua и Рабочего места QUIK
--Функции получения значений Таблицы текущих торгов
---Особенности получения значений Таблицы текущих торгов

и самое важное с главой "Функции для заказа параметров Таблицы текущих торгов" о которой уже было сказано.

В связи с этой документацией, заказ данных происходит через функцию ParamRequest

и все эти проверки про param_type=="2" явно лишние
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
Цитата
S C написал:
у меня квик вылетает при перезаказе дынных

при каком перезаказе данных?
Вам было сообщено о двух вариантах. Через терминал и через сами скрипты.
Вы пробовали в Lua скрипте выполнить заказ как уже было сказано?
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
Цитата
S C написал:
или есть "правильный" способ ?
Вопрос не понятен.
Что значит "правильный" способ? Чем по Вашему использование функций для заказа данных является не правильным способом?
Либо Вы сами в терминале заказываете данные, либо за Вас это делает Lua скрипт.
Других вариантов не видно. Если есть идеи, готовы выслушать.
Транзакция с помощью вызова функции., Как сделать транзакцию с помощью функции.
 
Цитата
Иван написал:
Функция Sq() не срабатывает
Вы категорически не правы.
Функция Sq() тут совершенно не причем.
Она у Вас перекрестно срабатывает. Чтобы убедиться просто добавьте message("Hello Word") внутри функции Sq().


А вот транзакция похоже не выполняется. Причина в TRANS_ID = tostring(0), нельзя указывать его равным нулю, минимум 1.
Код
local stopped = false 
function OnStop() 
stopped = true 
return 2000 
end 


function Sq() 
message("Hello Word")
A = { 
ACTION = 'NEW_ORDER', 
ACCOUNT = 'SPBFUT00005', 
OPERATION = 'S', 
CLASSCODE = 'SPBFUT', 
SECCODE = 'SiM8', 
PRICE = tostring(64000) , 
QUANTITY = tostring(2), 
TRANS_ID = tostring(1) 
} 
Err_A = sendTransaction(A) 
message(Err_A)
end 

function main() 
sleep(3000) 
Sq() 
end
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
Цитата
S C написал:
В итоге, что все таки случилось и как автоматизировать проверку сессии корректно ?
Т.е. Ваш вопрос звучит "как заказывать данные автоматически"?.
Тогда для этого есть getParamEx2
И глава в документации "Функции для заказа параметров Таблицы текущих торгов"
Вечерняя сессия в таблице "Текущие торги"
 
Цитата
qwerty123 написал:
Да, я понимаю, что это они устроили. Просто если в "таблице всех сделок" это просто отфильтровать по дате, то в "текущих торгах" просто нет необходимой информации.
Не понятно чего Вы хотите? Информацию транслирует биржа, а QUIK ее просто отображает.
Если Вам нужно смотреть мин/макс именно за астрономическую дату, а не за сессию, подсказка уже была - смотреть на графике.

Цитата
qwerty123 написал:
P.S. А понедельничная сессия начинается в пятницу вечером, я правильно понимаю?
Да верно.
Транзакция с помощью вызова функции., Как сделать транзакцию с помощью функции.
 
Цитата
Иван написал:
но так не работает.

что именно не работает?
И почему Вы ставите sleep перед Sq()? Получается что Вы ждете sleep(3000) и только потом срабатывает Sq(), судя по тексту Вам надо в точности на оборот.
Вечерняя сессия в таблице "Текущие торги"
 
Цитата
qwerty123 написал:
Странно считать одной сессией нечто с перерывом в 10 часов.

Вы можете поделиться этими мыслями с биржей, они это устроили
EIS, есть ли на квик индикатор импулсной системы д.Элдера macd
 
Цитата
Антон написал:
Ну я и имею ввиду, может кто уже создал такой индикатор, там вроде ничего сложного.Нигде не могу найти.
У нас такой информации нет
Транзакция с помощью вызова функции., Как сделать транзакцию с помощью функции.
 
Цитата
Иван написал:
Перед функцией main() прописываются функции

Можно просто разместить текст выше.

Код
 transaction  =  {
ACCOUNT =  "YY0070001234" ,
CLIENT_CODE =  "XXX" ,
TYPE =  "M" ,
TRANS_ID =  "7" ,
CLASSCODE =  "TQBR" ,
SECCODE =  "HYDR" ,
ACTION =  "NEW_ORDER" ,
OPERATION =  "B" ,
PRICE =  "0" ,
QUANTITY =  "15" 
}
 sendTransaction (transaction)

function main()
--какой-то код
end
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
Цитата
S C написал:
Текущих торгов - статус путой

Вот эта информация и требовалась. Пустым параметр не должен быть.
Проверьте настройки терминала, в меню Система - Настройки - Основные - Программа - Получение данных, должна быть включена опция "Исходя из настроек открытых пользователем таблиц"
После чего попробуйте выполнить перезаказ данных, через меню Система - Заказ данных - Перезаказать.
Сообщите появятся ли данные в параметре "Статус" в таблице текущих торгов.
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
S C,
Большая просьба ответить на поставленный вопрос.
Цитата
Sergey Gorokhov написал:
Что отображается в параметре "Статус"?
Цитата
S C написал:
таблица статус вот(это я ее пишу в файл):
Да Вы это уже говорили выше.
Вечерняя сессия в таблице "Текущие торги"
 
Цитата
qwerty123 написал:
Печально это. "Текущие торги" бесполезная вещь получается если все самому считать приходится.

Еще раз повторим что по срочному рынку сессия начинается в 18:45 а не в 10 утра.
Почему Вы считаете данные после 18:45 неверными ведь они относятся в текущей торговой сессии?
А после 18:45 это уже другая сессия.

И с этим надо жить, это особенность режима торгов.
Транзакция с помощью вызова функции., Как сделать транзакцию с помощью функции.
 
Цитата
Иван написал:
Мне нужно вначале кода записать её в функцию, чтобы повторять несколько раз.

что значит "в начале кода"? Что для Вас "начало" кода?
Если нужно несколько раз вызвать sendTransaction, Вы можете добавить ее в цикл while или for
Вечерняя сессия в таблице "Текущие торги"
 
qwerty123,
К сожалению, что-либо сделать нельзя т.к. информация в таком виде поступает с биржи. А на бирже по срочному рынку сессия считается в 18:45 предыдущего дня.
Цитата
qwerty123 написал:
Мне надо знать мак и мин цену за сегодня без учета вчерашней сессии.
Эту информацию можно получить например с графика цены и объема на дневном интервале.
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
Цитата
S C написал:
вообще когда все работает нормально param_type=4

Да так и есть. И у нас описанная функция так и возвращает. т.е. проблема не воспроизводится.
Открыта ли у Вас таблица Текущих торгов? Что отображается в параметре "Статус"?
Транзакция с помощью вызова функции., Как сделать транзакцию с помощью функции.
 
Здравствуйте,
На сколько становится понятно, Вам нужен пример функции sendTransaction
Если так то пример может быть следующий:
Код
transaction = {
ACCOUNT="YY0070001234",
CLIENT_CODE="XXX",
TYPE="M",
TRANS_ID="7",
CLASSCODE="TQBR",
SECCODE="HYDR",
ACTION="NEW_ORDER",
OPERATION="B",
PRICE="0",
QUANTITY="15"
}

sendTransaction(transaction)
getParamEx дает status.param_type=2 а status.param_value= 0.000000, но де-факто торги идут, поясните пожалуйста
 
Цитата
S C написал:
Как я понял, status.param_type=2 означает что status.param_value тупо не получен.  
Согласно документации param_type это Тип данных параметра, используемый в Таблице текущих торгов. Для param_type=2 это тип данных LONG
нигде не сказано что param_type=2 означает что данные не получены.

Проверьте что на самом деле отображается в таблице текущих торгов. И о каком классе идет речь?
EIS, есть ли на квик индикатор импулсной системы д.Элдера macd
 
Здравствуйте,
Именно такого индикатора в QUIK нет. Есть стандартный индикатор MACD.
Имеющиеся встроенные индикаторы, приведены в документации на терминал QUIK (открывается клавишей F1)
-Раздел 4. Работа с графиками
--Методы технического анализа

Кроме того, пользователи имеют возможность создавать свои собственные индикаторы на языке Lua
Описание приведено в отдельном файле QLUA.chm, глава "Индикаторы технического анализа"
Поле "Курс" таблицы текущих итогов, класс кросс-курсы валют., Как обратиться к полю "Курс" таблицы текущих итогов? Не знаю где найти название параметра
 
Здравствуйте,
Узнать точное имя любого параметра можно выведя таблицу Текущих Торгов по DDE с установленным признаком "Формальные заголовки"
так для параметра "Курс" имя будет CROSSRATE
т.е. команда будет такая:
local PriceStep = tonumber(getParamEx('CROSSRATE', 'USD', "CROSSRATE").param_value);
Описание статусов TRADESTATUS
 
Цитата
Илья написал:
Спасибо за оперативный ответ.
А что такое "ЦАЗ"? В инете никак найти не могу.
ЦАЗ это "Торги по цене Аукциона Закрытия"

Что это такое, подскажут специалисты биржи.
Описание статусов TRADESTATUS
 
Здравствуйте,
Для фондовой секции значения TRADINGSTATUS такие:
Цитата

0 - закрыта
1 - открыта
2 - закрытие
3 - открытие
4 - аукцион
5 - ЦАЗ
6 - дискретный аукцион

Для срочной секции только такие
Цитата

0 - закрыта
1 - открыта
мелкие числа
 
Здравствуйте,
Это особенности типа данный с плавающей точкой.
По данной теме можно найти много статей в интернете.
Рекомендуем округлять значения до нужного знака перед сохранением в файл.
Вопрос по обработке исключений в Qlua, Вопрос по обработке исключений в Qlua
 
Цитата
Артем написал:
Виды исключений : неправильная ссылка, не верный адрес, хост не доступен???

Боюсь что кроме как предварительно установить проверку других идей нет.
Проверку можно выполнить через тот же Ping
У нас эта тема обсуждалась тут и тут
Передача таблиц lua в QUIK., Технические детали.
 
Здравствуйте,
Цитата
Vladimir написал:
1) функции, передающие таблицы lua в quik (sendTransaction и подобные) не меняют содержимое таблиц-параметров?
2) то есть таблицы-параметры не нужно создавать каждый раз заново, а можно использовать повторно? Разумеется, обновив значения её полей.

Таблицу не нужно создавать каждый раз заново. Можете смело использовать повторно.
Цитата
Vladimir написал:
3) будут ли функции sendTransaction и ей подобные корректно работать с таблицей с дополнительными полями, не описанными в документации? Например, если добавить поле "__type" или даже "@#$ ~*!$%" для введения подтипов таблиц во внутренней логике скрипта?
4) будут ли функции sendTransaction и ей подобные корректно работать с таблицей с установленной метатаблицей (устанавливаемой ф-цией setmetetable)?  
5) будут ли в переданных в Quik таблицах работать метаметоды, например "__index"? Зависит ли это от способа определения метаметода (например, "__index" может быть таблицей или функцией)?

нет, не будут.
таблица должна содержать пары типа string-string (ключ - значение). Ошибки скорее всего не случится, но транзакция не отправится.
если попадутся поля, которые не описаны для этой транзакции, то будет реджект со стороны терминала.
не работает sleep, не работает sleep
 
Вячеслав,
К сожалению, не можем объяснить причины происходящего, на Windows 10 x64 сидят тысячи людей, и у них такой проблемы нет.
Возможно проблема в самом терминале или его библиотеках.
Пришлите для анализа архив всей папки с проблемным терминалом QUIK (без ключей доступа) нам на адрес quiksupport@arqatech.com
не работает sleep, не работает sleep
 
Вячеслав,
какая версия терминала QUIK у Вас используется? и какая версия qlua.dll в папке с терминалом QUIK?
не работает sleep, не работает sleep
 
Цитата
Вячеслав написал:
У меня винда10 64, думаю из-за этого...
точно нет

Цитата
Вячеслав написал:
То что на моей винде эта функция не работает, это сто процентов.
у всех работает.
Приведите пример Вашего кода где не работает.
Пришел OnTransReply с пустым brokerref
 
Цитата
Nikolay написал:
COMMENT при отправке заявки
Про это уже было сказано выше

Цитата
Sergey Gorokhov написал:
Цитата
Suntor   написал:
Единственно, непонятно куда девается содержимое поля COMMENT при sendTransaction. Я нигде не вижу в колбеках значения из этого поля.
Цитат из документации на терминал QUIK:
Цитата
COMMENT - Текстовый комментарий, указанный в заявке.  Используется при снятии группы заявок
А так как через Lua нельзя использовать групповое снятие заявок, то и параметр COMMENT просто игнорируется

Цитата
Nikolay написал:
. Поле BROKERREF не подходит совершенно
если задача только в поиске "своих" заявок, может тогда использовать TRANS_ID?
Укажите на всех транзакциях параметр равным 11111.
и у всех заявок у которых TRANS_ID=11111 будет означать что транзакция отправлена нужным роботом.
У другого робота укажите например 22222 и т.д.
Пределы терминала QUIK (память, количество вкладок, графиков, lua-скриптов)
 
Vladimir,
Да такой вопрос уже был
https://forum.quik.ru/messages/forum8/message3668/topic432/#message3668
Тормоза на серверах брокера и луа скрипт., Как не входить в сделку в момент тормозов.
 
Цитата
sav 312 написал:
Могу предположить, что обезличенные сделки грузились без задержки, т.к. и в стакане и на графике все было нормально

читайте внимательней:
Цитата
Sergey Gorokhov написал:
Однако и это не вполне надежно т.к. данные по обезличенным сделкам едут отдельным потоком от транзакций

Цитата
sav 312 написал:
то что он должен будет сделать?
Это уже должны решать Вы как автор робота.

Цитата
sav 312 написал:
Или Вы имели ввиду другой алгоритм?
а что мешает отправить заведомо некорректную транзакцию?
но только такую, чтобы сервер ее пропустил а биржа нет.
Этого можно добиться например указав цену вне диапазона биржи.
Получение текста из информационных сообщений QUIK., Добавлен ли в QLua функционал получения информационных сообщений QUIK?
 
Здравствуйте,
В текущий момент такой возможности нет.
Таблица сделок, Данные из таблицы сделок (TRADES)
 
Здравствуйте,
У нас проблема не воспроизводится. Параметр QUANTITY прекрасно работает.

Приведите полную версию Вашего кода. И сообщите версию терминала QUIK.
Тормоза на серверах брокера и луа скрипт., Как не входить в сделку в момент тормозов.
 
Цитата
sav 312 написал:
Каким образом в луа-скрипте предусмотреть защиту от входов в сделку в момент тормозов? По какому параметру луа-скрипт может отследить их наличие или отсутствие?
Надежного способа нет. Т.к. все зависит от природы тормозов.
С ваших слов, время сервера не отставало, значит тормозов именно на сервере QUIK не было. Скорей всего задержка случилась на участке до биржи. При таком сценарии, отследить задержку можно по времени биржи, которое можно взять например в Таблице Обезличенных Сделок. Т.е. сравнить время в последней сделки в таблице с временем сервера.
Однако и это не вполне надежно т.к. данные по обезличенным сделкам едут отдельным потоком от транзакций.
Именно в Вашем случае, самым надежным способом было бы отслеживание времени ответа на транзакцию.
Как работать с данными после рабочей сессии? (когда биржа закрыта или в выходные), Работа с историческими данными
 
Цитата
Андрей написал:
это действие означает, что Квик к серверу не подключится

Это значит что QUIK очистит данные когда подключится к серверу.

Цитата
Андрей написал:
что бы Квик не подключался к серверу?
Просто не подключать QUIK к серверу.
Трейлинг стоп на графике
 
Евгений Петров,
Здравствуйте,
Ответ был отправлен почтой.
Большая просьба, в будущем уточнять что речь про QLUA.
Для рисования на графиках, в QLUA есть механизм рисования меток.
См. документацию глава "Функции для работы с метками"
Защита кода QLua от компрометации, Есть ли возможность исключить доступ к коду на QLua брокера и разработчиков Quik
 
Здравствуйте,
В случае если предполагается передавать код третьим лицам, Вы можете его скомпилировать в *.luac файл и таким образом обезопасить себя. Однако это не 100% защита т.к. есть Lua декомпиляторы (на счет их достоверности ничего сказать не можем). Что касается брокера, то он не видит Ваш код и не имеет никакой возможности его увидеть.
непонятная ошибка при подачи транзакции
 
Цитата
S C написал:
вот код :

Это не весь код, а его часть.
непонятная ошибка при подачи транзакции
 
Цитата
S C написал:
сорри картинка не отоьбразилась
пишет такой текст в окно сообщений : "TrRepl NO LAST TRAN"
Это не наша ошибка.
Скорей всего это Ваш скрипт возвращает указанное сообщение.
Проверьте по коду скрипта.
Линии тренда
 
Ilya,
К сожалению такой возможности не предусмотрено.
Установка данных индикатора из скрипта
 
Из обычного Lua скрипта нельзя ставить значения на индикаторах. Это возможно только в коде самого индикатора
Доступ к свечам открытого интереса фьючерсов
 
Цитата
Виктор Столетов написал:
Правда все эти наблюдения никак не решают проблему несоответствия dOI и V в трансляции данных биржей
Хорошо что Вы понимаете что данные транслируются биржей, а не QUIK.
В связи с чем, специалисты биржи смогут более компетентно помочь в данном вопросе.


Цитата
Виктор Столетов написал:
Ведь объем переговорных сделок как я понимаю неизвестен.
известен, он в таблице обезличенных сделок транслируется, опять же по классу PSFUT
awg_position_price
 
Илья,

Это одно и тоже, только называется по разному и добавлять ничего не будем ибо нет смысла дублировать одну цифру два раза.
Где ошибка при подписки на тиковые данные ?
 
Цитата
Андрей написал:
Кстати да, от чего то не строится...
Тогда вопрос к брокеру. Скорей всего Вам забыли дать права на таблицу обезличенных сделок.
Поле "param_value" из таблицы ф-ции "getParamEx" и "getParamEx2"
 
Андрей,
Если речь про param_value, то в результате Вы увидите для времени число в формате ЧЧММСС, для даты в формате ГГГГММДД
Если речь про param_image, то увидите в результате строку такую же как в таблице текущих торгов.
Страницы: Пред. 1 ... 20 21 22 23 24 25 26 27 28 29 30 ... 78 След.
Наверх