欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → 金字塔关于模型中“排序”问题的解决方案

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有32022人关注过本帖树形打印复制链接

主题:金字塔关于模型中“排序”问题的解决方案

帅哥哟,离线,有人找我吗?
RogarZ
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
金字塔关于模型中“排序”问题的解决方案  发帖心情 Post By: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编辑过]


金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2012/9/18 10:32:15 [显示全部帖子]

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

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


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



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2012/10/10 20:42:27 [显示全部帖子]

以下是引用自下而上在2012-9-24 21:28:22的发言:
TINSORT只能用在后台吗?如果我想进行测评或优化怎么用?

测试用跨周期+循环



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2012/10/17 22:23:06 [显示全部帖子]

K1:TINSORT('A1','KDJ.K',1)
K2:TINSORT('a1',涨幅,1)

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

代码上,写2个呗。
实际情况,因模型的复杂程度不同,还请测试


金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2012/11/8 16:22:18 [显示全部帖子]

举例:

状况:自建板块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)

 

 

 

 

还是看例子   你最大的是K=1 最小的不就是K1=5。有啥问题?



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2012/11/16 21:01:18 [显示全部帖子]

后台不能测试,测试完全可以靠stkindi跨周期引用解决。这个是为了解决实际下单效率问题的



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
RogarZ
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2013/4/10 15:06:07 [显示全部帖子]

以下是引用ljwgbb在2013-4-10 15:02:27的发言:

请教:我想交易自定义板块中排在第一的品种,如何实现呢?

 

 

原帖:

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,)

你监控这5个品种就行了  同时只有一个品种的 k1=1



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部