Quik Lua

Сайт продукта: https://forum.quik.ru/forum10/
Lua — язык программирования, который используется в программировании торговых роботов под популярный в России терминал Quik.
  1. Аватар nikita
    Есть тут кто? :) как получить данные «купить» и «продать» из таблицы состояние счета по инструменту? в мануале что то таких параметров нет :(
  2. Аватар Френк френков
    квик сменил кодировку роботов на луа языке
    MARKET               = «SPBFUT»
    TICKER               = «SiH7»
    ACCOUNT              = "----"
    CLIENT_CODE          = "----"

    TRANS_ID             = 0
    STOP_FACTOR          = 30
    SPREAD_FACTOR        = 30
    LAST_ORDER           = 0
    TRANS_REPLY          = nil
    BALANCE = 0

    BEZUBYTOK=STOP_FACTOR*5--0.0014--малый шаг

    TP=STOP_FACTOR*30--STOP_FACTOR*1--0.015--в % внутри дня (тейк-профит).большой шаг

    SREDNSHAG=STOP_FACTOR*10---0.007--средн.шаг(0.08* STOP_FACTOR /1000)

    n=3-- кол-во кругов малого BEZUBYTOK>STOP_FACTOR*(n+1)--минимально

    k=4--кол-во кругов  безубытка --SREDNSHAG>STOP_FACTOR*(k+1)--минимально

    run = true
    function main()
       while run do
          if LAST_ORDER == 0 then     
          
             BALANCE = GetTotalnet()
             if BALANCE ~= 0 then
                LAST_ORDER = NewStopOrder(BALANCE)
             end        

    Авто-репост. Читать в блоге >>>
  3. Аватар Врач-бондиатОр
    Lua для Квик - отправка сообщений по емейлу
    Хочу создать скрипт, который бы высылал на емейл нужную мне информацию.
    По тем материалам, которые у меня есть, для этого нужно писать костыль на бесике.
    Может быть сейчас появились более современные варианты?
    Quik версия 7.ххх

    Авто-репост. Читать в блоге >>>
  4. Аватар Вадим
    Нужна помощь в lua
    Кто переделает скрипт на луа для 8 квика от 7. Чтобы работало. Оплата — раскажу или сами догадаетесь для чего он. Не для дальнейшего распостранения и не для продажи с Вашей стороны. Надеюсь на Вашу порядочность. В се сообщения в личку.

    Авто-репост. Читать в блоге >>>
  5. Аватар autotrade
    есть программный код для выставления заявок под квик на lua по сигналу пересечения индикаторов?

    Авто-репост. Читать в блоге >>>
  6. Аватар Денис Базарнов
    Карта рынка - мой первый прототип надстройки над Quik(Квик)

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

    Вспомнил случай из жизни: примерно два года назад у меня «не случился» заказчик на разработку программного обеспечения. Заказчик сетовал на то, что кому бы он не обращался, все отказываются. И он открывает картинку стандартного графика цены и объема в Квике и со словами «вообщем мне надо также, только вот здесь и здесь надо добавить парочку штрихов» начинает на ней рисовать. Я ему начинаю объяснять, что стандартными средствами квика эту задачу не реализовать, а он в ответ «Вот мне именно так все и говорят! А я Вам показываю, что в квике все уже сделано, осталось чуть-чуть доделать вот здесь и здесь...»

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



    Авто-репост. Читать в блоге >>>
  7. Аватар Роджер (веселый).
    Как вообще сейчас назначается номер сделки, кто нибудь знает?
    Удалось подвязать к учебному счету интерпретатор LUA 5.3, очень помог коммент
    Как вообще сейчас назначается номер сделки, кто нибудь знает?
       Так при прогонке робота обнаружил для себя необычную вещь. Номера сделок идут не по возрастанию, и номер у сделки совершенной раньше, может быть больше, чем номер у сделки совершенной позже. Кто нибудь знает, как сейчас назначаются эти номера? Как теперь отфильтровывать ордера от повторной обработки? Создавать массив и для каждого инструмента хранить теперь номер последней обработанной сделки? Раньше тупо через фильтр, проверял чтоб обрабатываемый ордер был больше по номеру обработанного. 
    Как вообще сейчас назначается номер сделки, кто нибудь знает?

    Авто-репост. Читать в блоге >>>
  8. Аватар Роджер (веселый).
    quik - lua. буду очень благодарен за помощь.
      При написании скриптов пользуюсь notepad++ и встроенным интерпретатором языка LUA в quik для отладки достаточно только одной функции message. Опробование и отладку всегда производил на учебном счете Открытия и тут они поступили как то крайне нелогично, ввели по срочному рынку 19 — значные заявки, а квик оставили седьмой версии и интерпретатор LUA 5.1 и он просто не может работать с такими числами.  Причем на реальном рынке сначала они ввели квик 8 версии с интерпретатором LUA 5.3, а потом только длинные ордера. Как можно к учебному квику 7 версии привязать интерпретатор LUA 5.3?

    Авто-репост. Читать в блоге >>>
  9. Аватар Stanislav petrov
    А можно метки на график нанести не по chart_tag, а по тикеру ?
    Ну те тикер на графике меняется, чтоб chart_tag менялся както автоматом что ли.
    Если 30 позициций отследить с метками, нужно 30 графиков открывать и на каждый график идентификатор ставить?
  10. Аватар Vitaliy
    Торговля Ртс - связка квик-луа-телега - а обратно?
    Доброго дня, уважаемые коллеги!

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

    А сама суть в том, что реализовать связку квик-луа-телега получилось, не без танцев с бубнами, но все работает весьма стабильно. Собственно тестирование и запущено для того, чтобы отловить какие-то еще ошибки.

    И вот возник вопрос — а кто-то реализовывал обратную связь из телеги в квик? Мысль пришла реализовать — было бы удобно в комплексе — один бот шлет сигнал, на другой стороне бот получает сигнал и торгует по команде.

    С уважением, Виталий.



    Авто-репост. Читать в блоге >>>
  11. Аватар BigStrike
    Кто может написать простой скрипт на LUA за деньги?

    Привет. Нужна кнопка для одного действия в квике. При нажатии на кнопку происходит выполнение одного правила. Нажал еще раз, повтор правила.

    Правила. Порядок действия.

    Указываю номер счета

    Указываю инструмент

    1. Снять все активные, левые заявки по инструменту

    2. Поставить лимитку.

     а. Направление лонг/шорт

     б. Лотность

     в. Отступ от цены закрытия свечи

    3. Деактивация действия

    Суть: идет допустим 30-я секунда текущей минутной свечи. Нажал на кнопку, скрипт ждет закрытия свечи в которой нажал кнопку. И после закрытия свечи ставит лимитку с ценой закрытия свечи(-+отступ, лотность, направление). Все. 

     

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

    Можно тут или в телеге
    @evegenyyiwb



    Авто-репост. Читать в блоге >>>
  12. Аватар Денис Базарнов
    Логгер крупных сделок
    Неожиданно, сделал удобный для себя инструмент мониторинга за рынком. Простой логгер. При запуске подгружает всю таблицу обезличенных сделок за весь день и по каждому инструменту ищет крупные сделки которые и отражает в таблице. После загрузки, работает в режиме реального времени, также отражая крупные обезличенные сделки. «Крупные» — это сделки, размер которых в 30-ть раз превышает средний размер сделки по инструменту. Значение коэффициента можно исправить в тексте скрипта.
    Логгер крупных сделок

      Выложил, скачать бесплатно можно отсюда: https://кбс.онлайн/soft.html#as10



    Авто-репост. Читать в блоге >>>
  13. Аватар Viacheslav Merten
    Нужен компилятор Lua для Квика 8
    Добрый день, коллеги!

    Такой вопросик. Нужно скомпелировать бота под квик 8. Компилятор который работал под семеркой не «канает». Подскажите решение программисты?

    Авто-репост. Читать в блоге >>>
  14. Аватар Vatrudor
    скрипты
    После последних изменений на говномосбирже, пришлось перейти на 64бит версию квика, какие варианты есть бесплатных луа  скриптов типо кускальп

    Авто-репост. Читать в блоге >>>
  15. Аватар fabiola
    Проблема перевода dll на lua 5.3 x64 vs15 (уже всё попробовал)
    C2664 «void luaL_setfuncs(lua_State *,const luaL_Reg *,int)»: невозможно преобразовать аргумент 2 из «luaL_reg []» в «const luaL_Reg *»

    static struct luaL_reg ls_lib[] = {

    Виктор Некрасов,
    Выделил ключевые строки. В первой описание проблемы, вторую надо исправить. Все дело в регистре одной буквы R.
    Надо заменить
    static struct luaL_reg ls_lib[] = {
    на
    static struct luaL_Reg ls_lib[] = {
  16. Аватар Виктор Некрасов
    Проблема перевода dll на lua 5.3 x64 vs15 (уже всё попробовал)
    Я пытаюсь перевести dll на x64 lua5.3 vs15
    Действую по инструкции https://quikluacsharp.ru/qlua-c-cpp-csharp/konnektor-dll-quik-qlua-lua-c/
    Перечитал все комменты, всё испробовал, но так и не решил.

    Библиотеку lua я скачал, всё заменил, но не заводится она.
    Т.е. я просто меняю библиотеки с 5.1 на 5.3, прописываю новую lua53.lib но всё-время вылазят ошибки:

    C2079 «ls_lib» использует неопределенный struct «ls_lib»
    C2078 слишком много инициализаторов
    C2664 «void luaL_setfuncs(lua_State *,const luaL_Reg *,int)»: невозможно преобразовать аргумент 2 из «luaL_reg []» в «const luaL_Reg *»

    Из-за чего так?
    Скачивал проект LuaProba (https://smart-lab.ru/blog/605815.php), но он был для 5.1
    Опять же, в нём библиотеки поменяю — и опять эти же ошибки вылазят.

     
    //=== Регистрация реализованных в dll функций, чтобы они стали "видимы" для Lua ================================//
    static struct luaL_reg ls_lib[] = {
    	{ "TestFunc", forLua_TestFunc }, // из скрипта Lua эту функцию можно будет вызывать так: QluaCSharpConnector.TestFunc(); здесь можно указать любое другое название
    	{ NULL, NULL }
    };
    
    
    //=== Регистрация названия библиотеки, видимого в скрипте Lua ==================================================//
    //extern "C" LUALIB_API int luaopen_connector(lua_State *L) {
    //	luaL_openlibs(L, "connector", ls_lib, 0);
    //	return 0;
    //}
    extern "C" LUALIB_API int luaopen_connector(lua_State *L) {
    	lua_newtable(L);
    	luaL_setfuncs(L, ls_lib, 0);
    	lua_pushvalue(L, -1);
    	lua_setglobal(L, "connector");
    	return 0;
    }

    Как жить?

    Авто-репост. Читать в блоге >>>
  17. Аватар Glago
    LUA теперь читает alltrade.qty как дробное число
    После обновления Quik до 8.8.4.3 заметил, что alltrade.qty стало приходить с одним знаком после запятой. Для меня это не критично и теоретически можно округлять значения объёма, если скрипт используется на срочке. Однако интересно, может это связано с тем как кодит Notepad++.  Непонятно в какой версии луа он кодит 5.1 или 5.3? Может дробные значения объёма предполагают торговлю дробными лотами например на фонде? Пожалуйста, напишите в комментариях, что вы думаете об этом.

    Авто-репост. Читать в блоге >>>
  18. Аватар Винни Пух
    Вопрос алготрейдерам: у вас Квик не зависает при срабатывании OnStop() ?
    Столкнулся с такой проблемой буквально на последних паре версий 8.8.1 и 8.8.4

    В чем проблема: при остановке скрипта квик стал «уходить в себя» (зависать).
    Останавливается скрипт банально через OnStop()

    Логика там проще некуда:

    IsRun = true

    OnInit()
         CreateDataSource()
    end

    main()
         while IsRun do
             getCandlesByIndex()
             --доп. запрос данных с индикатора
             --и после вычисления
         end
    end

    OnStop()
         IsRun = false
    end

    Все. Структура как по учебнику. Все расчеты внутри main. Никаких допов не подключается, все расчеты сугубо арифметические.
    Считают каждую минуту при появлении новых данных по свечам.
    После остановки скрипта считать нечего. С рояли он зависает?

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

    Авто-репост. Читать в блоге >>>
  19. Аватар Алексей Чирва
    Добрый вечер. Можете сделать мне робота на lua для quik, или посоветовать мастера?
    Задача простая: на любом графике валют на ммвб(но скорее всего на м5 или м1) в определенный оператором момент в торговую сессию крутится лонг/шорт определенным количеством лотов от точки задаваемой оператором пока не станет позиция по тренду…
  20. Аватар Алексей Чирва
    ЛУА — программирование
    Добрый день, уважаемые коллеги!

    Не знаю снесут ли данный топик или же пройдет по правилам.

    Суть такая, что я полтора года программирую разных роботов в ЛУА, а еще имею косяк в недокапитализации счета и посему, учитывая, что живу исключительно с рынка уже почти два года, приходится встать на путь недалекий от околорынка :) Каюсь, но недостаток средств на счету, а точнее даже то, что расходы перекрывают доходы от торговли, все это стало причиной поиска сотрудничества и предложения создать робота под квик на заказ. Когда начинал торговать, то вход на всю котлету и пересиживание убытков по началу как-то вывозило. Но когда дошел до системного трейдинга с соблюдением рисков и ММ доходность упала, правда и нервы стали целее.

    Вдруг кому интересно что-то заполучить в виде скрипта луа, или индикатора какого. Сразу оговорюсь, до сего момента на заказ ничего не писал, расценок не знаю, но, полагаю, с заинтересованным человеком договоримся.

    Буду рад обратной связи и всякого рода помидорного закидывания :)

    С уважением, Виталий.

    Авто-репост. Читать в блоге >>>

    Vitaliy,
  21. Аватар Vitaliy
    ЛУА - программирование
    Добрый день, уважаемые коллеги!

    Не знаю снесут ли данный топик или же пройдет по правилам.

    Суть такая, что я полтора года программирую разных роботов в ЛУА, а еще имею косяк в недокапитализации счета и посему, учитывая, что живу исключительно с рынка уже почти два года, приходится встать на путь недалекий от околорынка :) Каюсь, но недостаток средств на счету, а точнее даже то, что расходы перекрывают доходы от торговли, все это стало причиной поиска сотрудничества и предложения создать робота под квик на заказ. Когда начинал торговать, то вход на всю котлету и пересиживание убытков по началу как-то вывозило. Но когда дошел до системного трейдинга с соблюдением рисков и ММ доходность упала, правда и нервы стали целее.

    Вдруг кому интересно что-то заполучить в виде скрипта луа, или индикатора какого. Сразу оговорюсь, до сего момента на заказ ничего не писал, расценок не знаю, но, полагаю, с заинтересованным человеком договоримся.

    Буду рад обратной связи и всякого рода помидорного закидывания :)

    С уважением, Виталий.

    Авто-репост. Читать в блоге >>>
  22. Аватар Алексей Киселев
    Вчера второй день программирования на lua и четыре часа искал параметр, который запрашивает цену закрытия предыдущего дня через функцию getParamEx

    В итоге нашёл через форум quik со ссылкой на сайт:

    76 PREVLEGALCLOSEPR NUMERIC Цена закрытия предыдущего дня


    euvgub.github.io/quik_user_manual/ch8_12_1.html

    оказывается в lua зашиты константы qpile
    оставлю здесь на память.
  23. Аватар Врач-бондиатОр
    Посоветуйте программу для редактирования Lua
    Всем привет!

    Посоветуйте плиз прогу для редактирования скриптов Lua чтобы она:

    1) мало весила
    2) имела опцию темного фона
    3) делала подсветку функций
    4) имела tool bar с большим количеством инструментов

    Сейчас пользуюсь скитом, но темного фона там нет, и тул бар какой-то убогий…

    Авто-репост. Читать в блоге >>>
  24. Аватар Vitaliy
    Vitaliy, данная задача решается следующим образом (даю алгоритм варианта готовой отработки автороллирования):

    1. Задается функция определения экспирируемого инструмента и нового (целевого) инструмента с ближайшей(например) датой следующей экспирации по, например, маске: «SR» — маска фьючей Сбера.
    Использовал штатные функции QLUA getClassSecurities(ClassCode),
    getParamEx(ClassCode,sec_code,«MAT_DATE»).param_image

    2. Задается функция определения самого момента роллирования с использованием getParamEx(ClassCode,sec_code,«MAT_DATE»).param_image

    3. Задается функция расчета параметров двух транзакций: одной — закрытие текущей позиции по экспирируемому инструменту; второй — открытие новой позиции по целевому инструменту.

    4. Формируются таблицы транзакций с обособленными кодами id транзакций для автоматического контроля и сопровождения ордеров.

    5. Отправка транзакций по моменту времени (функция 2) и инструменту (функция 1).

    Eugene Bright, Спасибо! Хорошая логика.
  25. Аватар Eugene Bright
    Vitaliy, данная задача решается следующим образом (даю алгоритм варианта готовой отработки автороллирования):

    1. Задается функция определения экспирируемого инструмента и нового (целевого) инструмента с ближайшей(например) датой следующей экспирации по, например, маске: «SR» — маска фьючей Сбера.
    Использовал штатные функции QLUA getClassSecurities(ClassCode),
    getParamEx(ClassCode,sec_code,«MAT_DATE»).param_image

    2. Задается функция определения самого момента роллирования с использованием getParamEx(ClassCode,sec_code,«MAT_DATE»).param_image

    3. Задается функция расчета параметров двух транзакций: одной — закрытие текущей позиции по экспирируемому инструменту; второй — открытие новой позиции по целевому инструменту.

    4. Формируются таблицы транзакций с обособленными кодами id транзакций для автоматического контроля и сопровождения ордеров.

    5. Отправка транзакций по моменту времени (функция 2) и инструменту (функция 1).
Чтобы купить акции, выберите надежного брокера: