Mirror docs/tsl/codegen into the bundled tsl-api-reference skill and rebuild the function index. Remove invalid duplicate API entries for cb_delistedbydate, createhttpsession, exportJsonString, and Anova_Bartlett so exact lookup returns the canonical entries.
22 KiB
因子与量化 / 其他
adjustSmaple(bk_name, beg_t, from_no, to_no)
根根据FromNo,ToNo选取StockArr在EndT的市盈率升序后的股票组合,再根据PercentType确定股票的比例,根据比例分配资金,返回股票的资金分配及购买股数
| 参数 | 类型 | 说明 |
|---|---|---|
bk_name |
string | 字符串,板块名称,在第二次跟踪时要选股的板块名称StockArr:数据表,初始股票组合 |
beg_t |
datetime | 日期型时间,开始跟踪日期EndT:日期型时间,结束跟踪日期AdjustMonth:整数,在跟踪期间调整的月份数 |
from_no |
int | 整数,起始行号 |
to_no |
int | 整数,截止行号 |
返回:array
bsByMacd(short, _type)
MACD买入条件选股,DIF上穿(即突破)DEA。与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
|---|---|---|
short |
int | 整数,计算MACD指标线的短线Long:整数,计算MACD指标线的长线M:整数,计算MACD指标线的交易日长度 |
_type |
int | 结果类型 |
返回:bool
示例
oV:=BackUpSystemParameters();
setsysparam(pn_stock(),'SH600004');
setsysparam(pn_date(),inttodate(20110913));
setsysparam(pn_cycle(),cy_day());
Short:=12;
Long:=26;
M:=9;
Type:=2;
v:= SsByMACD(Short,Long,M,type);
RestoreSystemParameters(oV);
return v;
CB_BalanceRatio()
1)当指定日不在在计息日与实际到期日之间,转债余额比例为nil; 2)当指定日在在计息日与实际到期日之间,返回转债余额比例。
返回:float
class()
策略回测框架。 提供天软策略回测框架、策略清算、策略绩效评价。用户只需: a)设置回测时的基本属性(成员变量) b)重载GetTimeSeries方法提供调仓周期 c)重载GetTradeOrder方法提供目标比例(比例类组合)或交易明细(数量类组合) d)调用BackTest方法进行回测 e)调用查询结果,获得资产配置、持仓、交易、绩效评价等常见评价类指标 详细说明及相关范例见专题,如下链接。
返回:any
FI_rt_To_DrawdownUnderwater(r)
高点回撤序列(%)
| 参数 | 类型 | 说明 |
|---|---|---|
r |
array | 数组,收益率(%),可为一维数字数组,或者用一列表示一个资产收益率(%)序列的二维数组 |
返回:array
frameCov_RBLW(data, alpha)
协方差RBLW压缩估计
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 二维数据表,T×N,T期样本数量,N个股票 |
alpha |
float | 实数,压缩系数,0到1,缺省时系统自动计算(推荐),计算方式见RBLW协方差压缩估计 |
返回:array
indexDataToShowable(index_table, base_value)
把计算存贮好的指数数据转换
| 参数 | 类型 | 说明 |
|---|---|---|
index_table |
array | 数据表,指数结果表,必须含有’Date’,’Close’字段 |
base_value |
float | 实数,基准值 |
返回:array
示例
SetSysParam(PN_Stock(),'SZ000002');
SetSysParam(PN_DATE(),IntToDate(20121026));
t:=Nday(20,'Date',sp_time(),'Close',close());
Return array('转换前':t,'转换后':IndexDataToShowable(t,1000));
kline(n1, n2, n3, n4)
K线;蜡烛线
| 参数 | 类型 | 说明 |
|---|---|---|
n1 |
int | 整数 |
n2 |
int | 整数 |
n3 |
int | 整数 |
n4 |
int | 整数 |
返回:Graph
示例
SetSysParam(pn_stock(),'SH000001');
SetSysParam(pn_date(),inttodate(20140123));
Return KLine(5,10,20,60);
MF_isMissValue(a, _type, zero_eps)
是否缺失值判断
| 参数 | 类型 | 说明 |
|---|---|---|
a |
float | 实数, 可以为数组或者标量 |
_type |
any | 整数, |
zero_eps |
float | 实数, 与0的差距范围,实数;默认 epsi() |
返回:array
MICD_f(n, n1, n2, _type)
异同离差动力指数,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
any | 整数,交易日天数 |
n1 |
any | 整数,交易日天数 |
n2 |
any | 整数,交易日天数 |
_type |
any | 结果类型 |
返回:array
OBVMa_v(n, m)
能量潮的M日移动平均,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
any | 整数,交易日天数 |
m |
any | 整数,交易日天数 |
返回:float
Options_SkewCal_Detail(option_arr, op_type)
多个期权Skew计算详情,与系统时间、周期相关,返回每个期权的隐含波动率、期权类型、Delta
| 参数 | 类型 | 说明 |
|---|---|---|
option_arr |
array | 多个期权代码,数组类型 |
op_type |
any | 期权类型,整型,取值如下 |
返回:array
pf_InverstmentRatio(wp, wb)
投资比例与超配。总表为wb左连接wp,超配比例=wp表’比例’字段-wb表’比例’字段,若不存在该字段则用0代替。
| 参数 | 类型 | 说明 |
|---|---|---|
wp |
array | 数据表类型,组合 |
wb |
array | 数据表类型,基准 |
返回:any
pf_Rachev(t, fname1, alpha, beta, rf)
Rachev比率。
| 参数 | 类型 | 说明 |
|---|---|---|
t |
array | 数据表类型 |
fname1 |
string | 字符串,列名 |
alpha |
float | 实数,盈利置信度 |
beta |
float | 实数,亏损的置信度 |
rf |
float | 实数,无风险收益率(%) |
返回:float
RCCD_f(n, n1, n2, _type)
异同离差变化率指数,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
any | 整数,交易日天数 |
n1 |
any | 整数,交易日天数 |
n2 |
any | 整数,交易日天数 |
_type |
any | 结果类型 |
返回:array
Schmidt_orth(data, if_std)
施密特正交化,对矩阵进行正交,区别于SymOrthogonal,不会改变第一列
| 参数 | 类型 | 说明 |
|---|---|---|
data |
array | 二维数字数组, 二维数组 行下标为数字或字符串的二维数组 |
if_std |
any | 用户自定义, 是否标准化 |
返回:array
ssByMtm(n, m)
MTM卖出条件选股,MTM的M日均线下穿(即跌破)0。与系统证券pn_stock()、系统时间pn_date()和系统周期pn_cycle()有关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
int | 整数,统计天数 |
m |
int | 整数,计算MTM均线的交易日长度 |
返回:bool
示例
oV:=BackUpSystemParameters();
setsysparam(pn_stock(),'SH600004');
setsysparam(pn_date(),inttodate(20110913));
setsysparam(pn_cycle(),cy_day());
N:=12;
M:=6;
v:=SsByMTM(N,M);
RestoreSystemParameters(oV);
return v;
Stocks_Assoc_Concept(stocksarr, endt, concept_bk_arr)
基于概念的股票关联网络
| 参数 | 类型 | 说明 |
|---|---|---|
stocksarr |
array | 一维数组类型,股票序列 |
endt |
datetime | 日期类型,截止日 |
concept_bk_arr |
array | 一维数组类型,概念板块代码序列,默认为全部板块 |
返回:array
VOSC_v(short, long)
成交量震荡,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
|---|---|---|
short |
any | 整数,短期交易日天数 |
long |
any | 整数,长期交易日天数 |
返回:float
getDateArr(begt, endt, days_interval, show_cycle, t)
获取时间序列。生成字段’计算指标开始日’,’持仓截止日’,其中’计算指标开始日’为begt到Endt的时间往前推一年,’持仓截止日’为begt到endt。
| 参数 | 类型 | 说明 |
|---|---|---|
begt |
TdateTIME | TdateTIME 开始日期 |
endt |
Tdatetime 截止日期 | |
days_interval |
integer | integer 指标开始计算日向前推移年份 |
show_cycle |
String | String 周期 |
t |
数据表类型,源数据 |
返回:any
示例
return getDateArr(20111230T,20120914T,1,'日线');
返回:
splitDiv(len, n)
网格参数划分,分不平均时,余数给最后一个网格
| 参数 | 类型 | 说明 |
|---|---|---|
len |
int | 整型,参数个数 |
n |
int | 整型,网格个数 |
返回:array
示例
return unit(multi_proc_unit).splitDiv(14,5); // array(0,2,4,6,8,14)
splitDiv2(len, n)
网格参数划分,分不平均时,前面M个网格加一
| 参数 | 类型 | 说明 |
|---|---|---|
len |
int | 整型,参数长度 |
n |
int | 整型,网格个数 |
返回:array
示例
return unit(multi_proc_unit).splitDiv2(14,5); // array(0,3,6,9,12,14)
splitArrayQk(arr)
数组等分区间,余数给最后一个网格
| 参数 | 类型 | 说明 |
|---|---|---|
arr |
array | 数组,要划分数组 |
返回:array
示例
arr := array(2,1,3,4,9,5,7,8,9,10,11,12,13,15);
return unit(multi_proc_unit).splitArrayQk(arr,5); //array((2,1),(3,4),(9,5),(7,8),(9,15))
splitArrayQk2(arr)
数组等分区间,分不平均时,前面M个网格加一
| 参数 | 类型 | 说明 |
|---|---|---|
arr |
array | 数组,要划分数组 |
返回:array
示例
arr := array(2,1,3,4,9,5,7,8,9,10,11,12,13,15);
return unit(multi_proc_unit).splitArrayQk2(arr,5);
// array((2,3),(4,5),(7,9),(10,12),(13,15))
addTitle(t, title)
增加表头。
| 参数 | 类型 | 说明 |
|---|---|---|
t |
array | 数据表类型,源数据 |
title |
String | 字符串,表头 |
返回:any
示例
return addTitle(``array('a':1),'b');
返回:
gridLogo(str, dir)
网格写日志,一个网格id一个文件
| 参数 | 类型 | 说明 |
|---|---|---|
str |
string | 字符串型,任务名称 |
dir |
string | 字符串型,日志文件路径 ,默认为:C:\temp\Gridlog |
返回:int
示例
//在C:\\temp\\Gridlog默认路径下写日志文件
return unit(multi_proc_unit).gridLogo('测试');
setToFirstValue(t1, t2)
归一处理,用于在计算复合指数时,在基准数据t2的基础上对t1归一化
| 参数 | 类型 | 说明 |
|---|---|---|
t1 |
TableArray | 数据表,必须含有’close’字段 |
t2 |
TableArray | 数据表,必须含有’close’字段 |
返回:TableArray
wacc(rf, rm, beta, kd, delta)
加权资本成本WACC(%)
| 参数 | 类型 | 说明 |
|---|---|---|
rf |
Real | 实数,无风险利率(%) |
rm |
Real | 实数,市场预期收益率(%) |
beta |
Real | 实数,β系数 |
kd |
Real | 实数,债务成本(%) |
delta |
Real | 实数,资产负债率(%) |
返回:Real
示例
return wacc(3.84,10.84,0.637,4.1,40); //结果:6.6194
getTrueRp(w)
计算资产组合的期望收益率,与自定义的系统变量’TZZHRiMatrix’有关,调用之前先设置该系统变量。并且w的长度必须跟该系统变量的值的长度一致
| 参数 | 类型 | 说明 |
|---|---|---|
w |
Array | 一位数字数组,投资品种比例 |
返回:TableArray
示例
a:=array(2,3,4,5,8);
setSysParam('TZZHRiMatrix',a);
w:=array(1,4,6,3,7);
return getTrueRp(w); //结果:5.19048
adjustSampleByAny(bk_name, beg_t, money, eval_exp, sort_dir, range_type, range_beg, range_end, percent_type, condition)
计算满足条件Condition的股票的EvalExp,选取值在RangeBeg跟RangeEnd之间,按照不同的RangeType类型选择股票,并分配资金
| 参数 | 类型 | 说明 |
|---|---|---|
bk_name |
Striong | 字符串,板块名称 |
beg_t |
TDateTime | 日期型时间,开始时间 |
money |
Real | 实数,初始资金 |
eval_exp |
Expression | 表达式 |
sort_dir |
Boolean | 真假,排序方向 |
range_type |
Integer | 整数,范围类型 |
range_beg |
Real | 实数,范围上限 |
range_end |
Real | 实数,范围下限 |
percent_type |
Integer | 整数,资金分配方法,用户自定义,含义如下表: |
condition |
Expression | 表达式,条件选择 |
返回:TableArray
示例
return adjustSampleByAny(
"深证A股",
intToDate(20120916),
500,
@close(),
false,
0,
7,
9,
0,
@true);
//结果:
needAdjustSampleByDays(beg_t, current_date, adjust_days)
判断起始日期BegT间隔相应天数AdjustDays是否在系统限定的当前日期CurrentDate内
| 参数 | 类型 | 说明 |
|---|---|---|
beg_t |
日期型时间,起始日期 | |
current_date |
日期型时间,当前时间 | |
adjust_days |
整数 |
返回:Boolean
示例
begt:=intToDate(20121018);
endt:=intToDate(20121026);
return needAdjustSampleByDays(begt,endt,9); //结果:0
encodePortfolioName(name, beg_t, end_t, method_type, yh_type, predict_yield, max_risk)
用于生成投资组合的结果保存的名称
| 参数 | 类型 | 说明 |
|---|---|---|
name |
String | 字符串,股票列表 |
beg_t |
TDateTime | 日期型时间,开始时间 |
end_t |
TDateTime | 日期型时间,结束时间 |
method_type |
Ingteger | 整数,0表示’Markowitz法’,1表示’单指数法’ |
yh_type |
Integer | 整数,0表示’收益,风险最小’,1表示’风险,收益最大’ |
predict_yield |
Real | 实数 |
max_risk |
Real | 实数 |
返回:String
示例
return encodePortfolioName(
"某股票",
intToDate(20120618),i
nttodate(20120919),0,0,0,0);
//结果:’某股票,从20120618到20120919,Markowitz法,限定收益为0求风险最小’
allBkYieldAndRisk(period, start_date)
所有板块Period期的预期收益和风险
| 参数 | 类型 | 说明 |
|---|---|---|
period |
Integer | 整数,做足period期 |
start_date |
TDateTime | 日期型时间,开始时间 |
返回:TableArray
示例
return allBkYieldAndRisk(20,intToDate(20120628));
//结果:
needAdjustSmaple(beg_t, current_date, adjust_month)
判断CurrentDate是否还在BegT往后推AdjustMonth*30的日期内
| 参数 | 类型 | 说明 |
|---|---|---|
beg_t |
TDateTime | 日期型时间,起始时间 |
current_date |
TDateTime | 日期型时间,当前时间 |
adjust_month |
Integer | 整数,往后推的月份数,月份间隔数 |
返回:TableArray
示例
return needAdjustSmaple(intToDate(20120618),intToDate(20120926),4);
//结果:0
emptyvalue()
返回受pn_emptymode控制的空值(实数)
返回:Real
riskFreeRateofReturnDayly(rf, cy, rate_type, days_in1y)
年化无风险收益率转换非年化收益率,与系统参数(股票,时间)相关。
| 参数 | 类型 | 说明 |
|---|---|---|
rf |
real | 实数,年化无风险收益率(%) |
cy |
String | 周期,非年化收益率周期 |
rate_type |
Integer | 用户自定义,年化收益率折算为非年化收益率方法 |
days_in1y |
Integer | 用户自定义 |
返回:real
示例
setSysParam(pn_stock(),'sz000001');
setSysParam(PN_Date(),20180801T);
return riskFreeRateofReturnDayly(3,cy_day(),'单利',250);
//返回:0.01
fastmap(grid_no, func, parms, parmstype)
调用网格执行func
| 参数 | 类型 | 说明 |
|---|---|---|
grid_no |
int | 整型,网格个数,表示另开的网格数,0表示只使用本地服务器 |
func |
string | 字符串型或函数指针,要调用网格计算的函数 |
parms |
array | 数组,func的参数列表 |
parmstype |
array | 数组,parms的对应类型 |
返回:array
gettablebyReg(reg)
通过正则表达式匹配名称,获取用户数据
| 参数 | 类型 | 说明 |
|---|---|---|
reg |
string | 字符串型,匹配的字符串 |
返回:array
示例
return unit(multi_proc_unit).gettablebyReg('test');
tryInsetTable(path, value)
添加用户数据,如果用户数据存在同名,则插入,否则新建
| 参数 | 类型 | 说明 |
|---|---|---|
path |
string | 字符串型,用户数据存储路径 |
value |
array | 数组,要存储的数据 |
返回:int
示例
return unit(multi_proc_unit).tryInsetTable('test',array(1,2,3));
getAllThemespools(end_t, details)
默认主题池:主题关键字及其对应的代表指数、成分股
| 参数 | 类型 | 说明 |
|---|---|---|
end_t |
Date | 日期, 截止日 |
details |
DBData | 数据表类型, 返回参数,包含主题详情信息 |
返回:array
示例
end_t := 20230919T;
return getAllThemespools(end_t);
fileterValue(v, w)
找出需要过滤处理的日期
| 参数 | 类型 | 说明 |
|---|---|---|
v |
TableArray | 数据表,必须含有’time’字段 |
w |
Array | 一维日期型时间数组 |
返回:TableArray
示例
v:=array(('s':0,'time':41201),('s':6,'time':41202),('s':2,'time':41203),('s':8,'time':41204),('s':2,'time':41207),('s':3,'time':41208));
w:=array(41101,41202,41205,41206,41207,41209);
fileterValue(v,w);
//结果: