Постов с тегом "Quik Lua": 239

Quik Lua


Lua индикатор для Quik, Bollinger Bands %b Oscillator

Доброго времени всем.
Ищу Lua индикатор для Quik, Bollinger Bands %b (Bollinger Bands %BB Oscillator).  На MT4 есть в открытом виде. Возможно у кого-то уже есть переделанный в lua. Буду очень признателен в помощи его отыскать. Если не найду, придется переписывать самому в lua...(




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





Settings = {
Name = "*BB (Bollinger Bands) %B oscillator",
Period = 20,
Metod = «SMA», --(SMA, MMA, EMA, WMA, SMMA, VMA)
VType = «Close», --(Open, High, Low, Close, Volume, Median, Typical, Weighted, Difference)
Shift=2,
line = {{
Name = «Horizontal line (top)»,
Type = TYPE_LINE,
Color = RGB(221, 44, 44)
},
{
Name = «Horizontal line (bottom)»,
Type = TYPE_LINE,
Color = RGB(221, 44, 44)
},
{
Name = «Bollinger Bands %B oscillator line»,
Type = TYPE_LINE,
Color = RGB(255, 255, 255)
}
},
Round = «off»,
Multiply = 1,
Horizontal_line=«0»
}

function Init()
func = BB_B()
return #Settings.line
end

function OnCalculate(Index)
local Out = ConvertValue(Settings, func(Index, Settings))
local HL = tonumber(Settings.Horizontal_line)
if HL then
return 1+HL,HL,Out
else
return nil,nil,Out
end
end


function BB_B() --Bollinger Bands %B oscillator («BB_B»)
local BB_MA=MA()
local BB_SD=SD()
local it = {p=0, l=0}
return function (I, Fsettings, ds)
local Fsettings=(Fsettings or {})
local P = (Fsettings.Period or 20)
local M = (Fsettings.Metod or SMA)
local S = (Fsettings.Shift or 2)
local VT = (Fsettings.VType or CLOSE)
if (P > 0) then
if I == 1 then
it = {p=0, l=0}
end

local b_ma = BB_MA(I, {Period=P, Metod = M, VType=VT}, ds)
local b_sd = BB_SD(I, {Period=P, Metod = SMA, VType=VT}, ds)
if CandleExist(I,ds) then
if I~=it.p then it={p=I, l=it.l+1} end
if it.l >= P and b_ma and b_sd then



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

Прошу написать простой индикатор

Приветствую, сильно увлекся арбитражем, на данный момент прошу написать код простого индикатора на Lua, который просто будет считать разницу между по ценами 2-х инструментов.
Например есть Сбербанк и Сбербанк преф.
Нужно посчитать разницу между ценам закрытия свечей и вывести ее в виде графика.
Условно цена закрытия бара на Сбер 190 руб, цена закрытия бара Себер преф 170 руб, соответственно на графике должен быть результат 20 руб.
Соответственно эти расчеты могут уходить в минус, что означает, что условно цена Сбера стала меньше цены Сбера преф.
Буду благодарен если воткнете вторую возможность выбора сравнения цен инструмента относительно изменения в %. Что бы можно было сравнить например Газпром и Лукойл. 

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

Ну если скажете, что стоит денег прийдется оплатить. На последующих этапах готов оплатить создание робота, но при доработанном индикаторе.
  • обсудить на форуме:
  • Quik Lua

Quik, DDE, Excel

    • 21 мая 2020, 12:16
    • |
    • 3Qu
  • Еще
Напомню, что обмен по DDE придуман в далеком 1995 году, еще для Windows 3.1.  DDE считается сильно устаревшим методом обмена данными и практически не поддерживается современными приложениями. Остался один Quik, который цепляется за DDE из последних сил.
Вывод по DDE в Excel еще и не удобен для обработки данных. Понадобилось мне, скажем, ввести дополнительно пару-тройку столбцов на опционную доску — в результате, в Excel все столбцы таблицы на листе сместятся, и всю адресацию ячеек листа Excel в программе надо будет переделывать заново.
В MS Access также имеется DDE-сервер, и есть возможность заполнять таблицы БД по DDE, однако Quik c Access по DDE работать не умеет.
В общем, решил, что экспорт таблицы из Quik по DDE надо запихнуть в таблицу базы данных (БД), и уже из БД программно работать с опционной доской. Что, кстати, гораздо удобней для любой таблицы Quik.
Хотел было через Lua — вроде все просто, Lua с таблицами работает. Ан нет, к доске опционов Lua доступа не имеет.
Наверное на С++ или C# связь по DDE надо делать.
И подумалось, а может у Смартлабовцев есть такие уже готовые рабочие решения, чего велосипеды изобретать? По крайней мере, для DDE (никогда программно с ним не работал), а в БД я и сам запихну, и если нужно поделюсь решением — здесь нет никаких ноу-хау.
Помогайте, граждане кто чем может.
  • обсудить на форуме:
  • 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

Поделитесь роботом на Луа....плиз...

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

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

Думаю, что многие бы сказали спасибо...


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

Опыт доработки QLua-скриптов для QUIK 8.5.2

    • 15 мая 2020, 16:29
    • |
    • _sk_
  • Еще
В новой версии терминала QUIK 8.5.2 произведён апгрейд языка Lua для написания торговых скриптов с версии 5.1 до версии 5.3. Это нужно для того, чтобы корректно обрабатывать 19-значные номера заявок и сделок на срочном рынке МосБиржи. Типа number в Lua 5.1 не подходит: там все числа хранятся как double, соответственно целые числа до 2^53 = 9 007 199 254 740 992 записываются без потери точности, а 19-значные номера заявок и сделок будут больше этой границы.

Версия Lua 5.3 обратно несовместима с Lua 5.1. Я почти не использовал внешние библиотеки и для меня было два важных изменения: отказ от module (это было сделано в версии 5.2) и введение целочисленной арифметики (версия 5.3).

Для избавления от использования module пришлось переработать много кода, хотя изменения были несложные. Приведу пример. Раньше был такой код Arrays.lua для работы с массивами:

--
-- Выполнение действий с массивами.
--

local pairs = pairs
local type = type

module(...)

--- Создать копию массива (таблицы)
-- @return копию массива (таблицы)
function copy(array)
    local copy_array = {}
    if type(array) ~= "table" then
        return array
    end
    for k, v in pairs(array) do
        if type(v) == "table" then
            copy_array[k] = copy(v)
        else
            copy_array[k] = v
        end
    end
    return copy_array
end

--- Узнать, начинается ли индексация в массиве с нуля или с единицы.
-- @return 0 или 1
function base(array)
    if array[0] ~= nil then
        return 0
    else
        return 1
    end
end

--- Вычислить число элементов в массиве.
-- @return число элементов в массиве
function size(array)
    local n = 0
    for _, _ in pairs(array) do
        n = n + 1
    end
    return n
end

--- Проверить пустой или нет массив.
-- @return true/false
function isEmpty(array)
    for _, _ in pairs(array) do
        return false
    end
    return true
end

--- Получить первый индекс массива, где ничего не записано. Поиск начинается с 1.
-- @return первый индекс массива, где ничего не записано
function firstEmptyIndex(array)
    local i = 1
    while array[i] ~= nil do
        i = i + 1
    end
    return i
end


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

Робот для Квика на Луа.

Здравствуйте. Нужен робот, тех.задание готово.  Робот без наворотов, простой, два индикатора +стандартный набор функций (стоп, трейл, выбор позиции и т.д). Цена фиксированная ( адекватная), по возможности-укажите Ваши ценовые предпочтения(почасовую оплату не предлагать). Все предложения в личку или на мыло.Спасибо.
  • обсудить на форуме:
  • 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

Алгоритм для торговли BRENT на LUA в QUIK

Всем привет!

Smart-Lab'у я не знаком, поэтому напишу пару слов о себе. Меня зовут Артем, финансовым рыком я увлекался с 9го класса школы и хотел стать трейдером. Я имею профильное образование в российском и английских вузах, изучал международную экономику, investment management и финансовый инжиниринг. Моим первым местом работы было совместное предприятие OSTC-ATON. Вопреки скепсису многих — это одна из лучших proprietary trading компаний в мире и уж точно лучшая в России. Также я работал в крупнейшем брокере нефтепродуктов России, где был сфокусирован на физическом рынке нефти. На данный момент я нахожусь в prop отделении Freedom Finance.

Как и многие, я довольно долго шел к тому, чтобы иметь собственную стратегию. Я собирал свою стратегию по кусочкам, читая разные книги, торгуя и пробуя что-то новое. Около 2 лет назад я пришел к четким правилам, необходимым мне чтобы входить в сделки и управлять позицией. В декабре/январе я оформил свои правила в алгоритм, который торгует с 29.01.2020. Сейчас я немного о нем расскажу.

( Читать дальше )

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