Bundle the TSL API index and markdown references under the skill, route TSL docs to use it, and update the codegen index generator to maintain the bundled data.
20 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;
cbBalanceRatio()
1)当指定日不在在计息日与实际到期日之间,转债余额比例为nil; 2)当指定日在在计息日与实际到期日之间,返回转债余额比例。
返回:float
class()
策略回测框架。 提供天软策略回测框架、策略清算、策略绩效评价。用户只需: a)设置回测时的基本属性(成员变量) b)重载GetTimeSeries方法提供调仓周期 c)重载GetTradeOrder方法提供目标比例(比例类组合)或交易明细(数量类组合) d)调用BackTest方法进行回测 e)调用查询结果,获得资产配置、持仓、交易、绩效评价等常见评价类指标 详细说明及相关范例见专题,如下链接。
返回:any
fiRtToDrawdownUnderwater(r)
高点回撤序列(%)
| 参数 | 类型 | 说明 |
|---|---|---|
r |
array | 数组,收益率(%),可为一维数字数组,或者用一列表示一个资产收益率(%)序列的二维数组 |
返回:array
frameCovRblw(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);
mfIsMissValue(a, _type, zero_eps)
是否缺失值判断
| 参数 | 类型 | 说明 |
|---|---|---|
a |
float | 实数, 可以为数组或者标量 |
_type |
any | 整数, |
zero_eps |
float | 实数, 与0的差距范围,实数;默认 epsi() |
返回:array
micdF(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
obvMaV(n, m)
能量潮的M日移动平均,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
|---|---|---|
n |
any | 整数,交易日天数 |
m |
any | 整数,交易日天数 |
返回:float
optionsSkewCalDetail(option_arr, op_type)
多个期权Skew计算详情,与系统时间、周期相关,返回每个期权的隐含波动率、期权类型、Delta
| 参数 | 类型 | 说明 |
|---|---|---|
option_arr |
array | 多个期权代码,数组类型 |
op_type |
any | 期权类型,整型,取值如下 |
返回:array
pfInverstmentRatio(wp, wb)
投资比例与超配。总表为wb左连接wp,超配比例=wp表’比例’字段-wb表’比例’字段,若不存在该字段则用0代替。
| 参数 | 类型 | 说明 |
|---|---|---|
wp |
array | 数据表类型,组合 |
wb |
array | 数据表类型,基准 |
返回:any
pfRachev(t, fname1, alpha, beta, rf)
Rachev比率。
| 参数 | 类型 | 说明 |
|---|---|---|
t |
array | 数据表类型 |
fname1 |
string | 字符串,列名 |
alpha |
float | 实数,盈利置信度 |
beta |
float | 实数,亏损的置信度 |
rf |
float | 实数,无风险收益率(%) |
返回:float
rccdF(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
schmidtOrth(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;
stocksAssocConcept(stocksarr, endt, concept_bk_arr)
基于概念的股票关联网络
| 参数 | 类型 | 说明 |
|---|---|---|
stocksarr |
array | 一维数组类型,股票序列 |
endt |
datetime | 日期类型,截止日 |
concept_bk_arr |
array | 一维数组类型,概念板块代码序列,默认为全部板块 |
返回:array
voscV(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);
//结果: