Язык программирования для квик + видео обзор

Язык программирования и софт под QUIK

Язык программирования для квик

Подскажите, пожалуйста, на каком языке и в какой софтине лучше писать робота для QUIK.

(Если есть ссылки что почитать, буду признательна)

Язык программирования для квик

Язык программирования для квик

VM LUA уже есть в КВИКЕ, легкий язык, не надо делать экспорт/импорт и т.д.

Язык программирования для квик

Язык программирования для квик

Зависит от решаемой задачи.

Если это что-то простое, то LUA подойдёт.

Если нечто посерьёзнее, то придётся попотеть.

В этом случае C# или Java.

Замечу, что Квик не отличается удобным и дружелюбным API.

Язык программирования для квик

Язык программирования для квик

Надеюсь не собираетесь программировать самостоятельно.

Потому как ваш трейдинг на этом закончится.

Язык программирования для квик

Язык программирования для квик

GoldenElf, судя по посту вы не программист.

Чтобы освоить даже базовые навыки нужно время.

Довольно много времени.

Причём заниматься этим придётся постоянно.

А значит трейдинг просто остановится.

Язык программирования для квик

Язык программирования для квик

GoldenElf, вы делаете стандартные ошибочные предположения.

Освоить конструкции языка — это 25% успеха.

Не менее важным является знание стандартных алгоритмов и паттернов.

Далее придётся осваивать различные библиотеки.

От сетевых до визуальных.

Архитектурные вещи вообще приходят только со временем и кучей совершённых ошибок.

Если вы зарабатываете на трейдинге, то логичнее продолжать это делать и часть денег потратить на разработчика.

Пока разработчик пишет вы занимаетесь своим делом и увеличиваете доход.

Если хотите делать всё, то приготовьтесь к проблемам.

Вы будете уметь много чего, но ничего профессионально и качественно.

Источник

Торговый робот для QUIK. На каком языке программирования его написать, как протестировать и как установить в торговый терминал

Язык программирования для квик

Как и многие другие, я начинал свою работу в качестве трейдера с торгового терминала Metatrader4. И когда у меня созрела необходимость в написании собственных скриптов и советников (торговых роботов), я не мудрствуя лукаво открыл учебник по MQL4 и изучив основы этого языка, через пару часов уже мог состряпать простую программку.

Дальше-больше, после реализации простых скриптов пришло желание запрограммировать более сложные алгоритмы торговли. Возникали, конечно, вопросы, но ответы на них достаточно легко дают Яндекс с Гуглом. В настоящее время существуют столько сайтов и форумов посвящённых данной тематике, что достаточно трудно найти такой вопрос, который остался бы без ответа после более-менее тщательного штудирования интернета.

Для чего я вам все это рассказал? Дело в том, что никакого особого опыта в программировании, кроме школьных уроков информатики у меня до этого не было. А это означает, что для того, чтобы справиться с этим делом вовсе не обязательно быть программистом.

Если же у вас за плечами уже есть какой-либо опыт программирования на любых языках, то данная задача вам покажется элементарной. Уверяю вас, так оно на самом деле и есть, на деле здесь всё оказывается куда проще и стоит только начать, как вы незаметно для себя уже превратитесь в матёрого создателя торговых роботов.

Как написать программу

В QUIK предусмотрена возможность установки двух основных типов программ скриптов и торговых роботов:

На мой взгляд, наиболее простым вариантом является работа с программами на языке LUA. Область применения данного языка программирования не ограничивается только написанием программ для торговых терминалов, на нём пишут и компьютерные игры, и мобильные приложения, и много чего ещё. Но нас сейчас интересует его использование в контексте написания программ торговых роботов для торгового терминала QUIK. К слову сказать, используемая здесь разновидность данного языка часто именуется QLUA (Q от QUIK).

Программирование на LUA

