четверг, 26 октября 2023 г.

Options, Lua, Quik

https://smart-lab.ru/blog/954230.php

BaseClassCode = «SPBFUT»
ClassCode = «SPBOPT»
BaseSecList = «SiU3»

SecList = getClassSecurities(ClassCode) --список всех опционов

if (BaseSecList == "") or (BaseSecList == nil)

then BaseSecList = getClassSecurities(BaseClassCode)

end

if (SecList == "") or (SecList == nil)

then SecList = getClassSecurities(ClassCode)

end

function main()

for SecCode in string.gmatch(SecList, "([^,]+)")

do --перебираем опционы из строки с разделителем, по очереди. 

local Optionbase=getParamEx(ClassCode,SecCode,«optionbase»).param_image 

local Optiontype=getParamEx(ClassCode,SecCode,«optiontype»).param_image

local Optionstrike=getParamEx(ClassCode,SecCode,«strike»).param_value+0

if (string.find(BaseSecList,Optionbase)~=nil)

and (Optiontype==«Call»)

and (Optionstrike>=_C-RangeStrike) 

and (Optionstrike<=_C+RangeStrike) 

then local row = InsertRow(tbl.t_id,-1)

local T = {

[«Name»] = getSecurityInfo(ClassCode,SecCode).name,

[«SecCode»] = SecCode,

[«Optiontype»] = Optiontype,

[«Optionbase»] = Optionbase,

 [«DAYS_TO_MAT_DATE»]=

getParamEx(ClassCode,SecCode,«DAYS_TO_MAT_DATE»).param_value+0,

[«strike»] = getParamEx(ClassCode,SecCode,«strike»).param_value+0,

[«bid»] = getParamEx(ClassCode,SecCode,«bid»).param_value+0,

[«offer»] = getParamEx(ClassCode,SecCode,«offer»).param_value+0,

[«last»] = getParamEx(ClassCode,SecCode,«last»).param_value+0,

[«THEORPRICE»] = getParamEx(ClassCode,SecCode,«THEORPRICE»).param_value+0

}

end

Комментариев нет:

Отправить комментарий