A:品种期权系列指标说明,参考:FAQ:
2023-09-25-应用专题-期权系列06:品种期权系列指标算法与提取说明(更新版)
批量循环提取指标的方法可参考:FAQ:
Q:取数Demo-取一段时间内多个股票的指标值
实现案例
特别说明:由于
模型计算数据量较大,执行时间会较长,想要提高效率可以使用网格计算或减少单次执行的标的代码数量。
网格计算说明:FAQ:
Q:天软网格计算
范例一:取日线数据
获取20240725所有期权标的的日线指标
endt:=20240725t;
pzs:=OP_GetUnderlyingSecurity(); //获取所有期权品种
stocks:=array();
for i,pz in pzs do
stocks&=OP_GetOptionChain(pz,endt);
//按期权标的对代码列表分组
stocks:=select ["标的证券代码"],sselect ["StockID"] from thisgroup end as "代码列表"
from stocks group by ["标的证券代码"] end;
setsysparam(pn_cycle(),cy_day());
setsysparam(pn_date(),endt);
strt:=datetostr(endt);
rt:=array();
x:=0;
for i in stocks do
begin
stock:=stocks[i,"标的证券代码"];
echo i$"--"$stock;
OptionArr:=stocks[i,"代码列表"];
setsysparam(pn_stock(),stock);
rt[x,'StockID']:=stock;
rt[x,'StockName']:=stockName(stock);
rt[x,'Date']:=strt;
//获取期权标的行情指标
rt[x,'收盘价']:=close();
rt[x,'成交量']:=vol();
rt[x,'成交金额']:=amount();
//获取多个期权指标
rt[x,'成交量之和']:=Options_Vol_Sum(OptionArr,0);
rt[x,'成交量PCR']:=Options_Vol_PCR(OptionArr);
rt[x,'持仓量之和']:=Options_OpenInterest_Sum(OptionArr,0);
rt[x,'持仓量PCR']:=Options_OpenInterest_PCR(OptionArr);
rt[x,'成交金额之和']:=Options_Amount_Sum(OptionArr,0);
rt[x,'成交金额PCR']:=Options_Amount_PCR(OptionArr);
rt[x,'隐含波动率']:=Options_IV(OptionArr,0,0);
rt[x,'Skew']:=Options_Skew(OptionArr,0,'spline');
rt[x,'隐波差(%)']:=Options_PCIVD(OptionArr,0);
//还可以继续添加其它指标
//rt[k,'xxx']:=funcxxx(...);
x++;
end
return rt;
结果展示:
范例二:取分钟线数据
获取20240725指定cu品种期权标的的分钟线指标
endt:=20240725t;
begt:=specall(ref(sp_time(),1),array(pn_stock():"SH000001",pn_date():endt,pn_cycle():cy_day()));
pz:="cu";
stocks:=OP_GetOptionChain(pz,endt);
//按期权标的对代码列表分组
stocks:=select ["标的证券代码"],sselect ["StockID"] from thisgroup end as "代码列表"
from stocks group by ["标的证券代码"] end;
setsysparam(pn_cycle(),cy_1m()); //设置周期
rt:=array();
x:=0;
for i in stocks do
begin
stock:=stocks[i,"标的证券代码"];
echo i$"---"$stock;
OptionArr:=stocks[i,"代码列表"];
setsysparam(pn_stock(),stock);
daylist:=stocktradedayqk(begt+18/24,endt+18/24);//获取指定日交易时间序列
for j,dendt in daylist do
begin
setsysparam(pn_date(),dendt);
rt[x,'StockID']:=stock;
rt[x,'StockName']:=stockName(stock);
rt[x,'Date']:=datetimetostr(dayEnd);
//获取期权标的行情指标
rt[x,'收盘价']:=close();
rt[x,'成交量']:=vol();
rt[x,'成交金额']:=amount();
//获取多个期权指标
rt[x,'成交量之和']:=Options_Vol_Sum(OptionArr,0);
rt[x,'成交量PCR']:=Options_Vol_PCR(OptionArr);
rt[x,'持仓量之和']:=Options_OpenInterest_Sum(OptionArr,0);
rt[x,'持仓量PCR']:=Options_OpenInterest_PCR(OptionArr);
rt[x,'成交金额之和']:=Options_Amount_Sum(OptionArr,0);
rt[x,'成交金额PCR']:=Options_Amount_PCR(OptionArr);
rt[x,'隐含波动率']:=Options_IV(OptionArr,0,0);
rt[x,'Skew']:=Options_Skew(OptionArr,0,'spline');
rt[x,'隐波差(%)']:=Options_PCIVD(OptionArr,0);
//还可以继续添加其它指标
//rt[k,'xxx']:=funcxxx(...);
x++;
end
end
return rt;
结果展示:
