在以往编写模型过程中,排序是个非常另大家困扰的问题。
笨办法就是用跨周期引用,比大小。但是涉及到的品种很多的话,代码就很长,需要大量的跨周期引用。
做测试的时候,这种方法可行,但是在实际操作层面效率就太差了。
金字塔对应这种情况,基于后台程序化平台开发了Tinsort这个函数。
tinsort函数将得到该品种在此板块的排序序列
举例:
状况:自建板块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)。
K1:TINSORT('A1','KDJ.K',1)
tbuy(k1=1 and tholding=0,1,lmt,c)
在这个例子中K1=1 既代表是降序排名第一位,就是满足的条件啊
没人回答吗?呼唤金字塔客服
没有发现insort函数,能不能加上?
测试用跨周期+循环
如何解决2个条件同时满足然后开仓的?
例如'KDJ.K'排名前3位的品种:A,B,C
然后涨幅排名前3位的品种:C,D,E
最后C同时满足2个条件,C下单开多仓。