长期使用此程序交易肯定亏不了钱,但也赚不了大钱。建议使用5分钟周期
//股指期货自动交易程序
//编制:zg611029 qq:2313936161
input:n(13,1,20,1);
//交易手数:
tn:=1;
r1:=barslast(day-ref(day,1)<>0);
r5:ref(o,r1);
r6:r5+n;
r7:r5-n;
if cross(h,r6) then
begin
buy(holding=0,tn,limitr,r6);
end
if cross(r7,l) then
begin
buyshort(holding=0,tn,limitr,r7);
end
if holding>0 and cross(r5,l) then
begin
sell(1,0,limitr,r5);
end
if holding<0 and cross(h,r5) then
begin
sellshort(1,0,limitr,r5);
end
//收盘前清仓
if time>=151400 then
begin
sellshort(holding<0,0,thisclose);
sell(holding>0,0,thisclose);
end
持仓:holding,colorwhite,linethick0;
交易总数:totaltrade,colorwhite,linethick0;
盈亏:asset-1000000,noaxis,colorred,linethick1;
以上代码用于测试,实际交易时要将h,l改为c即可。
实际交易时要将h,l改为c,
公式里还是有点问题,可以改成按周期5分钟收盘价买入,一手从10年4月至今如果不算滑点,可盈利40万左右,手续费开1%%,平1%% .
测试报告
测试品种: 股指连续
净利润: 389,467.75 净利润率: 38.95%
总盈利: 2,377,807.00 总亏损: -1,934,107.88
交易次数: 612次 胜率: 40.03%
年均交易次数: 335.91次 盈/亏次数: 245/367
多头交易次数: 279 空头交易次数: 333
多头盈利次数: 107 空头盈利次数: 138
多头胜率: 38.35% 空头胜率: 41.44%
多头盈亏比: 0.62 空头盈亏比: 0.71
最大单次盈利: 5.63%(57,078.59) 最大单次亏损:-2.06%(-17,002.73)
平均盈利: 9,705.33 平均亏损: -5,270.05
所有平均利润: 636.39 均盈利/均亏损: 1.84
最大连盈次数: 5 最大连亏次数: 8
最大连盈幅度: 7.16%(80,786.21) 最大连亏幅度:-4.19%(-45,214.34)
盈利交易平均周期: 31.86 亏损交易平均周期: 15.96
交易平均周期数: 22.32 盈利系数: -0.20
夏普率: 0.0746 MAR比率: 1.52%
最大浮动盈利: 6.31%(63,978.59) 最大浮动亏损: -1.57%(13,224.39)
最大回撤幅度:13.01%(143,462.25) 最大回撤时间:2010/06/29 10:45:00
初始投入: 1,000,000 最大投入: 1,077,660
年回报率: 19.79%(665天) 年有效回报率: 18.45%
简单买入持有回报: -26.57% 买入持有年回报率: -15.59%
总交易额: 3,615,770.75 交易费: 108,473.22
交易费/利润: 0.28 融资、券费用: .00
测试时间: 2010/04/16 -- 2012/02/11 共665天
测试周期数: 23813
平均仓位: 0.05% 最大仓位: 0.07%
平均持仓量: 1.00 最大持仓量: 1.00
无仓周期数: 10153 无仓周期比例: 0.43
最长无仓周期: 117 平均无仓周期: 17.1
测试时一定要使用h和l,不能使用c,否则和我的设计思想不符。
测试报告
测试品种数: 1
净利润: 680,105.13 净利润率: 340.05%
总盈利: 2,594,980.75 总亏损: -1,846,520.13
交易次数: 772次 胜率: 36.27%
年均交易次数:413.17(413.17/品种) 盈/亏次数: 280/492
多头交易次数: 360 空头交易次数: 412
多头盈利次数: 117 空头盈利次数: 163
多头胜率: 32.50% 空头胜率: 39.56%
多头盈亏比: 0.48 空头盈亏比: 0.65
最大单次盈利: 5.48%(55,578.52) 最大单次亏损:-2.34%(-23,681.32)
平均盈利: 9,267.79 平均亏损: -3,753.09
所有平均利润: 880.97 均盈利/均亏损: 2.47
最大连盈次数: 5 最大连亏次数: 10
最大连盈幅度: 27.80%(55,578.52) 最大连亏幅度:-7.15%(-25,543.80)
盈利交易平均周期: 30.76 亏损交易平均周期: 11.92
交易平均周期数: 18.75 盈利系数: -0.27
夏普率: 0.1166 MAR比率: 7.42%
最大浮动盈利: 6.33%(64,278.52) 最大浮动亏损:-3.95%(-40,001.37)
最大回撤幅度: 16.31%(89,800.13) 最大回撤时间: 16.31%(89,800.13)
初始投入: 200,000 最大投入: 1,078,560
年回报率: 121.00%(682天) 年有效回报率: 29.91%
简单买入持有回报: 0.00% 买入持有年回报率: 0.00%
总交易额: 4,557,835.50 交易费: 136,735.33
交易费/利润: 0.20 融资、券费用: .00
测试时间: 2010/04/01 -- 2012/02/12 共682天
测试周期数: 23813
平均仓位: 5.96% 最大仓位: 100.00%
平均持仓量: 1.00 最大持仓量: 1.00
无仓周期数: 9336 无仓周期比例: 0.39
最长无仓周期: 82 平均无仓周期: 12.3
---------------------买入信号统计(仅对ENTERLONG简单交易系统有效)-------------------
(统计所有买入信号点情况,不考虑交易测试中资金及策略造成的信号删除问题)
成功率: 0.00%
信号数量: 0 年均信号数量: 0.00
五日获利概率: 0.00% 十日获利概率: 0.00%
讨论1.
从结果来看,这个模型有一下几个问题:
1.收益不是太好------
2.回撤有点大,最大1手达到8.98万元。
3.盈利创新高的周期太长,这个问题在实盘交易时非常重要,长时间不能赚钱会影响你的心态,可能导致你不能坚持程序化交易。
4.这个交易策略非常明了直白:突破上轨做多,突破下轨做空,中轨之上不持空仓位,中轨之下不持多仓位,上下轨之间什么也不做----这个模型的特点。
为了改进2、3的问题,我们可以模型的特点对模型进行修改。
改进1 修改中轨的位置代码如下:
//股指期货自动交易程序
//编制:zg611029 qq:2313936161
input:n(13,1,20,1);
input:m(70,-200,200,1);
//交易手数:
tn:=1;
r1:=barslast(day-ref(day,1)<>0);
r5:ref(o,r1)+0.1*m;
r6:r5+n;
r7:r5-n;
if time>091500 and time<150000 then
begin
if cross(h,r6) then
begin
buy(holding=0,tn,limitr,r6);
end
if cross(r7,l) then
begin
buyshort(holding=0,tn,limitr,r7);
end
if holding>0 and cross(r5,l) then
begin
sell(1,0,limitr,r5);
end
if holding<0 and cross(h,r5) then
begin
sellshort(1,0,limitr,r5);
end
end
//收盘前清仓
if time>=151000 then
begin
sellshort(holding<0,0,thisclose);
sell(holding>0,0,thisclose);
end
持仓:holding,colorwhite,linethick0;
交易总数:totaltrade,colorwhite,linethick0;
盈亏:asset-1000000,noaxis,colorred,linethick1;
大家可以自己去测试,创新高的周期大为缩短,回撤降到了6.5万左右。
这里牵扯到一个优化的问题,很多人不喜欢,我也不太喜欢,只是告诉新手一个思路。大家可以用某曲线来代替中轴,也可以用其他形态的线代上轨和下轨。根据这个模型的思路你可以做出几十中模型出来,结果如何就看各位同学的水平了。
比如在 某5分钟周期中,先突破H或L,再返回到中轨,按照你的策略,这样在实盘中就有开仓和止损的过程,
但在历史测试中看不到这个过程.所以严格测试的话,更好的是周期K线走完,再加周期收盘价(+滑点)来测试.
只能说明楼上,对价格固定轮询,高频这个勾不清楚
轮询有信号闪烁的问题啊?
仔细看了一下,在周期中波动一次是可以开和止损的,但如果波动多次就看不出来了.
而且查看其中交易中损失最大的两次,有2万的损失.按说应该是4000左右.
从这两次意外的损失就可看出些问题.
原因出在用H, L 值 进行比较是有漏洞的,因为H L值 是不连续的.
所以,实盘中用使用固定轮询和高频扫描出来的结果和测试的结果应该差别不小,但是趋好还是趋坏就不清楚了.