Язык луа для квика + видео обзор

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

Язык луа для квика

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

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

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

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

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

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

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

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

Заключение

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

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

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

Источник

[Закрыто] Основы программирования 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. На каком языке программирования его написать, как протестировать и как установить в торговый терминал

Язык луа для квика

Как и многие другие, я начинал свою работу в качестве трейдера с торгового терминала 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-скрипт в торговый терминал

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

Язык луа для квика

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

Источник

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

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

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

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

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

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

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

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

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

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

в заключении

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

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

Источник

Свежие записи

Архивы

Язык луа для квика

Язык луа для квика
Скрипт позволяет открывать и закрывать позиции следующего типа:
— покупается 2, выбранных при помощи кнопок, колл-опциона на фьючерс на индекс РТС,
— продается 1, выбранный при помощи кнопок, фьючерс на индекс РТС.

Когда есть открытая данным скриптом позиция, в таблице отображается информация о ней (профит, баланс, ср.цена, дата открытия).

Так же, выполняется запись в лог-файл («Log.txt») выполняемых скриптом операций и в файле состояния («State.txt») хранится информация о текущих выбранных инструментах и о текущей, открытой скриптом позиции.

ВАЖНО. При выборе опциона, кнопками «/\»,»\/» меняется страйк опциона с шагом 500, убедитесь в том, что такой опцион существует.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Пример скрипта QLua (Lua), выполняющего торговые операции в терминале QUIK: 110 комментариев

Установка цвета в ячейке делается с помощью setColor. Но в скрипте вижу

Где об этом можно почитать? В документах по ключу «цвет» или «Green» подобное не нахожу.

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

Классная идея! Спасибо!

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

Дело в том, что у меня в демо-версии завышенная волатильность на опционы. А следовательно и теор. цена.
Скрипт нормально выставляет заявки на покупку 2 коллов и продажу фьючерсов. А в обратную сторону нормально работает только покупка фьючерсов, а коллы не продаются. При этом скрипт ошибок не выдает.

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

Удалось закрыть позицию вручную, только после того как убрал галочку с «проверять лимит цены»

Здравствуйте. Параметры транзакций можете посмотреть в файле справки info.chm, который находится в папке с терминалом Quik. Еще можете использовать карман транзакций для изучения.

Этот скрипт выложен как пример для тех, кто учится программировать на QLua

Да, я понял, что он для обучения. Думал, взять рабочий скрипт и его допиливать до своих нужд, тем самым обучаясь. А тут сразу наткнулся на препятствие.
Буду копаться! Тем интересней.

У Вас есть 3 варианта: научится самостоятельно, используя статьи и примеры сайта; записаться на платное обучение; заказать скрипт, который будет работать по Вашему алгоритму.

Если кто-то еще столкнется с подобным, то для транзакции закрытия позиции по опционам (после 259 строки) добавляем:

Вы молодец, быстро решили задачу! Я мог бы подсказать, но я не сталкивался с такой задачей, поэтому у меня не было решения.

Спасибо!
Но задача всего на одну строчку))

Буду молодцом, когда все-таки добьюсь, чтобы квик транслировал нормальную волотильность, а не зашкаливающую (сейчас показывает 80% на РТС, при нормальной в 24%). Но это задача не для программиста, а для юзера))
А вот когда ее решу, тогда и костыль с отменой проверки лимита цены можно будет убрать.
Тех. поддержка брокера бессильна. Видимо, скоро буду писать в поддержку квика, если так и не найду решение.

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

Здравствуйте. А можно увеличивать высоту строки?

Здравствуйте, только общими настройками шрифта в самом квике

Подускажите, а можно переделать скрипт, чтобы можно было набирать позицию больше чем 2 опциона+1 фьюч. Что необходимо изменить? Заранее благодарен.

просьба в таблицу «профит кол-во цена дата» добавить колонку волатильность или пояснить как это можно сделать.

