|
在以往编写模型过程中,排序是个非常另大家困扰的问题。
笨办法就是用跨周期引用,比大小。但是涉及到的品种很多的话,代码就很长,需要大量的跨周期引用。
做测试的时候,这种方法可行,但是在实际操作层面效率就太差了。
金字塔对应这种情况,基于后台程序化平台开发了Tinsort这个函数。
tinsort函数将得到该品种在此板块的排序序列
用法:
TINSORT(BLOCK,LINENAME,O),BLOCK为板块名字,LINENAME为指标及指标线,O排序类别0升序 1降序。
例如:
TINSORT('上海','KDJ.J',0); 取该品种在上海板块中的KDJ指标按指标线J排序的升序序列,使用默认指标参数。
TINSORT('上海','KDJ.J(9,3,3)',1)取该品种在上海板块中的KDJ指标按指标线J排序的降序序列,使用指定指标参数
举例:
状况:自建板块A1中有5个品种,开盘后的K值由大到小排序为CU,RU,M,CF,SR,
策略:交易的品种为CU, 当CU的K值为板块中第一且无持仓时下单。
K1:TINSORT('A1','KDJ.K',1)
//因为1是按降序排列。cu排在第一位则k1=1,cu排第二位则K1=2,CU排在末尾自然K1=5。大家可以通过debugout输出进行检验。
tbuy(k1=1 and tholding=0,1,lmt,c)
使用非常便捷吧,这样2句话就解决了以往非常繁复的代码。
但要注意:此函数虽然便捷,但计算量巨大,注意效率。个人建议,自建板块,仅在自己交易的品种中运行。(至少也是主力合约板块吧,否则那么多非主力合约也是时时参与计算,太2)。 |
|