以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  金字塔关于模型中“排序”问题的解决方案  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=25476)

--  作者:RogarZ
--  发布时间:2012/9/13 21:35:30
--  金字塔关于模型中“排序”问题的解决方案

在以往编写模型过程中,排序是个非常另大家困扰的问题。

笨办法就是用跨周期引用,比大小。但是涉及到的品种很多的话,代码就很长,需要大量的跨周期引用。

做测试的时候,这种方法可行,但是在实际操作层面效率就太差了。

金字塔对应这种情况,基于后台程序化平台开发了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)。

[此贴子已经被作者于2012-9-13 21:37:28编辑过]

--  作者:ljwgbb
--  发布时间:2012/9/15 15:57:16
--  
图片点击可在新窗口打开查看非常强大实用,支持
--  作者:D
--  发布时间:2012/9/18 9:52:11
--  
若是谁的k值最大然后交易谁,这个如何能做到呢?
--  作者:RogarZ
--  发布时间:2012/9/18 10:32:15
--  

K1:TINSORT(\'A1\',\'KDJ.K\',1)

tbuy(k1=1 and tholding=0,1,lmt,c)


在这个例子中K1=1 既代表是降序排名第一位,就是满足的条件啊


--  作者:自下而上
--  发布时间:2012/9/24 21:28:22
--  
TINSORT只能用在后台吗?如果我想进行测评或优化怎么用?
--  作者:yanxc
--  发布时间:2012/9/25 19:51:51
--  
好东西
--  作者:自下而上
--  发布时间:2012/10/10 11:32:19
--  
以下是引用自下而上在2012-9-24 21:28:22的发言:
TINSORT只能用在后台吗?如果我想进行测评或优化怎么用?

没人回答吗?呼唤金字塔客服


--  作者:自下而上
--  发布时间:2012/10/10 11:35:21
--  

没有发现insort函数,能不能加上?


--  作者:RogarZ
--  发布时间:2012/10/10 20:42:27
--  
以下是引用自下而上在2012-9-24 21:28:22的发言:
TINSORT只能用在后台吗?如果我想进行测评或优化怎么用?

测试用跨周期+循环


--  作者:D
--  发布时间:2012/10/17 16:13:55
--  

如何解决2个条件同时满足然后开仓的?

例如\'KDJ.K\'排名前3位的品种:A,B,C

然后涨幅排名前3位的品种:C,D,E

最后C同时满足2个条件,C下单开多仓。