Описать все особенности и синтаксические конструкции языка в рамках одной этой статьи конечно не получится, впрочем в этом и нет особой необходимости. Как я уже говорил, синтаксис здесь довольно простой и включает в себя все основные команды свойственные любому современному языку программирования. Есть, конечно, некоторые специфические моменты, но все они подробно описаны на многочисленных тематических ресурсах. Например здесь: https://forum.quik.ru/forum10/topic2029/

Я сильно не заморачивался ни синтаксисом, ни изучением языка, а просто сразу начал писать программу. По ходу необходимости, уточнял синтаксис той или иной необходимой мне команды через поисковики. Например запрос типа “оператор для открытия позиции в QLUA” подсказывал мне, что для данной цели необходимо использовать оператор sendTransaction(), а запрос “синтаксис оператора sendTransaction() в LUA” выдавал в первой же позиции результатов поиска сайт содержащий ответ:

Язык программирования для квик

На этом сайте вы найдёте синтаксис всех команд языка с конкретными примерами их использования: http://luaq.ru/

А вот здесь вы найдёте полное руководство по азам программирования на LUA: https://lua.org.ru/contents_ru.html

Кроме этого есть ещё масса других ресурсов содержащих исчерпывающую информацию по данной теме.

Где писать программу. Какой редактор использовать?

Прелесть состоит в том, что для написания программ на QLUA можно обойтись штатными средствами Windows, без установки каких-либо специализированных редакторов. Вы можете писать и редактировать программу прямо в текстовом файле.

Для этого сначала создаёте обычный текстовый файл:

Язык программирования для квик

Язык программирования для квик

Неудобство данного метода написания состоит в том, что без редактора невозможно скомпилировать файл и проверить его на наличие ошибок. Однако это не так критично, как может показаться на первый взгляд, поскольку наличие ошибок (а также их краткое описание) вам выдаст торговый терминал после того как вы попытаетесь запустить в нем программу.

Язык программирования для квик

После запуска программы терминал показывает в ней ошибку

После этого достаточно будет её отредактировать и запустить вновь. В том случае, если ошибок больше нет, окно “Ошибки выполнения скрипта” останется пустым, а программа начнёт работать (об этом будет свидетельствовать характерный значок “play” перед названием). После того, как заложенный в неё алгоритм отработает, она остановится. Если же она специально зациклена (работает на постоянное отслеживание текущей рыночной ситуации), то остановить её можно будет нажатием на кнопку “Остановить”.

Язык программирования для квик

Как протестировать торгового робота

В Метатрейдере с этим делом всё обстоит довольно просто – запускаешь тестер стратегий, выбираешь временной интервал ценовой истории и вперёд. Тестер прогонит через загруженного в него торгового робота весь массив цен из заданного в настройках интервала и выдаст вам график прибыли/убытка которые были бы получены роботом при реальной торговле online. При этом у вас ещё будет возможность оптимизировать настройки тестируемого торгового робота таким образом, чтобы получить наилучший результат (наибольший профит), правда на всё том же ограниченном интервале истории.

В QUIK такого тестера априори не существует. То есть тестировать созданных роботов на истории вы здесь не сможете**, но оно, пожалуй, и к лучшему. Почему к лучшему? Излишняя оптимизация на истории может сыграть с вами злую шутку. Дело в том, что самые замечательные результаты торговли в прошлом никогда не гарантируют вам того же и в будущем. Часто бывает так, что стратегии “заточенные” (читай – оптимизированные) под определённый интервал времени в прошлом и приносящие на нём стабильно высокий доход, в реальном времени начинают откровенно сливать депозит.

Но не расстраивайтесь, торговых роботов для терминала QUIK вы сможете тестировать в реальном времени. Правда для этого вам потребуется так называемый демо-счёт (вы ведь не хотите, чтобы тестируемый советник принялся сразу же торговать реальными деньгами).

В отличие от метатрейдера в котором и реальные, и учебные счета открываются в одном и том же терминале, в квике для этого нужно установить специальный учебный терминал. По сути своей это тот же QUIK, только данные он берет со специального – учебного сервера (котировки немного отстают по времени от реальных, но в целом повторяют их с достаточной точностью) и для торговли здесь используются виртуальные деньги.

