Постов с тегом "LUA": 340

LUA


Замотала, эта 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

Автозапуск QUIK QLUA

Пожалуй, каждый, даже, самый ленивый программист на LUA презентовал свою версию для запуска QUIK.
Пришла и моя очередь.
Вчера, за небольшую благодарность, swerg перевёл w32.dll на LUA 5.3.
Теперь есть поддержка QUIK 8.5 и выше.
Скачать: http://pmntrade.ru/avtozapusk_quik_qlua/avtozapusk_quik_qlua.zip
Страница программы: http://pmntrade.ru/avtozapusk_quik_qlua.html
Видео:


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

Lua for Windows

message(«a»)

------------------------------Output------------------------------
>lua -e «io.stdout:setvbuf 'no'» «a.lua»
lua: a.lua:1: attempt to call global 'message' (a nil value)
stack traceback:
a.lua:1: in main chunk
[C]: ?
>Exit code: 1

Самый простой, по сути код. Но Lua  выдаёт ошибку при компилировании без function main(), при том что Quik выполняет этот код без конструкции main или function. Раньше такой ошибки не было.
Что случилось? Кто-нибудь знает?
  • обсудить на форуме:
  • Quik Lua

У кого есть Lua .

    • 20 апреля 2020, 08:29
    • |
    • McDuck
  • Еще
Здравствуйте народ. Хотел спросить может у кого есть Lua скрипт работающий по пересечению индикатором нулевой зоны гистограммой, который можно подключить через идентификатор в QUIK.  Либо чтобы открывались сделки по данным скрипта qpl по перевесу (дельте) оборота сделок. Скрипт прилагаю, в нем подсчитывается объем.  
Написание скрипта тоже рассмотрю, пишите в личку.  
PORTFOLIO_EX LUK;
DESCRIPTION Объёмы купли/продажи за интервал;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST FIRMID;

PROGRAM

'Автор:  Михаил Булычев
'Что делает:
'   подсчитывается объёмы купли\продажи по определённому инструменту за 
'   заданный интервал   
'Как использовать:
'  В следующих строках следует указать код бумаги и код класса для 
'  отслеживаемого инструмента

'=============================НАСТРОЙКИ===============================
SecCode="LKOH" '  Код инструмента
ClassCode="TQBR" 'Код класса
interv=3600 'является интервалом в секундах
razn = 0 'смещение часового пояса относительно времени торговой системы. 
'=============================НАСТРОЙКИ===============================


FUNC is_in_interval(interval, trade_time, sys_time, hour_shift)
  csys_time_value=0
  c_time_value=0
  csys_time_value =0 + (0 + get_value(sys_time, "Hour") + hour_shift)*3600 + _
                    get_value(sys_time, "Min")*60 + _
                    get_value(sys_time, "Sec")
  c_time_value=0 + ((0 + substr("" & trade_time, 0, 2)) * 3600) + ((0 + substr("" & trade_time, 2, 2)) * 60) + ((0 + substr("" & trade_time, 4, 2)))

csys_time_value = csys_time_value + 0
c_time_value = c_time_value + 0

k=csys_time_value - c_time_value

if k <= interval
    result=1
  else
    result=0
  end if
END FUNC

  buy_value=0
  sell_value=0
  total_value=0
  sys_time = GET_DATETIME()
  delete_all_items() 
  mString=create_map()
  


  j=0
  n=get_number_of("ALL_TRADES")
  for i from 0 to n
    mTrade=get_item("ALL_TRADES", n-i)
    trade_time=get_value(mTrade, "TIME")
    if (get_value(mTrade, "SECCODE")= SecCode) AND (get_value(mTrade, "CLASSCODE")= ClassCode)
      if is_in_interval(interv, trade_time, sys_time, 0-razn) = 1
        value=0+get_value(mTrade, "VALUE")
        j=j+1
        if (get_value(mTrade, "OPERATION") = "BUY")
          buy_value=buy_value+value    
        else
          sell_value=sell_value+value      
        end if
        total_value=total_value+value
      else
        break
      end if
    end if    
  end for
  mString=set_value(mString, "vol", total_value)
  mString=set_value(mString, "volbuy", buy_value)
  mString=set_value(mString, "volsell", sell_value)
  add_item(1, mString)
END_PROGRAM

PARAMETER vol;
PARAMETER_TITLE vol;
PARAMETER_DESCRIPTION Купили;
PARAMETER_TYPE NUMERIC(10,0);
END
PARAMETER volbuy;
PARAMETER_TITLE volbuy;
PARAMETER_DESCRIPTION Купили;
PARAMETER_TYPE NUMERIC(10,0);
END
PARAMETER volsell;
PARAMETER_TITLE volsell;
PARAMETER_DESCRIPTION Продали;
PARAMETER_TYPE NUMERIC(10,0);
END
END_PORTFOLIO_EX
  • обсудить на форуме:
  • Quik Lua

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