Здравствуйте. В функции CreateTable скрипта нужно добавить еще одну колонку для вывода волатильности.
В функции OnParam при помощи getParamEx получать значение волатильности (поле VOLATILITY) по выбранному опциону и выводить значение в таблицу при помощи функции SetCell.

Здравствуйте! Я уже сейчас не помню в каком формате он записывает данный файл, поступите проще: запустите данный скрипт на демо-счете, откройте позицию и остановите скрипт, потом откройте данный файл и поправьте там коды, количество и даты открытия. Формат, на самом деле, простой, каждое новое значение в новой строке, а вот такой общий список строк:

Код ФЬЮЧЕРСА для открытия
Код ОПЦИОНА для открытия
Код ОПЦИОНА в позиции
Количество лотов в позиции по ОПЦИОНАМ
Средняя цена открытия позиции по ОПЦИОНАМ
Дата открытия позиции по ОПЦИОНАМ
Код ФЬЮЧЕРСА в позиции
Количество лотов в позиции по ФЬЮЧЕРСАМ
Средняя цена открытия позиции по ФЬЮЧЕРСАМ
Дата открытия позиции по ФЬЮЧЕРСАМ

не позволяет добавлять позицию, пишет «позиция уже открыта «

Если он так пишет, значит файл State.txt уже есть и в нем записана информация о позиции, откройте его и посмотрите что там.

Здравствуйте! Подскажите, пожалуйста, как сделать так, чтобы при закрытии сделки стоп к ней не снимался.
Пример:
купил 1 лот сбера и поставил стоп и тейк
потом продал 1лот сбера стоп и тейк автоматически снялись.
Как сделать чтобы не снимались.

Здравствуйте! А каким образом Вы покупаете и продаете? Вообще-то, стоп и тейк не должны сами сниматься, они никак к сделкам не привязаны.

Сделки на фючерсах
Открываю сделку так:

открываю продажу (функ sendMarket) на 1 лот ставлю стоп и тейк. потом открываю покупку (функ sendMarket) на 1 лот ставлю стоп и тейк. получается чистая позиция 0 и 2 стопа и 2 тейка (1 стоп и тейк на продажу и 1 стоп и тейк на покупку).

Так и должно быть, когда Вы покупаете, Вы открываете длинную позицию, когда продаете, закрываете ее, не может быть одновременно и короткой и длинной позиции, а стоп-профит заявки никак не зависят от позиции, потому и остаются.

я рассчитываю как раз на то что они останутся, а они снимаются, в каком именно случае я не понял пока.
моя система дает сигналы, то на покупку, то на продужу, многие сделки взаимо закрываются, а стопы и тейки остаются, но потом когда все стопы сработали чистая позиция должна быть равна 0, а на практике не так. Когда проверяю в таблице заявок некоторые заявки сняты.

Может быть они во время клиринга снимаются? Вы им время действия (EXPIRY_DATE) достаточное назначаете?

GTC, в данном случае, имеется в виду до отмены биржей, а не Вами. Назначайте дату с запасом небольшим, тогда не снимутся.

Могу предложить Вам готовую связку функций (может пригодится):

Только имейте в виду, что на демо-счете от разработчиков квика нельзя выставлять заявки со временем действия

все равно снимаются
поставил today опять снялась.
может дело в инструменте, такие странности на SiH7

система-настройки-осн.настройки-торговля-закрытие-позиций-снимать стоп заявки
галочка нужна?

У меня стоит эта галочка, я даже не знал про нее 🙂 Но стоп-заявки остаются при закрытии позиции, сейчас специально проверил: купил, выставил тейк профит и стоп-лимит, продал, стоп-заявка осталась.
Если Вы на демо столкнулись с такой проблемой, то напишите сюда: quiksupport@arqatech.com
Если это на реальном счете, или на демо-счете брокера, то свяжитесь с брокером.

По идее, TODAY снимаются в вечерний клиринг, GTC только когда Вы снимите, ну и с датой понятно.
Прошу прощения, что раньше написал, что GTC биржей снимается, это не так. Если у Вас GTC снимается, то пишите тому, кто предоставил Вам счет, это ошибка.

