

-- 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
local w32 = require("w32")
function FindLoginWindow()
hLoginWnd = w32.FindWindow("", "Установка сетевого соединения")
if hLoginWnd == 0 then
hLoginWnd = w32.FindWindow("", "Network connection setting")
end
return hLoginWnd
end
timeout = 1000 -- таймаут между попытками поиска окна логина
is_run = true
function OnStop()
timeout = 1
is_run = false
end
function main()
while is_run do
sleep(timeout)
if isConnected() == 0 then
local hLoginWnd = FindLoginWindow()
if hLoginWnd ~= 0 then
local nBtnOk = w32.FindWindowEx(hLoginWnd, 0, "Button", "&Ввод")
if nBtnOk == 0 then
nBtnOk = w32.FindWindowEx(hLoginWnd, 0, "Button", "&Enter")
end
w32.SetFocus(nBtnOk)
w32.PostMessage(nBtnOk, w32.BM_CLICK, 0, 0)
while not isConnected() do sleep(1000); end;
end
end
end
end

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
Фондовый рынок США — самый широкий в мире, на нем представлены тысячи компаний из самых различных сфер экономики. Чтобы лучше ориентироваться в компаниях по их роду деятельности, рынок разделен на несколько секторов. Дабы облегчить поиск и сортировку компаний по секторам — для общего пользования (и совершенно бесплатно))) выкладываю скрипт-помощник для терминала Quik.
На Санкт-Петербургской Бирже сегодня торгуются акции более пятисот американских компаний, у нас существует разделение инструментов по роду деятельности на одиннадцать секторов экономики. https://investcab.ru/ru/inmarket/torg_instruments/
Скрипт выдает таблицы со списком акций выбранного сектора (секторов).

При запуске появляется главная таблица, из которой двойным кликом вызывается таблица по соответствующему сектору. В 'этой таблице тикер, полное название компании, цена последней сделки по ней на Санкт-Петербургской Бирже, лучшие цены спроса и предложения. Таблицы можно закрывать и затем вызывать вновь. Скрипт выключается через «Lua доступные скрипты» или если закрыть главную таблицу, при этом все таблицы удаляются.
