Избранное трейдера SnickyDog

по

Формирование отчета в формате HTML скриптом на QLUA

Всем привет!

Формирование отчета в формате HTML скриптом на QLUA

В данной статье хотел показать интересный подход формирования отчета из QUIK, который выдается в формате файла HTML и который можно посмотреть любым браузером.

В своем канале на Дзен, я показывал как можно получать информацию скриптами QLUA:

как переносить информацию в Эксель;

как записывать информацию в файл;

как отражать информацию в собственной таблице QUIK.

Все эти способы достаточно ограничены в части оформления выдачи результатов. Если же нужную информацию переносить в файл HTML, то там мы практически ничем не ограничены и можем отображать нужную информацию любыми шрифтами, цветами и пр.

В качестве пример, я покажу скрипт, который запросит все доступные фьючерсы и выдаст их в файл в виде таблицы.

Для начала нам потребуется функция QLUA — getClassSecurities.

Данная функция выводит список всех бумаг указанного класса. В нашем случае команда getClassSecurities(«SPBFUT») выдаст нам список всех доступных фьючерсов. В результате мы получим одну строку с кодами бумаг, разделенные запятыми.



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Запускаю в бой седьмую модификацию. Арбитраж #15

Ссылка на мониторинг: https://tradelink.pro/user/7392dd60-6664-4b89-992b-aef34cd75b87

Открыл сегодня опять, трейдлинк чёт глючит, появится на днях и арбитраж там. Давайте вместе смотреть на мои эксперименты дальше, раз уж я их продолжаю делать. 

 Запускаю в бой седьмую модификацию. Арбитраж #15

Фаза 1.

Tретий тип арбитража, который я когда-либо торговал, на тот момент, т.к. то, что мы торговали на МОЕКС, в чистом виде на крипте не пошло, и пришлось провести несколько этапов модернизации алгоритма. Про него можно узнать в моей серии постов «Ликбез по арбитражу» в оглавлении моего блога.

Фаза 2.

Тут я, очумев от радости и 100 % прибыли за полгода, включил его на полную катушку. И в основной счёт добавил на пике. И клиентам… Пара-пара-па. Через полгода стало очевидно, что период номер один – одурачивание случайностью, а я был рад одурачиться. Половина клиентов из управления ушла. Те, кто торговал со мной арбитраж, из квантов включили так же все на хаях, ибо экспериментировать не хотелось со мной, а подтверждение в 100% — самое время заходить.



( Читать дальше )

Qlua: структура скрипта для торгового терминала, обработка обрыва связи и её возобновления, работа с файлами

Сегодня начинаем уже писать полноценные скрипты для терминала, а не отдельные блоки кода на lua.

Пройдем:

  • Структуру типового скрипта qlua с примерами.
  • Обработку скриптом «обрыва связи» с сервером и возобновления работы.
  • Работу с файлами: запись, перезапись и чтение файла.
  • getScriptPath, getWorkingFolder

Структура скрипта

В торговом терминале можно запускать небольшие примеры на lua, как мы это делали ранее, но если говорить о постоянно работающем алгоритме, а не о компактной программе, которая должна выполнить только несколько коротких действий, то минимальная структура скрипта для квика будет содержать следующие функции:

Qlua: структура скрипта для торгового терминала, обработка обрыва связи и её возобновления, работа с файлами

function OnInit – инициализирует глобальные переменные и константы (например, торгуемые бумаги, размеры тейка и стопа, торговый счет и пр.), имена таблиц, необходимых файлов.

function OnStop – функция остановки скрипта, активируется при нажатии клавиши «Остановить» в панели скриптов терминала.

function main – основная функция, создает отдельный поток для выполнения скрипта. Обычно внутри main создается цикл для непрерывной работы, т.к. без него функция выполнит один раз весь код, который в ней прописан и скрипт остановится.



( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Qlua: основы, часть 2

Продолжаем погружаться в основы языка. Сегодня рассмотрим:

 

Циклы for … do… end
while do … end
repeat … until
sleep
Как пройти весь массив циклом
Как пройти таблицу по ключам и значением
break
goto
Локальные и глобальные переменные
Функции
Получение даты и времени
Получение данных через getInfoParam


Цикл for … end

for index = start, end, step do 
-- start – начало отсчета, 
-- end – конец отсчета, step - шаг

  -- тело цикла

end



Пример:

for i = 1, 10 do -- пройтись от 1 до 10 c шагом 1 (по умолчанию)<br />
  message("i="..i)  -- вывод i<br />
end

Можно задать шаг:

for i = 1, 10, 2 do -- пройтись с 1 до 10 с шагом 2

  message("i="..i)

end

Цикл while do...end

while (условие) do

  -- тело цикла

end


Выполняет тело цикла, пока соблюдается условие. Если условие на старте не соблюдается, то цикл не запустится.

Пример:

a = 1

while a < 9 do

   a = a + 1

   message(tostring(a))

end

 

Цикл repeat … until



( Читать дальше )

Qlua: основы, часть 1

Весь материал, который здесь и далее будет рассматриваться по qlua, работает на 10й версии квика. Вполне допускаю, что со временем какие-то функции разработчики перепишут и в новых версиях что-то нужно будет сверять c мануалами, уточнять хелпом и на форумах, но предполагаю, что а) эти изменения будут вводиться очень не быстро и б) синтаксис и основа при этом останутся без существенных изменений.

Сегодня рассмотрим:

  • message
  • конкатенация
  • фильтрация по сообщениям в терминале
  • PrintDbgStr
  • комментарии
  • типы данных
  • type
  • операции с числами
  • операции со строками
  • операции с таблицами
  • условные операторы

 

message

Выводит сообщение в торговом терминале в формате окна (в прошлой статье говорил, что удобнее отключить, чтобы не отвлекаться постоянно) и в таблице системных сообщений.  

Особенности message: функция после вывода делает перенос строки, поэтому если необходимо вывести несколько значений в одной строке нужно делать их слияние (об этом ниже).

Для корректного отображения русских букв необходимо выбирать котировку файла Windows-1251 (об этом также в прошлый раз мы уже говорили). Иногда по этой причине некоторые разработчики пишут только на английском весь вывод текста в терминал, чтобы не заморачиваться с кодировкой, в т.ч. при размещении на github и совместной работе с кодом.



( Читать дальше )

....все тэги
UPDONW
Новый дизайн