пример-кода-луа-МА

Всем привет!
Хотел поделиться небольшой новостью, у нас есть для всех БОНУС, кто будет покупать любой скрипт или робот для Терминала КВИК.

Бонус — КОМПЛЕКТ ИЗ 42 ИНДИКАТОРОВ ДЛЯ QUIK
СКРИПТЫ С ОТКРЫТЫМ КОДОМ НА ЯЗЫКЕ LUA ДЛЯ ТОРГОВОГО ТЕРМИНАЛА QUIK (КВИК)

Данный архив содержит примеры функций расчета индикаторов терминала QUIK.
Файлы предоставляются «как есть». Допускаются любые правки на свое усмотрение.

ИНСТРУКЦИЯ:
Скопируйте каталог LuaIndicators из архива, в папку с терминалом QUIK.
После этого в терминале, в окне с графиком, станет возможным добавить индикаторы из архива.
Имя каждого из индикаторов начинается с символа *.

ПОЯСНЕНИЯ:
Все функции индикаторов уже имеют настройки по умолчанию, т.е, задавать их все не обязательно.
Все функции требуют предварительного расчета начиная с индекса 1.
Т.е. даже если нужен только последний индекс, все равно требуется провести цикл расчета начиная с самого первого индекса.
Все функции защищены от возможного пропуска данных.

Помимо стандартных настроек, индикаторы содержат следующие опции:
Опция «Round» которая задает количество знаков округления значений индикатора.
Опция «Multiply» в которой можно указать коэффициент на который умножаются значения индикатора.
Опция «Horizontal_line» предназначена для отображения дополнительной горизонтальной линии, если она не нужна, достаточно указать в значении любой текст, например «off».

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

Для удобства, для каждого вида Moving Average существует заранее заданная константа:
SMA,MMA,EMA,WMA,SMMA,VMA = «SMA»,»MMA»,»EMA»,»WMA»,»SMMA»,»VMA»

Каждый файл индикатора, уже содержит в себе весь набор необходимых для его расчета функций.
В каждом файле, присутствует ряд служебных функций:
BOOLEAN function CandleExist(NUMBER I, [TABLE data_source]) —функция проверяет наличие данных.
Функция является универсальной и позволяет проверять не только свечки графика, но также и данные в обычной таблице или DataSource
I — указывает индекс из источника данных.
data_source — является не обязательным, указывает на таблицу, или источник DataSource

NUMBER function Squeeze(NUMBER I, NUMBER P) —предназначена для экономии ресурсов
Данная функция позволяет во временной таблице отказаться от хранения информации за весь период, а хранить только за нужный промежуток. При появлении данных с новым индексом, старые значения, вне промежутка, затрутся новыми.
I — указывает индекс из источника данных.
P — указывает промежуток, за который стоит хранить данные.

NUMBER function ConvertValue(TABLE T, NUMBER …) —предназначена для округления значений индикатора или умножения на коэффициент.
T — таблица в которой должны быть параметры Multiply (коэффициент умножения) и Round (число знаков до которых происходит округление).
— произвольное количество аргументов функции, значения которых следует округлить или умножить.

NUMBER function GetValue(NUMBER I, STRING VT, [TABLE data_source]) —предназначена для получения значений из источника информации.
где:
I — указывает индекс из источника данных.
VT — указывает какие именно данные из источника нужны.

Для удобства, в коде заданы константы, для каждого типа данных:
OPEN,HIGH,LOW,CLOSE,VOLUME,MEDIAN,TYPICAL,WEIGHTED,DIFFERENCE,ANY = “O”, “H”, “L”, “C”, “V”, “M”, “T”, “W”, “D”, “A”
data_source — является не обязательным, указывает на таблицу, или источник DataSource

Функция каждого индикатора имеет три параметра:
NUMBER func(NUMBER I, TABLE Fsettings, [TABLE data_source])

где:
I — обязательный параметр, индекс очередной свечи из OnCalculate или номер элемента в массиве
Fsettings — не обязательный параметр, таблица содержащая настройки индикатора
data_source — не обязательный параметр, указывает на Lua таблицу исходных значений или источник данных созданный через CreateDataSource, если не задан, то данные для расчета берутся из источника данных графика.

Подробнее читайте тут:
 
 
 


Вы уже сейчас можете начать изучать Видео курс- роботы в TSLab и научиться самому делать любых роботов!
 
Можно записаться на следующий поток ОнЛайн курса «Создание роботов в TSLab без программирования», информацию по которому можно посмотреть тут->
 
Также можете научиться программировать роботов на нашем Видео курсе «Роботы для QUIK на языке Lua»
 
Если же вам не хочется тратить время на обучение, то вы просто можете выбрать уже готовые роботы из тех, что представлены у нас ДЛЯ TSLab, ДЛЯ QUIK, ДЛЯ MT5, ДЛЯ КРИПТОВАЛЮТЫ!
 
Также можете посмотреть совершенно бесплатные наработки для МТ4, Квика, МТ5. Данный раздел также постоянно пополняется.
 
Не откладывайте свой шанс заработать на бирже уже сегодня!