Учебный QWIK можно скачать у любого брокера, желательно у того, через которого вы планируете в дальнейшем торговать. Правда здесь возможны некоторые заморочки связанные с тем, что не всегда учебная версия данного торгового терминала позволяет работать со скриптами LUA.

Если та версия, которую предлагает ваш брокер не поддерживает возможножность установки и запуска LUA-скриптов, то можете установить демку от брокера БКС. Это не реклама, просто у меня стоит такая же и я точно знаю, что данная версия позволяет работать с любыми скриптами и советниками написанными на языке программирования LUA (QLUA).

** По крайней мере чистыми средствами QUIK, без использования какого-либо дополнительного софта.

Как установить LUA-скрипт в торговый терминал

Процесс установки торгового робота (скрипта) одинаков и для учебного, и для реального терминалов. Он довольно прост и выглядит следующим образом:

Язык программирования для квик

Вот и всё, на этом процесс установки торгового робота закончен. Для того, чтобы он начал работать достаточно выбрать его кликом мышки и нажать кнопку “Запустить”. Если в программе не будет обнаружено ошибок, то она начнёт работать, а иначе выдаст вам соответствующее сообщение (см. выше).

Источник

[Закрыто] Основы программирования LUA в QUIK (QLUA)

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений 2

1 Тема от admin 2012-12-18 00:43:41

Тема: Основы программирования LUA в QUIK (QLUA)

Введение

Начиная с версии 6.5 в терминале QUIK была добавлена возможность запуска пользовательских скриптов, написанных на языке Lua. В сравнении в ранее имевшимся внутренним языком QUPILE, добавление скриптов на Lua дало пользователям не только более мощный и удобный язык программирования, но и предоставило принципиально новые возможности для создания торговых роботов, в частности возможность мгновенной реакции на изменение рыночных данных за счет реализованной возможности событийного программирования. Событиями могут выступать: изменение стакана котировок, изменение параметров инструментов, совершение сделок на бирже, совершение сделок по поручениям (заявкам), поданным из терминала пользователя (вручную или из скриптов) и т.д.

Документация по Lua в QUIK и базовые примеры от ARQA: quik_lua.zip

Список изменений и нововведений в QUIK по части функциональности Lua-скриптов можно посмотреть здесь.

Виды скриптов на Lua для QUIK

Для выполнения разного рода задач терминал QUIK поддерживает следующие виды скриптов:
Lua-скрипты: в них доступна вся функциональность для написания роботов, включая возможность получения рыночных данных, параметров инструментов, задание реакции на изменение рыночных данные, выставление заявок, создание таблиц внутри интерфейса терминала QUIK с выводом в них нужной пользователю информации. Эти скрипты могут располагаться в любом месте, доступном терминалу (локальный диск, сетевой ресурс и т.д.).
Пользовательские индикаторы: это отдельный вид программ на Lua, предназначенный в первую очередь для вывода на графиках терминала индикаторов технического анализа, алгоритм которых реализуется в скриптах данного вида. Помимо этого, индикаторам доступны функции вывода меток на графиках. В большинстве случаев индикаторы для своего расчёта в качестве исходных берут данные с определённого графика, хотя имеется и возможность получения других данных (правда, на данный момент очень сложно обеспечить синхронизацию ганных на графике и внешних данных, с графиком не связаннх). В скриптах индикаторов доступен ограниченный набор внешних функций, по сравнению с Lua-скриптами.

Далее будут рассматриваться только Lua-скрипты и особенности их написания в QUIK. Создание индикаторов будет рассмотрено в отдельной теме.

Что включает в себя Lua в QUIK

В качестве интерпретатора используется Lua:

версии 5.1.5 в QUIK версий 6.x, 7.x и 8.0..8.4

версии 5.3 в QUIK версий 8.5 и более новых

Включены библиотеки: io, string, math, package, os, table. ( пруф )

