下载信息 [文件大小: 下载次数: ] | |
![]() |
下载信息 [文件大小: 下载次数: ] | |
![]() |
从国庆节到现在终于找出原因:
1. 模拟账户和图表持仓严重不同步,HOLDING为k线走完、下一个k线开始才变化,而模拟账户一有成交就变化,自动持仓同步也是等下一个k线开始才比较同步不同步,这样就造成如上图所示不断开仓平仓,比交易信号多出许多无用的开平仓,改用k线走完模式同样如此。这样带来的严重后果是什么?如上图26号模拟交易,图表信号为盈利396元,而 模拟账户亏损180元,按交易所手续费就为485元,合计为亏损665元,交易所手续费为2.5元,期货公司为4元,图表交易已扣除手续费,从测试到现在如按图表信号盈利早超万元,可 模拟账户却亏损将近5000元,模拟账号为803195,这还是拿1手豆泊作模拟,那实盘交易、更大规模交易的后果就非常可怕了,看着白花花的银子每天这样流走不只是心疼,而是心碎啊!因此强烈建议吧HOLDING改为图表一成交就变化,以保持和账户严格同步!
2.图表信号和交易信号严重不同步,如上图所示,同时把交易日记附上,还望仔细分析帮助查找原因。
3.图表交易如何控制总持仓问题。在此想了各种办法,从软件介绍、塔友提供及阿火方法等都不行,因此我想是不是把模拟账户的资金让用户自己设置呢?这样就像手工操作一样用资金来控制持仓量?
以上先提出这几点,不知对否,并希望能提交给开发人员共同研究,以便共同找出合理的解决办法。
谢谢!
1、比交易信号多出许多无用的开平仓,改用k线走完模式同样如此、
金字塔默认一根K线只能开多、开空、平多、平空1次 不明白你所谓的无用的开平是什么意思。
holding的变化根据上面的原则并不会影响。若影响了你的策略造成未知的反复开平,还请公布代码来处理。
若是固定轮询造成的信号闪烁,这个问题在任何同类软件上都会遇到,需要用户自己考虑与取舍。
相关帖子http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=5224
2、holding本来就是虚拟持仓。 你要的真实持仓同步在后台才可以。
2者机制的区别http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=29594
3、公式编辑界面,费率设置,本来就是用户自己可以设置的
首先感谢这么快就回复!说明金字塔还是很负责的。
1.无用的开平仓指的是:没有按模型发出的信号而多出的开平仓,如图上开多、开空、平多、平空为模型发出的信号,其它都是多出无用的;另外这些多出的开平仓并不是指在同一个k线上,而是指在其它k线上发生的开平仓,但是模型并没有发出信号。
我跟踪了很长时间holding的变化规律,它不论是在固定轮询、还是在k线走完模式,都是在交易完成后的下一个k线才发生变化,而账户的仓位在交易一发生就变化这样就造成了在holding变化前两个发生矛盾,不同步,我估计就是由他引起的无用开平仓,因此强烈建议把HOLDING改为图表一成交就变化,以保持和账户严格同步!因为它造成的影响实在太大了。
2.我知道holding是虚拟持仓,如你们把它定义成一交易成功马上发生变化,我想我的问题就可以解决。
3.我就是在公式编辑界面设置的费率和资金,它只对测试起作用,对模拟账号没用,可我们模拟交易是以模拟账户为准的呀!因此才建议把模拟账户的资金让用户自己设置,行吗?
如果不是由于holding的不同步引起的,哪麻烦帮助分析一下是什么原因造成这么大差距呢?
谢谢!
VarIABLE: kd=0, kk=0 ;
收益:asset,noaxis,colorred ;
可用现金:CASH(0),LINETHICK0;
持仓:HOLDING,LINETHICK0;
entertime:= TIME<=145900 AND TIME>=090100 ;
if 平空 and kk=1 and enterbars > 0 AND entertime then begin
sellShort ( holding < 0 ,0 , limitr, o);
if holding = 0 then
kk:=0;
end
if 开多 and kd=0 and entertime then begin
Buy ( holding= 0 , 1- holding, limitr, o) ;
if holding =1 then
kd:=1;
end
if 平多 and kd=1 AND entertime and enterbars > 0 then begin
sell ( holding > 0 , 0 , limitr, o) ;
if holding = 0 then
kd:=0;
end
if 开空 and kk=0 and entertime then begin
buyshort(holding = 0 , 1+holding , limitr, o) ;
if holding =-1 then
kk:=1;
end
if TIME >= 145900 and TIME < 150000 then //收盘前1分钟平仓
begin
sell(1, 0, market );
sellshort(1, 0, market);
end
以上为公式代码,麻烦你们测试一下,另外我没有变动k线图,公式没有未来函数,信号也没有消失,它只是在没有信号的k线上出现无用的开平仓,最关键是图表持仓和模拟账户持仓不同步甚至反向,麻烦你们测试一下。