以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  [原创]固定1手和百分比1%~100%开仓模块源码  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=5207)

--  作者:j888fff
--  发布时间:2011/2/18 19:29:26
--  [原创]固定1手和百分比1%~100%开仓模块源码

在公式评测过程中,固定1手开仓测试和百分比开仓测试都不可或缺。

目前要在这两者间切换,需要打开公式重新编辑1或90%,较为麻烦。

经实地检验,通过以参数模块方法完美实现固定1手和百分比1%~100%开仓手工自由切换。

测试品种:期指(应可支持商品,请自行改写)

测试函数:新交易函数(略微改动可支持后台和真实账户)

测试模式:图表(略微改动可支持后台和真实账户)和策略测试平台(入场规则请选择全部资金投入,模型可自动换算为百分比例资金)均可完美支持。

使用方式:参数ZJ。0~100。选择为0,此时为固定1手测试模式,选择为1~100,为百分比测试模式,即为1%~100%可调。

优点:两种开仓方式间切换方便;已考虑手续费等影响,比系统原有百分比开仓模式在开仓手数计算数值上,更为精确;asset改为taccount(19)可支持真实账户。

 

 

 

input:zj(90,0,100,1) ;

开仓手数:=(asset*0.01*zj)/(c*300*0.18+c*300*0.000055) ; //保证金和手续费比例
aa:=ma(c,5) ;
bb:=ma(c,10) ;
dc:=cross(aa,bb) ;
kc:=cross(bb,aa) ;
//平多
sell( kc and holding>0  ,0 , LIMITR , close ) ,ORDERQUEUE ;
//平空
sellshort( dc and holding<0 , 0 , LIMITR , close ) ,ORDERQUEUE ;
//开多
buy(dc and holding=0 , if(zj=0,1,if(开仓手数<1,0.01,INTPART(开仓手数))) , LIMITR , close ) ,ORDERQUEUE ; 
//开空
buyshort(kc and holding=0  , if(zj=0,1,if(开仓手数<1,0.01,INTPART(开仓手数))) , LIMITR , close ) ,ORDERQUEUE ; 
20W固定1手累计盈利: asset  , linethick2 , noaxis , colorred ;
持仓:HOLDING,LINETHICK0 ;
交易次数:TOTALTRADE ;
ll:= ROUNDS(PERCENTWIN,4)*100 ;
DRAWTEXTEX(1,0,200,0,\'胜率:\') ;
DRAWTEXTEX(1,0,230,0,NUMTOSTR(ll,2)&\'%\') ;
fl:= asset  ;
DRAWTEXTEX(1,0,330,0,\'20W固定1手累计盈利:\') ;
DRAWTEXTEX(1,0,460,0,NUMTOSTR(fl,0)&\'¥\') ;

[此贴子已经被作者于2011-2-18 19:46:42编辑过]

--  作者:z7c9
--  发布时间:2011/2/18 19:33:09
--  
图片点击可在新窗口打开查看,收真钱呀
--  作者:j888fff
--  发布时间:2011/2/18 19:37:08
--  

哈哈,按错了,我编辑下,改掉


--  作者:wd369
--  发布时间:2012/2/9 13:48:46
--  

里面的0.01 应该是 1 吧

//开多
buy(dc and holding=0 , if(zj=0,1,if(开仓手数<1,0.01,INTPART(开仓手数))) , LIMITR , close ) ,ORDERQUEUE ; 


--  作者:akasha3322
--  发布时间:2013/3/27 19:57:36
--  
谢谢分享
--  作者:pierpont
--  发布时间:2013/4/11 19:42:38
--  
这个是什么意思能解释下吗? c*300*0.18+c*300*0.000055

为什么要除这个?

多谢 ~

--  作者:pierpont
--  发布时间:2013/4/17 11:07:58
--  
懂了,一手是300点,c代表当前指数