-- fn044set.lua расчет стоимости фьючерсных контрактов в портфеле относительно депозита -- © smart-lab.ru/profile/xxm 08.10.2018 -- торговый счет (из таблицы «Позиции по клиентским счетам (фьючерсы)») account = 'SPBFUT0003f' --положение окна с таблицей. Левый верхний угол в координаты left,top и размеры в width и height. xy = {} xy.left, xy.top, xy.width,xy.height = 0, 232, 722, nil --ширина столбцов таблицы t_width = {12, 6, 10, 8, 10, 10, 9, 7, 6, 11, 10, 11} -- месяц и год исполнения, 2 символа, https://www.moex.com/s205 MonthYear = "Z8" -- код базового актива, 2 символа -- если 4 символа, то переменная "MonthYear" не учитывается SecCodes={ {"MM"}, --контракт на индекс МосБиржи {"Si"}, --руб/доллар FORTS {"SR"}, --Sber FORTS {"LK"}, --контракт на Лукойл {"GZ"}, --контракт на Газпром {"BRX8"}, --контракт на нефть Брент, месяц и год - "X8" {"ED"}, --контракт на ED {"RN"}, --контракт на Роснефть {"GD"}, -- Gold } --Если xy.height == nil, то вычислить ее. --Для разных мониторов коэффициенты (17, 45 и 868 - подобраны эмпирически) будут разными. local height = xy.height or ((#SecCodes + 1)*17 + 45) if height > 868 then height = 868 end xy.height = height
["EXPIRY_DATE"] = "GTC"Собственно, два вопроса:
Settings =
{Name = «Fracta_l»,
period=31,
line =
{{
Name = «Level_High»,
Color = RGB(0,255,0),
Type = TYPE_POINT,
Width = 1
},{
Name = «Level_Low»,
Color = RGB(255,0,0),
Type = TYPE_POINT,
Width = 1
}}}
idx_prosl=0
function Init()
return #Settings.line
end
function OnCalculate(idx)
if idx==1 then
P = math.floor(Settings.period/2)*2+1
t_H,t_L={},{}
end
if idx~=nil and idx>P then
if idx_prosl~=idx then
local l=idx-P
for l=l,idx-1 do
t_H[l]=H(l)
t_L[l]=L(l)
end
if t_H[#t_H-(P-1)/2]==math.max(unpack(t_H,#t_H-P+1,#t_H)) then
H_ind_value=t_H[#t_H-(P-1)/2]
end
if t_L[#t_L-(P-1)/2]==math.min(unpack(t_L,#t_L-P+1,#t_L)) then
L_ind_value=t_L[#t_L-(P-1)/2]
end
end
else
H_ind_value=nil
L_ind_value=nil
end
idx_prosl=idx
return H_ind_value, L_ind_value
end
1. В папке с Квиком создаем директорию LuaIndicators.
2. В этой папке создаем файл br_rub.lua, туда записываем:
Settings =
{
Name = «BR_RUB»,
tag = «USDRUB»,
tag1 = «BR»,
line=
{
{Name = «brent_rub», Color = RGB(0, 0, 255), Type = 1,Width = 1}
}
}
function Init()
return 1
end
function OnCalculate(index)
local Out = (getCandlesByIndex(Settings.tag1, 0, index-1, 1)[0].close or 0) * (getCandlesByIndex(Settings.tag, 0, index-1, 1)[0].close or 0)
if Out > 0 then
return Out
else
return nil
end
end
1. В Квике создаем график с курсом доллара (USDRUB_TOM).
2. К графику добавляем график с брентом (BR-3.18).
3. Идем в настройки графика, в разделе Дополнительно указываем Идентификатор: BR -для графика с брентом, USDRUB- для графика с курсом.
4. Добавляем индикатор (выбираем из выпадающего списка BR_RUB).
5. Уменьшаем ненужные поля. Если график не отобразился — даблкликаем на графике — жмем Применить:
ссылка на файл
кросспост rffx.ru