Блог им. GeorgeMartin

Добавление индикаторов в Quik в Lua script. Ну типа помощь нужна )

Камрады, добрый день или что еще существует в вашей реальности)) Вопросом озадачен я, как сделать так чтобы грааль волшебный в Lua, индикатор тобишь, был помещен в сосуд волшебный, т.е. Quik, при том что изначально чародей создал заклятье в Pine script(e)? Поскольку разумом и знанием слегка я обделен, спросил я нейросеть, что знает все на свете, могла б ли ты помочь мне в этом и перевести заклятье? В итоге получив два разных варианта перевода, естественно от разных сеток, я переправил это мудрецам из круга своего знакомых… Те были несказанно в думе, мгогозначительно сказав, что нет прямого перевода Пина в Луа, что сети явно мне солгали, при этом взяв на изученье сей манускрипт сетей. Однако зная лет 15, что на ресурсе шмартлабру, издревля существуют создатели кодов, а также продавцы порожняка, решил я сделать сие повествование, в надежде помощи и кооперации, а также безусловно предложений алчных от неких тайных колдунов ))) последние конечно алтын с меня стянуть не смогут...)))
Кароче, товарищи кодеры, кто прям на раз два с луа и добавлял в квика свои творения не раз, подсобите прикрутить или быть может дать какие то материалы наводки, что кенты мои смогли допилить. п.с. там очень хорошая штука. аналоговнет))
  • обсудить на форуме:
  • Quik Lua
7 комментариев
Нужна конкретика в виде ТЗ, а не вот это все… И на будущее — Quik
avatar
Fairman, на какое нахрен будущее)) Я на эту иконку с 2007 года смотрю и хер помню что там написано… А писать быстрый по английски привык как есть...
ТЗ. 

indicator(title="__RRS HDAX 5M 2022-04-21", shorttitle="__RRS HDAX 5M")
comparedWithSecurity = input.symbol(title=«Compare With», defval=«SPY»)
length = input(title=«Length», defval=12) //12 = 5 min (60/5)


//##########Rolling Price Change##########
comparedClose = request.security(symbol=comparedWithSecurity, timeframe="", expression=close)
comparedRollingMove = comparedClose — comparedClose[length]
symbolRollingMove = close — close[length]


//##########Rolling ATR Change##########
symbolRollingATR = ta.atr(length)[1]
comparedRollingATR = request.security (symbol=comparedWithSecurity, timeframe="", expression= ta.atr(length)[1])

//##########Calculations##########
powerIndex = comparedRollingMove / comparedRollingATR
RRS = ((symbolRollingMove — powerIndex * symbolRollingATR) / symbolRollingATR)

//##########Plot##########
RealRelativeStrength = plot(RRS, «RealRelativeStrength», color=color.blue)
Baseline = plot(0, «Baseline», color=color.red)

//##########Extra Stuff##########
fill(RealRelativeStrength, Baseline, color = RRS >= 0? color.new(color.green, 45): color.new(color.red, 45), title=«fill»)

correlated = ta.correlation(close, comparedClose, length)
Correlation = plot(0, title=«Correlation», color = correlated > .75? #00FF00: correlated > .50? #00C000: correlated > .25? #008000: correlated > 0.0? #004000 :correlated > -.25? #400000 :correlated > -.50? #800000 :correlated > -.75? #C00000 :#FF0000, linewidth=1, style=plot.style_circles)

avatar
Увы, по-ходу!
1. smart-lab.ru/vopros/805635.php
avatar
nsk54, да как раз этот скрипт рабочий для ТВ, мой товарищ написал. По причине, что ТВ оплатить из РФ головняк, обратный процесс нужен. Понятно уже, что руками только нужно править, перевод невозможен с языка на язык. 
avatar

Если с помощью нейронки перевести на Qlua, то получим нечто подобное, осталось только дополнить пробелы:

— Инициализация переменных

init()
OnCalculate()
local comparedSymbol = «SPY» — Символ для сравнения
local length = 12 — Длина периода

— Функция для вычисления RRS
function calcRRS(close, comparedClose, length)
local comparedRollingMove = close[1] — close[length + 1]
local symbolRollingMove = comparedClose[1] — comparedClose[length + 1]

local symbolRollingATR = ATR(close, length)[1]
local comparedRollingATR = ATR(comparedClose, length)[1]

local powerIndex = comparedRollingMove / comparedRollingATR
local RRS = (symbolRollingMove — powerIndex * symbolRollingATR) / symbolRollingATR
return RRS
end

— Функция для вычисления корреляции
function Correlation(close, comparedClose, length)
— Здесь должен быть код для вычисления корреляции
— Поскольку QLua не имеет встроенной функции для корреляции,
— этот код будет заглушкой
return 0
end

— Основная функция
function OnCalculate()
— Получение данных
local close = getClosePrices(length + 1)
local comparedClose = getClosePrices(comparedSymbol, length + 1)

— Вычисление RRS
local RRS = calcRRS(close, comparedClose, length)

— Вывод RRS на график
— Здесь должен быть код для вывода RRS на график

— Вычисление корреляции
local correlated = Correlation(close, comparedClose, length)

— Вывод корреляции на график
— Здесь должен быть код для вывода корреляции на график
end

— Функция для получения цен закрытия
function getClosePrices(symbol, length)
— Здесь должен быть код для получения цен закрытия
— Этот код будет заглушкой
return {}
end

— Функция для вычисления ATR
function ATR(close, length)
— Здесь должен быть код для вычисления ATR
— Этот код будет заглушкой
return {}
end

avatar
Ray Intraday, я могу пару кодов перевода нейро сюда скинуть… Но как я понимаю, все руками придется пилить. В итоге вопрос именно к тем, кто в теме этой с Квиком уже и делал луа индюки себе и юзает их.
avatar

теги блога George Martin

....все тэги



UPDONW
Новый дизайн