Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共7 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[原创]固定1手和百分比1%~100%开仓模块源码

1楼
j888fff 发表于:2011/2/18 19:29:26

在公式评测过程中,固定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编辑过]
2楼
z7c9 发表于:2011/2/18 19:33:09
图片点击可在新窗口打开查看,收真钱呀
3楼
j888fff 发表于:2011/2/18 19:37:08

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

4楼
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 ; 

5楼
akasha3322 发表于:2013/3/27 19:57:36
谢谢分享
6楼
pierpont 发表于:2013/4/11 19:42:38
这个是什么意思能解释下吗? c*300*0.18+c*300*0.000055

为什么要除这个?

多谢 ~
7楼
pierpont 发表于:2013/4/17 11:07:58
懂了,一手是300点,c代表当前指数
共7 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03400 s, 2 queries.