Хочу рассказать о новом конструкторе, который делаю для создания роботов.
Цель создания конструктора -максимально упростить разработку торговых роботов на основе торгового терминала QUIK и библиотеки QLUA.
Какие задачи можно решать на этом конструкторе.
- Написание алгоритмов торговых сигналов
- Тестирование алгоритма
- Оптимизация параметров
- Подключение в режиме реальных торгов
———————————
Конструктор выполнен в виде индикатора и минимум одного скрипта и предназначен для торговли акциями.
индикатор имеет имя nk_bot.
На его основе реализуются первые три пункта указанные выше.
Подключение к реальным торгам осуществляется с помощью специального скрипта.
В данной заметке я расскажу и покажу как написать алгоритм( генератор) торговых сигналов и посмотреть результаты его работы.
—————————
Для программирования любого алгоритма есть два файла
файл initS.lua — инициализация параметров робота
имя второго файла задается в файле initS.lua. По умолчанию его имя nk_test_sig.lua.
Этот файл содержит собственно алгоритм генерации торговых сигналов.
—————————-
Для примера напишем робот на основе алгоритма пересечения двух скользящих.
т е алгоритм генерации сигналов будет такой:
Берем две скользящие, назовем их Y1 и Y2 , с периодами N1 и N2 соответственно.
Если Y1 пересекает Y2 снизу вверх, то покупаем.
Если сверху вниз, то продаем.
Имена наших индикаторов должны начинаться с символа подчеркивания и далее любые алфавитно цифровые символы.
———————————
Рассмотрим подробнее содержимое файлов и добавим в них необходимые изменения для реализации нашего торгового алгоритма.
—————————————
файл initS.lua Имеет следующий вид:
Settings.nki=’EMA(Y1,C,N1);EMA(Y2,C,N2)’; — описание индикаторов, через символ «;»
Settings.nks=’nk_test_sig.lua’; —генератор сигналов
———————-
EMA -индикатор скользящего среднего,
N1 — интервал расчета индикатора,
C — параметр свечи, по которому вычисляется индикатор. В данном примере это close последней закрытой свечи.
В этот файл нам необходимо добавить периоды наших скользящих.
Для этого любым редактором текста (рекомендую SCITE) добавляем в конец файла следующие две строчки:
Settings.N1 =20; — период первой скользящей по умолчанию
Settings.N2 =100; — период второй скользящей по умолчанию
————————
Содержимое этого файла будет отображаться как параметры индикатора nk_bot.
Таким образом, в процессе работы можно их изменять и наблюдать влияние на результаты работы торговой стратегии.
Все индикаторы автоматически отображаются на графике
————————————
В файле initS.lua есть такая строка:
Settings.nks=’nk_test_sig.lua’; —генератор сигналов
т е свой алгоритм мы поместим в файл с именем nk_test_sig.lua.
Мы можем изменить имя файла, указав любой другой файл с новым алгоритмом.
————————-
В любом редакторе текста в файле nk_test_sig.lua пишем следующий текст нашего алгоритма:
=Cross(Y1,Y2); — пересечение. результат -1,0,1
Алгоритм записывается следующим образом. Пишем знак «=» и далее функцию или арифметическое выражение значения торгового сигнала.
Если выражение является логическим, то после знака равно пишем сначала значение сигнала, например 1, потом через запятую логику вычисления сигнала.
Например, =1, x>20 — означает, что сигнал равен 1, если x>20, иначе равен 0.
В тексте программы может быть комментарий, который должен начинаться двумя знаками минус.
Выше все комментарии выделены зеленым цветом.
Вот и весь наш алгоритм.
Теперь посмотрим, что получилось:
————————————————————————————————-
на графиках отображается информация о прибыли(убытке) текущей сделки, процент успешных сделок,прибыль(убыток) всего и количество сделок всего.
Если текущая сделка убыточная, то информация о ней отображается красным цветом, иначе белым.
Свеча, на которой совершается сделка, отмечается стрелкой
зеленая стрелка — продажа
красная стрелка — покупка
Сделки совершаются на открытии свечи ,
на основе информации о закрытых свечах.
————————————————————————————————-
продолжение следует…