Избранное трейдера autotrade
Сегодня начинаем уже писать полноценные скрипты для терминала, а не отдельные блоки кода на lua.
Пройдем:
Структура скрипта
В торговом терминале можно запускать небольшие примеры на lua, как мы это делали ранее, но если говорить о постоянно работающем алгоритме, а не о компактной программе, которая должна выполнить только несколько коротких действий, то минимальная структура скрипта для квика будет содержать следующие функции:
function OnInit – инициализирует глобальные переменные и константы (например, торгуемые бумаги, размеры тейка и стопа, торговый счет и пр.), имена таблиц, необходимых файлов.
function OnStop – функция остановки скрипта, активируется при нажатии клавиши «Остановить» в панели скриптов терминала.
function main – основная функция, создает отдельный поток для выполнения скрипта. Обычно внутри main создается цикл для непрерывной работы, т.к. без него функция выполнит один раз весь код, который в ней прописан и скрипт остановится.
Продолжаем погружаться в основы языка. Сегодня рассмотрим:
Циклы 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, работает на 10й версии квика. Вполне допускаю, что со временем какие-то функции разработчики перепишут и в новых версиях что-то нужно будет сверять c мануалами, уточнять хелпом и на форумах, но предполагаю, что а) эти изменения будут вводиться очень не быстро и б) синтаксис и основа при этом останутся без существенных изменений.
Сегодня рассмотрим:
message
Выводит сообщение в торговом терминале в формате окна (в прошлой статье говорил, что удобнее отключить, чтобы не отвлекаться постоянно) и в таблице системных сообщений.
Особенности message: функция после вывода делает перенос строки, поэтому если необходимо вывести несколько значений в одной строке нужно делать их слияние (об этом ниже).
Для корректного отображения русских букв необходимо выбирать котировку файла Windows-1251 (об этом также в прошлый раз мы уже говорили). Иногда по этой причине некоторые разработчики пишут только на английском весь вывод текста в терминал, чтобы не заморачиваться с кодировкой, в т.ч. при размещении на github и совместной работе с кодом.
Добрый день, друзья! Приветствую вас на канале, посвященном инвестициям. 30.05.23 вышел отчёт за первый квартал 2023 г. компании РусГидро (HYDR). Этот обзор посвящён разбору компании и этого отчёта.
Больше информации и свои сделки публикую в Телеграм.
РусГидро — это крупнейший российский энергетический холдинг. Является лидером в производстве энергии на базе возобновляемых источников, развивающим генерацию на основе энергии водных потоков, солнца, ветра и геотермальной энергии. Особенно это актуально сегодня, когда мировое сообщество дружно планирует осуществить глобальный энергопереход к чистой энергетике.
Добрый день, друзья! Приветствую вас на канале, посвященном инвестициям. 23.05.23 вышел отчёт по итогам 2022 г. компании Газпром (GAZP). Этот обзор посвящён разбору компании и этого отчёта.
Для данной статьи доступна видео версия на Youtube.
Больше информации и свои сделки публикую в Телеграм.
Газпром — одна из крупнейших нефтегазовых компаний мира по величине запасов и объемам добычи.
Основные виды деятельности —разведка, добыча, транспортировка, хранение, переработка и реализация газа, газового конденсата и нефти, а также производство и сбыт тепло- и электроэнергии.