Постов с тегом "Lua": 337

Lua


Вопрос 2 по Lua

Всем привет!

Продолжаю изучать волшебный мир Луа в волшебном мире Квика и добрался до размещения скриптом заявок.
На текущий момент есть такой скрипт (в общем виде).

local SecCode = «LKU0»
local Quantity=1

function main()

while stopped == false do


local Quotes = getQuoteLevel2(«SPBFUT», SecCode)
local Offer_Price = tonumber(Quotes.offer[1].price)
local Offer_Vol = tonumber(Quotes.offer[1].quantity)

--отправка формы заявки
local LimitOrderBuy = { ххххх}

--условие входа в лонг

if Offer_Vol>10 then
message(Order)
local Order = sendTransaction(LimitOrderBuy)
end

sleep (200)
end

Смысл его такой: если количество лукойла в первой строке стакана больше 10, то покупается 1 бумага и работа скрипта завершается.
Так как скрипт срабатывает при определенном условии, то для перезапуска используется while stopped == false do и sleep (200).
Прикол в том, что при наступлении условия, скрипт начинает бомбить заявки по 1 шт  пока не кончаются деньги (виртуальные).

Вопрос: какой размыкатель цикла можно тут использовать, чтобы после покупки 1 бумаги работа скрипта завершилась?

На ресурсах есть getItem, битовые флаги и пр., но изложено это как-то непонятно.
Помогите плиз..)
ЗЫ: обещаю поставить лайк хорошим ответам )


  • обсудить на форуме:
  • Quik Lua

Вопрос 1 по Lua

Всем привет!

Начал изучать Lua для квика и сразу возник вопрос:
К примеру, скрипт создает таблицу с интересующими параметрами по инструменту.
В таблице новая строка создается командой InsertRow(#table ID, -1).
После этого в нее добавляются параметры через команду setCell

Если инструмент один, например, в таблице только Лукойл, то все работает без проблем.
А как быть, если я хочу добавить несколько тикеров?

Добавление еще раз InsertRow(#table ID, -1) создает новую строку, а копипаст «заполняющих» команд с параметрами другого тикера новую строку не заполняет...

  • обсудить на форуме:
  • Quik Lua

QLua скринер в 10 строк кода. Или "за базар отвечаю".

Всем привет!
Никогда не давайте обещаний которые не можете выполнить. Во-первых — это портит карму. Во-вторых, за сказанное нужно отвечать. В далеких (не очень) 90-х, если человек не держал слова, к нему приезжали «санитары» с электроприборами, типа дрель, паяльник, утюг — все перечислять не буду, чтобы не пугать читателя, т.к. пост многие найдут полезным не только для торговли, но и для написания собственного кода. Так вот, пообещал я человеку, дело было так:
QLua скринер в 10 строк кода. Или "за базар отвечаю".
Мой родной язык, помимо русского, Common Lisp. С недавних пор породнился с Питоном. А тут луа, да еще с Квиком вперемешку. Не фиг было обещания давать. Больше времени потратил на изучение структур данных луа и особенностей QLua. Сам код был написан за пару часов, как увидите ниже — чё там писать-то...
Как я обещал — пользователь Смартлаба Weddy получает код бесплатно, как и остальные участники тусовки. Ну а я, в качестве вознаграждения получаю приобретенный опыт. Проверял сегодня — работает с любым Квиком (6, 7, 8). Конечно дополнительных «наворотов» я не делал, как в идеале желал Weddy, но это уже детали.

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Как я переехал на версию Quik 8.5 ничего не перекомпилируя и не переделывая в роботах. Лайфхак для нубов в программировании.

Из за того, что у меня накрылся на прошлой неделе арендуемый физический сервер, я решил его проапгрейдить  заодно установить в ВТБ новый квик.
В ВТБ  в частности постоянно прилетало сообщение, что надо устанавливать новый квик, что то там с нумерацией заявок на срочном рынке, а так же о том, что версия ЛУА, встроенного в квик, тоже проапгрейдится, и возможно скрипты работать не будут.

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

Ну ладно, деваться некуда, тем более, что когда с сайта ВТБ качаешь дистрибутив квика, там сейчас безвариантивно доступна только версия 8.5

Установил запустил. Скрипт, как и следовало ожидать, на первый взгляд, заработал сразу, без всяких «перекомпиляций». Потому что он написан в блокноте, а переводит в машинный код его (если я правильно понимаю, как все устроено) непосредственно встроенный в квике модуль ЛУА. 

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Quik 8.5.2.11, Lua 5.3.5. Первые впечатления.

    • 01 июня 2020, 19:50
    • |
    • 3Qu
  • Еще
Quik, по сравнению с версией 8.2, стал несколько лучше. Меньше подвисает, но иногда бывает. Мелкие, наверно несущественные, изменения в интерфейсе — не сразу и заметил.
Lua 5.3.5, по сравнению с Lua 3.1, летает. То, что исполнялось несколько секунд, теперь пролетает практически мгновенно. В программах Lua никаких изменений делать не пришлось, мною не использовались специфические для Lua 5.1 конструкции.
Вот, DLL, цепляющиеся к Lua, все упали, в буквальном смысле. Пару дней разбирался, несколько изменился C-API, пришлось переделывать функции luaopen в DLL. Помогли ребята с http://quikluacsharp.ru/, если что — смотрите решение у них.
В DLL, по идее, еще надо переделывать int на 64 бит целое (при компиляции куча алармов на эту тему), но, кроме номеров заявок в обозримом будущем, не обязательно. Кроме заявок-сделок, таких номеров в инструментах нет. Пока, по крайней мере.

Кто лайкает посты про Lua и Python?

    • 30 мая 2020, 16:14
    • |
    • GOLD
      Популярный автор
  • Еще
Кто лайкает посты про Lua и Python?

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

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

Кто остается? Ау! Откликнитесь! Вы кто??))