Помимо этого скриптам на Lua, запущенным в терминале QUIK, доступны дополнительные функции, предназначенные для получения рыночных данных, взаимодействия с терминалом. Кроме того, пользователь может размещать в своём скрипте функции с заранее предопределёнными наименованиями (так называется callback-функции), которые позволяют реализовывать в торговых роботах реакцию на рыночные события. Ввиду такого расширения Lua в рамках терминала QUIK обычно называют QLua, подчеркивая наличие указанных дополнений. Хотелось бы отметить, что эти дополнения никак не изменяют собственно синтаксис самого языка Lua, а лишь добавляют в него некоторые функции по аналогии с функциями разных библиотек. Поэтому для изучения программирования на самом языке Lua в QUIK годится абсолютно любая книга по Lua.

Здесь не будет рассматриваться собственно программирование на самом языке Lua, считается, что читатель найдёт эту информацию самостоятельно. Ниже будет подробно рассказано о том, какие возможности для написания программ имеются именно в рамках терминала QUIK.

Как программировать на LUA в QUIK

б) Можно написать в Lua-скрипте одну единственную функцию с предопределенным именем main() и всю логику работы робота (или вычислительного скрипта) поместить в эту функцию. Функция main выполняется в отдельном потоке, т.е. она не мешает работе основного функционала терминала QUIK, наличие функции sleep() позволяет выполнять периодически приостанавливать скрипт и возобновлять его работу через какой-то промежуток времени.
Фактически, если зациклить main() и вставить sleep(), то получаем полную эмуляцию подхода, использующегося при программировании на встроенном QPILE: периодический расчет чего-либо через заданный интервал времени.

в) В QLUA доступна событийная модель программирования. Т.е. теперь нет необходимости в одной «главной» функции «выявлять» происходящие изменения и на основании анализа этих изменений выполнять какие-то действия.

С первым и вторым подходом все достаточно понятно, да и используемый для этого интерфейс весьма напоминает тот, который использовался в QPILE, так что на нем подробно останавливаться не буду.

Программирование на QLUA с использованием событий

При выборе такого подхода получаем весьма гибкую среду выполнения пользовательских скриптов внутри QUIK, позволяющую мгновенно получать интересующие события от терминала, производя нужную нам обработку этих событий.

Для того, чтобы обработать то или иное событие, необходимо просто прописать в своем скрипте функцию с предопределенным названием. Все доступные функции обработки событий есть в документации по QLUA. Поддерживаются самые различные события совершение на бирже очередной сделки, выставление новой заявки пользователем (или скриптом), изменение стакана котировок и т.д.

Схематически принцип выполнения скриптов LUA внутри терминала QUIK можно изобразить следующим образом:
Язык программирования для квик

Обратите внимание, что все функции обработки событий, в отличие от функции main(), выполняются в рамках основного потока терминала QUIK, а значит время их работы должно быть сравнительно небольшим, иначе будут заметны «подвисания» в работе терминала.

Источник

Основы КВИК (QUIK) и языка QLUA

Язык программирования для квик

В данной статье начнем рассматривать такую интересную тему как написание скриптов на языке программирования QLUA. Существует язык программирования LUA, а если в названии указан символ Q, то значит, этот язык относится к торговому терминалу QUIK. Пользователи еще говорят, что это Квик_Луа (QUIK LUA). Но суть остается одна, это встроенный язык программирования для КВИК.

Если вы только начинаете изучение разных платформ и языков программирования для написания скриптов для них, торговых роботов или индикаторов, то Вам должно быть интересно узнать подробнее о языке QLUA.

Приступим с самого интересного момента, а с чего надо начать все это осваивать? Все сталкиваются с таким вопросом и начинают копать тонну информации по разным источникам, чтобы разобраться что же это такое и из чего все состоит. Мы же Вам попытаемся немного помочь и ускорить процесс ознакомления с QLUA.

На языке LUA можно запрограммировать скрипты для торговли в терминале КВИК, все возможные индикаторы и торговые роботы, это все понятно, но как и где это делать, в каком редакторе необходимо все это программировать?

