В предыдущей статье мы разобрали как сделать свой первый индикатор на языке Lua для торгового терминала QUIK, какая структура в скрипте индикатора. Сейчас сделаем чуть сложнее индикатор. Это будет индикатор, который рисует линию каждую торговую сессию по цене открытия торговой сессии. Цена открытия текущей сессии служит нам как ориентиром того, куда движется сегодня цена актива, растет или падает, также данный уровень часто может использоваться в качестве горизонтального уровня для внутредневной торговли.
Код индикатора будет выглядеть следующим образом
Settings= { Name="*DayOpenPrice_DTS", line = { { Name = "DayOpenPrice_line", Color = RGB(0,0,255), Type = TYPE_LINE, Width = 2 } } } local curDayOpenPrice = nil local lastSize = 0 function Init() return 1 end function GetCandleDate(ind) -- Получить полную дату свечи по индексу ind local dt = T(ind) local candleDate = 0 if dt then candleDate = (tonumber(dt.year) or 0) * 10000 -- 20230000 candleDate = candleDate + (tonumber(dt.month) or 0) * 100 -- 20230700 candleDate = candleDate + (tonumber(dt.day) or 0) -- 20230728 end return candleDate end function OnCalculate(index) if index == 0 then return nil end if index == (lastSize-1) then -- Для проверки не каждый тик, а только при появлении новой свечи return nil else lastSize = Size() -- Запомнить текущее количество свечей local curDate = GetCandleDate(index) -- Дата текущей свечи local lastDate = GetCandleDate(index - 1) -- Дата предыдущей свечи if curDate > lastDate then -- Если дата на текущей свече больше даты на предыдущей (т.е. сменилась дата - начался новый торговый день) curDayOpenPrice = O(index) -- Сохранить данные цены открытия текущей свечи для отрисовки на графике end end return curDayOpenPrice end
Пояснения к функциям мы сделали прямо в коде, чтобы вы могли понять как это работает.
Добавим файл индикатора «DayOpenPrice_DTS_ind.lua» в папку «LuaIndicators» в директории Рабочего места QUIK.
Далее добавляем в терминале QUIK на график добавим новый индикатор и выбираем из списка наш «*DayOpenPrice_DTS_ind»
На графике мы видим отображается линия, которая строится по цена открытия торговой сессии, каждый день соответственно своя цена открытия.
Если откроем свойства индикатора, то там можно изменить цвет линии и толщину
Скачать архив с индикатором DayOpenPrice_DTS_ind.lua на LUA
Вы уже сейчас можете начать изучать Видео курс- роботы в TSLab и научиться самому делать любых роботов!
Можно записаться на следующий поток ОнЛайн курса «Создание роботов в TSLab без программирования», информацию по которому можно посмотреть тут->
Также можете научиться программировать роботов на нашем Видео курсе «Роботы для QUIK на языке Lua»
Если же вам не хочется тратить время на обучение, то вы просто можете выбрать уже готовые роботы из тех, что представлены у нас ДЛЯ TSLab, ДЛЯ QUIK, ДЛЯ MT5, ДЛЯ КРИПТОВАЛЮТЫ!
Также можете посмотреть совершенно бесплатные наработки для МТ4, Квика, МТ5. Данный раздел также постоянно пополняется.
Не откладывайте свой шанс заработать на бирже уже сегодня!