снимается не во время клиринга

а еще иногда бывает что заявка выставляемая по стоп заявке отвергается. Не знаете почему?

стем что отвергаются заявки я разобрался

Вы сейчас про демо счет говорите, или про реальный?

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

робот не снимает, счет не демо. Инимается при попытке исполнения

Если не демо и при попытке исполнения, то, скорее всего, недостаточно средств на тот момент.

Средства точно есть

Тогда точно нужно брокеру звонить, у них что-то не так.

Вы написали изначально, что хотите, чтобы при закрытии позиции стоп и тейк к ней не снимались, по Вашему рассказу они и так не снимаются, не понимаю что Вас не устраивает.

Здравствуйте, по моему, не должно быть ни каких проблем с отправкой строки из файла через sendTransaction.

В окне ввода заявки есть строка поручение, которое дает комментарий заявке. Из кода qlua я тоже хочу дать этот комментарий, решил что это COMMENT=»мой комментарий» в структуре для sendTransaction, но нужного комментария в терминале не появилось?

Это поле CLIENT_CODE

Ой, я ошибся, простите, brokerref точно нужно использовать, тяжелый день был, голова немного не варит. С руководством действительно много неоднозначностей, все мучаются, для того и делал сайт, потому что сам намучился, когда изучал QLUA, решил немного облегчить задачу другим, не все, конечно, смог осветить, но, если что, спрашивайте, постараюсь помочь, чем смогу.

Да нет как ни странно именно CLIENT_CODE «задал» комментарий и он отразился в сделках в столбце комментарий. brokerref не то.

Залез сейчас к себе в код и нашел ответ на загадку: при отправке транзакции комментарий указывается в поле CLIENT_CODE, а для того, чтобы в скрипте прочитать этот комментарий, читают поле brokerref ответа по транзакции, заявки, стоп-заявки, или сделки. По этому и получилась путаница такая, потому что оба ответа верны 🙂

Ну да путаница, но не у вас, а у квиковцев в клуа.

Здравствуйте! Вы про какой скрипт пишите? Данный скрипт вообще не выставляет никаких стоп-заявок и на разрывы связи тоже никак не реагирует.

Дмитрий, я пишу про свой скрипт на LUA, который выставляет и снимает заявки. Я видимо просто не в том месте комментарий отправил ;(

Транзакция на снятие несуществующей заявки не вернет ошибку при отправке, то, что заявку не удалось снять, нужно смотреть в результатах транзакций, функция OnTransReply. На разрывы соединения скрипт сам по себе никак не реагирует, т.к. он обрабатывает данные по мере поступления, при разрывах они просто перестают поступать. Если Вам важно отслеживать разрывы, то можете использовать функции обратного вызова OnDisconnected и OnConnected, либо проверять есть ли соединение функцией isConnected.

Дмитрий, большое спасибо. Может быть можно так же смотреть заранее FLAGS в таблице заявок. trans_id я знаю?

Всегда пожалуйста! Можно и флаги смотреть, да.

Много чего нужно будет поменять, изучайте, разбирайтесь.

Источник

Видео

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

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

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

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

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

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

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

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

Роботизированные торговые стратегии для QUIK на языке Lua

Роботизированные торговые стратегии для QUIK на языке Lua

Язык луа для Терминала КВИК (ссылка на новое видео в описании)

Язык луа для Терминала КВИК (ссылка на новое видео в описании)

Роботы на Lua для QUIK. Авто перемещение стоп-лосса

Роботы на Lua для QUIK. Авто перемещение стоп-лосса

Lua Robot Quik 1. Функции обратного вызова

Lua Robot Quik 1. Функции обратного вызова

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

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

Quik LUA Робот Отскок-пробой ABC

Quik LUA Робот Отскок-пробой ABC
Поделиться или сохранить к себе:
Добавить комментарий

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