Избранное трейдера UnusSedLeo
Продолжаем изучение qlua, cегодня:
Интегрируем таблицы в структуру скрипта qlua.
Удаляем таблицы через DestroyTable.
Останавливаем скрипт через IsWindowClosed.
Обработка события закрытия таблицы через коллбэк.
Работа с цветом SetColor, Highlight, SetSelectedRow.
Пишем простого советника.
В прошлый раз мы рассмотрели как с помощью qlua создать таблицу в торговом терминале и заполнить её информацией из таблицы текущих торгов. Но это была статичная табличка, чтобы её «оживить» нужно разместить операции с нашей таблицей внутри структуры скрипта в функции main.
Саму таблицу мы можем создать до цикла while и внести неизменяемые данные (в нашем случае тикер и наименование бумаги), а уже заполнить цифрами и обновлять внутри цикла. Пока будет работать скрипт таблица будет обновляться.
function OnInit()
tikers = {"GAZP", "SBER", "VKCO"}
progname = "mytable :"
timeout = 5000
end
function OnStop()
do_it = false
message(progname.." Финиш.")
end
function main()
message(progname.Сегодня начинаем уже писать полноценные скрипты для терминала, а не отдельные блоки кода на 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
Для людей уже торгующих через Quik можно перейти сразу к настройкам редактора кода, а тем, кто хорошо знаком с Notepad++, то сразу к запуску скрипта.
В прошлой статье я привел статистику ЦБ, что клиентов, работающих через мобильные приложения брокеров сейчас в разы больше тех, кто работает через торговые терминалы. По этой причине я решил кратко затронуть и установку квика, и поделиться полезными настройками на старте (хотя, полагаю, что среди аудитории смартлаба, доминирующая часть именно тех, кто с терминалом «на ты», продвинутые пользователи сами могут в комментариях указать свои лайфхаки по настройкам и работе).
Подробную инструкцию по работе в квике и всем возможным настройкам я не планирую делать – желающие могут найти всё это в виде различных статей, полезных обзоров, в т.ч. соответствующего мануала по терминалу от разработчиков. Здесь я лишь хочу коснуться основных моментов, которые сделают работу в квике более комфортной для глаз, удобной и быстрой в части работы со скриптами.
После пары постов про недвижимость где показывал, что облигации дают купонный доход в два раза больше чем аренда, что золото дорожает быстрей, что в обоих случаях со сдачей недвижимости в аренду больше головняка чем с золотом и/или облигациями.

Получил и в личку сообщения, и под постами на разных площадках, что это я от незнания и без опыта не могу на недвижимости нормально заработать, а только «вот эти вот 5-6% в год». А кто надо зарабатывает (было пару предложений вложиться). А если я напишу, что в недвижимость тоже инвестирую много лет, так это я всё придумал. Пруфов то нет.
Что ж, пора сорвать покровы, разберём один из моих кейсов инвестирования в недвижимость в Санкт-Петербурге и как можно купить недвижимость со скидкой и главное у кого
В насыщенным на события 2022 рынок недвижимости кидало из стороны в сторону. Сначала на объявлении спецоперации в Феврале, позже на объявление частичной мобилизации в Сентябре. И если в начале года многие хотели запрыгнуть в уходящий поезд и выкупали с рынка всё быстро. Тогда, если помните, курс $USDRUB штурмовал 120 рублей и многим недвижимость казалась отличным вариантом сохранить деньги.
✅ Для тех у кого на графике до сих пор куча осцилляторов и терминал в ярких тонах от которого идет кровь из глаз после часа торгов.
🔻 Настройки Квика я подогнал под свой стиль торговли, функционал заточен именно на интрадей и краткосрок. Цветовая тема на мой взгляд подобранна оптимальна для глаз, при такой теме глаза устают меньше всего. Говорю с уверенностью тк перебрал кучу разных настроек с цветами.
🔻Вот видео по функционалу моих настроек, это я снимал еще на ВТБ брокере, но суть одна и та же.

Я уже писал, почему логарифмические проценты очень удобно использовать при проведении различных исследований в инвестициях — Доходность. Как считать? И почему полезен непрерывный процент.
Сегодня я хочу показать еще одно очень удобное применения логарифмического процента при проведении расчетов доходности, номинированных в различных валютах.
Давайте рассмотрим такой пример. Предположим у нас есть два актива, один номинирован в рублях (актив — А), другой в долларах США (актив — В). Пусть за 28 месяцев А вырос с 20 рублей до 60, а В со 100 долларов до 170. Мы легко можем посчитать прирост каждого актива за указанный период:
Но чтобы сравнить их между собой, нам нужно посмотреть как за этот же период изменился курс. И пусть для нашей задачи курс изменился с 50 рублей за один доллар до 70. Это значит что он вырос на 40% ((70/50-1)*100).