Замотала, эта Lua.

    • 29 мая 2020, 15:26
    • |
    • 3Qu
  • Еще
Давненько я не брал в руки шашки не писал индикаторов на Lua. Вчера ближе к ночи приспичило перенести старый отработанный индикатор с Python в терминал на Lua-QLua.
Взял, как водится, какой-то готовый, и начал его переделывать. Дел, в общем, немного, вместо одной линии нарисовать три, и оставив болванку везде поменять код. Python, в общем, похож на Lua (все языки программирования оч. похожи), а потому, берем код Python, в Notepad++ копипастим его в Lua индикатор, немного исправляем синтаксис, немного исправляем код под особенности индикаторов, и через 20 минут готово.
Пытаемся добавить на график. Счас! Индикатор вообще не виден.
Начинаем корежить код и танцевать с бубном. Че сделали, так и не поняли, но индикатор в меню настроек появился — победа! Но, не тут-то было. Однако, добавить не удается, тут же вылетает. Опять танцы с бубном.
Теперь добавляется, но Quik наглухо виснет и падает. Но, зато начал писать ошибку — строка 86, там какой-то nil. Какой еще nil, там строка, типа, buff[i] = a*b[i]^2 + c*d[i]^2. Да, сколько можно? Откуда там nil? Бредятина какая-то.

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Lua индикатор для Quik, Bollinger Bands %b Oscillator. Кому интересно....

Кому интересно, переделал индикатор Bollinger Bands (ВВ.lua) под осциллятор Bollinger Bands  %B   

В теме  https://smart-lab.ru/blog/623989.php



Ниже копипаст как его интерпретировать:


Как интерпретировать график индикатора

По принципу своей работы индикатор %b – это моментум- осциллятор, сходный, например, со стохастиком. Однако есть и отличия: если у стохастического осциллятора цены колеблются в интервале от 1 до 100, то у нашего индикатора цена может и выходить за эти пределы, например, значение может быть 1,15 или -0,15, что означает- цена находится выше или ниже на 15% от ширины ленты. То, что формально интервал обозначен уровнями 0 и 1, не должно вас путать – это одно и то же, но умноженное на коэффициент 100.


Но что означают, все эти нулевые или единичные уровни?

Это означает, что если:

  • График на уровне=0, то цена находится на нижней границе полосы Боллинджера,
  • График на уровне=1, значит, цена на верхней границе,
  • График на уровне 0,5 – цена находится на скользящей средней,
  • График ниже уровня=0 означает, что произошел прорыв полосы в сторону падения,
  • График выше уровня=1 – прорыв полосы в сторону повышения.


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

....все тэги
UPDONW
Новый дизайн