Где будем создавать код LUA?

Язык программирования для квик
Все скрипты или индикаторы, написанные на LUA представляют собой простой текстовый файл, просто имеет другое специальное расширение. Из этого становится ясно, что написать индикатор/скрипт возможно даже в простом текстовом редакторе, например в программе Блокнот, что есть у всех по умолчанию в Виндоуз. Запускаем текстовый редактор, пишем в нем код скрипта, далее сохраняем файл. Вот в принципе и все, наш скрипт для применения в торговой платформе КВИК готов. Как видите, оказывается очень просто. Да, все просто, но не очень удобно, т.к. текст в блокноте не имеет никакого обозначения, просто сплошной текст без разделений, если вы программировали, то поймете о чем речь идет. Именно поэтому обычно программисты используют подобие блокнота — это программа Notepad++. Повторюсь, что можно код писать в любом редакторе, но, на наш взгляд, программа Notepad++ очень удобна для программировании на LUA. В Notepad++ есть подсветка синтаксиса Lua и это очень большое преимущество в удобстве написания Lua кода.

Что лучше создать Скрипт или Индикатор?

И вот, когда мы поняли, где мы будем создавать наши творения для терминала КВИК, у нас возникает еще один вопрос, а что лучше написать Скрипт или может Индикатор?! Да, выбирать особо не приходится, но необходимо четко понимать в чем отличия между скриптом и индикатором. Тут можно не вдаваться в глубокие подробности структуры того и другого, а можно рассуждать как простой пользователь, если нужно просто видеть нужную информацию на графике в виде линий, точек и прочих обозначений, то значит нужен Индикатора. Если, что-то другое нужно, то значит скрипт. Да, это очень поверхностные различия, но для общего понимания хватит! Далее, когда вы углубитесь в данную тему и начнете понимать из чего состоит структура скрипта, а из чего структура индикатора, то сами легко сможете понять, что нужно сделать, чтобы осуществить задуманную идею.

Заключение

Мы начали с малого, подготовились к написанию кода на LUA и разобрались, что писать код будем в текстовом редакторе Notepad+, а также знаем, что нам выбрать для реализации индикатор или скрипт. Да, пока не коснулись самого кода LUA и структуры, но постараемся сделать цикл статей, чтобы это все постепенно разобрать и понять. Это был Первый и очень важный шаг к изучению языка QLUA. А тем самым даже на этой стадии мы помогли сэкономить Вам немного немало несколько часов рабочего времени!

Продолжение следует, следите за серией статей по языку программирования QLUA для торгового терминала КВИК.

Не откладывайте свой шанс заработать на бирже уже сегодня!

Источник

Введение в QUIK (Квик) и LUA

В этой части мы будем с вами говорить о таком направлении как программирование на языке QLUA. Что же это за язык такой? — Обыкновенный язык программирования, каких существует множество, но с небольшой оговоркой. Вообще говоря существует язык программирования LUA, а первая буква Q в названии, говорит нам о том, что мы применяем данный язык программирования в платформе QUIK (Квик). Ещё этот язык иногда называют QuikLua, что в принципе тоже верно. Ну да ладно, как бы его не называли суть остается неизменной.

Если вы начинаете с самого начала и ещё ни разу не слышали о том как писать индикаторы или скрипты в платформе QUIK, то этот сайт как раз то что вам нужно.

Рекомендую добавить сайт в закладки, так как он вам ещё не один раз пригодится, будет для вас настольной книгой, справочником, где вы всегда сможете найти ответ на свой вопрос

Итак начнем пожалуй с самого главного вопроса который сейчас перед вами стоит это — С чего же начать? Когда-то я сам столкнулся с этим вопросом и перекопал огромное количество информации прежде чем разобрался что это такое и как тут всё устроено. Вам же я предлагаю пройти путь намного короче, так как вся информация будет излагаться последовательно и находиться на одном сайте, как раз на том на котором вы сейчас и находитесь, с чем я вас и поздравляю.

Ну что же, поехали. QUIK это платформа в которой нам позволяют писать на языке программирования lua, а конкретнее мы можем писать индикаторы и скрипты, чем они друг от друга отличаются мы поговорим позже, а сейчас займемся ответом на вопрос где мы будем писать наши собственные индикаторы или скрипты.

Где писать код?

Индикатор или скрипт это обыкновенный текстовый документ который имеет специальное расширение. Поэтому писать мы можем используя любой текстовый редактор, даже самый простой блокнот встроенный в операционную систему Windows. Открываем блокнот, пишем необходимый код сохраняем и всё наш индикатор или скрипт готов, можем использовать его в платформе QUIK, всё просто. Просто, да неудобно. Вы видели как выглядит текст в блокноте? Сплошной черный текст на белом фоне, писать можно, читать тоже можно, но программировать просто ужасно трудно. Поэтому я вам предлагаю использовать расширенную версию блокнота, называется эта программа notepad++. Я никоим образом ни кого не заставляю использовать именно ее, можете использовать любую другую программу. Я же предпочитаю пользоваться именно notepad++.

Индикатор или скрипт? Что выбрать?

Теперь ответим на второй главный вопрос — Что мы будем писать? Выбор у нас конечно невелик, либо это будет индикатор, либо это будет скрипт. Настало время разобраться чем же отличается скрипт от индикатора. Для простоты понимания и чтобы не загружать вас огромным количеством всякой разной информации на начальном этапе, определимся со следующим. Если то что мы задумали сделать, необходимо отображать на графике, в этом случае выбираем для написания индикатор. В остальных случаях можно выбирать скрипт. Конечно же это очень грубое разграничение, но для начала будет достаточным. Когда вы в процессе изучения получите больше информации, что пишется в индикаторах, а что пишется в скриптах, вы сможете сами определить где вам лучше реализовать то что вы задумали.

в заключении

Это небольшая глава была посвящена введению в lua. Мы не затронули ни грамма кода, но зато мы ответили на главные вопросы где писать и что писать, а также подготовили рабочее место. Если вы действительно выполнили всё что тут написано, а не просто пролистали страницу сверху вниз, уверяю вас, вы сделали большой первый шаг, вам это очень поможет в будущем при освоении языка программирования lua. Вы только что сохранили как минимум пару часов своего драгоценного времени, которое бы потратили на поиски всей информации в интернете на различных сайтах.

Если у вас всё готово, а главное вы сами готовы, то переходим к следующему шагу.

Источник

Видео

Платформа Quik и язык QLua

Платформа Quik и язык QLua

Программирование на Lua под QUIK

Программирование на Lua под QUIK

Полностью готовый торговый робот для терминала QUIK на языке Lua.

Полностью готовый торговый робот для терминала QUIK на языке Lua.

Язык LUA для QUIK Пример урока №13

Язык LUA для QUIK Пример урока №13

Создай торгового робота для Квик по своей стратегии (Интенсив)

Создай торгового робота для Квик по своей стратегии  (Интенсив)

Новые возможности с QUIK и языком программирования LUA!

Новые возможности с QUIK и языком программирования LUA!

язык qLua для терминала КВИК (ссылка на новое видео ниже)

язык qLua для терминала КВИК (ссылка на новое видео ниже)

Позиция по деньгам и инструментам. Quik. Торговые роботы на языке С#.

Позиция по деньгам и инструментам. Quik. Торговые роботы на языке С#.

Программирование на языке терминала QUIK (QPILE) Лекция №2

Программирование на языке терминала QUIK (QPILE) Лекция №2

Ищу программиста Сишарп. Торговые роботы на языке С#. Quik. Открытый исходный код.

Ищу программиста Сишарп. Торговые роботы на языке С#. Quik. Открытый исходный код.
Поделиться или сохранить к себе:
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных, принимаю Политику конфиденциальности и условия Пользовательского соглашения.