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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → [原创]公布一个可以实用的自动交易程序

   

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


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

主题:[原创]公布一个可以实用的自动交易程序

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


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
[原创]公布一个可以实用的自动交易程序  发帖心情 Post By:2012/2/12 14:46:07 [显示全部帖子]

长期使用此程序交易肯定亏不了钱,但也赚不了大钱。建议使用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即可。


 


版主评定:好评,获得3个金币奖励好评,获得3个金币奖励
(理由:好文章)
 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/12 15:35:41 [显示全部帖子]

一手从10年4月至今可盈利68万手续费开1%%,平1%%

 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/13 1:35:54 [显示全部帖子]

   测试时一定要使用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%


 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/13 1:41:30 [显示全部帖子]

实际交易要使用固定轮询和高频扫描,不能使用一根k线走完。三楼的大侠能说一下有什么问题吗?
[此贴子已经被作者于2012-2-13 1:46:11编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/13 9:30:52 [显示全部帖子]

讨论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万左右。

这里牵扯到一个优化的问题,很多人不喜欢,我也不太喜欢,只是告诉新手一个思路。大家可以用某曲线来代替中轴,也可以用其他形态的线代上轨和下轨。根据这个模型的思路你可以做出几十中模型出来,结果如何就看各位同学的水平了。

[此贴子已经被作者于2012-2-13 9:34:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/14 9:51:43 [显示全部帖子]

以下是引用wd369在2012-2-13 19:00:03的发言:

仔细看了一下,在周期中波动一次是可以开和止损的,但如果波动多次就看不出来了.

而且查看其中交易中损失最大的两次,有2万的损失.按说应该是4000左右.

从这两次意外的损失就可看出些问题.

原因出在用H, L 值 进行比较是有漏洞的,因为H L值 是不连续的.

 

 所以,实盘中用使用固定轮询和高频扫描出来的结果和测试的结果应该差别不小,但是趋好还是趋坏就不清楚了.

[此贴子已经被作者于2012-2-13 19:02:02编辑过]

在讨论收益时,你不能修改我的策略的核心思想,否则就是讨论你自己的策略收益!这个策略的核心思想是:碰上轨就开多仓(持仓=0时)碰下轨开空仓(持仓=0)如果你在测试时将H/L改为C能满足我的策略的要求吗?测试时用H/L表示价格是否触摸到上下轨。如果你怕在一个周期里来回刷,你可以用1分钟周期。甚至是秒周期,对这个策略来说收益都是一样的。至于滑点漏单等那是下一个面(操作层面)的问题。

 


 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/14 11:26:15 [显示全部帖子]

讨论二

止损止盈

(不是我好为人师,实在实闲的无聊,交易程序在自动执行,我只要监测一下就行了,只好在这里打打情,骂骂俏。高手看了哈哈一笑就行了,新手看了多少还是有帮助的,程序代码编写时没有使用什么技巧,尽管运行效率可能不高,但很直观,问题只要不是太幼稚,我都会回答,欢迎大家讨论)

在这个策略中止损等于已经有了,不管持有什么仓位,只要价格一触及中轨就会平仓。所以额外的止损就不需要了。那么需要止赢吗,我认为不需要。在赚钱时我们要吃光喝尽。亏钱时控制在一定的范围内。如果大家看到本来赚了很多,可是一会又回来了,很心痛,我们可以加一个回撤止赢。可以按回撤百分比也可以按具体的点数。代码如下:


 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/14 11:44:56 [显示全部帖子]

//股指期货自动交易程序
//编制:zg611029 qq:2313936161

//上下轨和中轨的距离

input:n(13,1,20,1);

//中轴偏移值

input:m(70,-200,200,1);

//回撤止赢点数

input:m1(24,5,30,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

//回撤止赢

r10:=enterbars;

r11:=llv(l,r10+1);

r12:=hhv(h,r10+1);

if time>091500 and time<150000 then

begin

if holding>0 and r12-c>m1 and r10>=1 then

begin

sell(1,0,thisclose);

end

if holding<0 and c-r11>m1 and r10>=1 then

begin

sellshort(1,0,thisclose);

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;

 

 

 

注意 13 70 24 都是优化的结果。


 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/14 12:16:41 [显示全部帖子]

以下是引用wd369在2012-2-14 11:04:53的发言:

我只是说下建议,个人认为用收盘价C来测试更好些. 要不你的策略的历史测试和实盘结果就相差太大了.

因为把H L 用在CROSS中判断是有问题的.

 

 

没什么,大家只是讨论着玩,消磨下时间,C在实时行情中不仅仅是收盘价,更重要的是最新价,测试是对过去完成的事情,所以这里的C只有收盘价的概念。测试时把H L 用在CROSS中判断只是确定在这根k线中曾经的价格是否碰到过上下轨。所以在实盘时要把HL改用C,如果不考虑滑点的话,测试结果和实盘时没有区别的,你把实时的“C”和收盘价的“C”混为一谈了。


 回到顶部
帅哥哟,离线,有人找我吗?
zg611029
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:262 积分:2802 威望:0 精华:0 注册:2011/11/17 19:20:51
  发帖心情 Post By:2012/2/14 14:22:28 [显示全部帖子]

不好意思代码我也没有运行过,刚才去测试了一下,发现了一个BUG,我改过来了,最高收益可以达到82万/手,年收益率在140%左右,完全可以用于实战。

参数N可以用来改变交易次数,自己可以取一个合理的值就行了。M和M1也无关紧要,只要取一个合理的值,就不会改变模型的性质。代码如下:

 

 

 

//股指期货自动交易程序
//编制:zg611029 qq:2313936161

//上下轨和中轨的距离

input:n(13,1,20,1);

//中轴偏移值

input:m(70,-200,200,1);

//回撤止赢点数

input:m1(24,5,30,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 r1=0 and holding=0 then
begin
buy(h>r6,tn,limitr,r6);
buyshort(l<r7,tn,limitr,r7);
end

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

//回撤止赢

r10:=enterbars;

r11:=llv(l,r10+1);

r12:=hhv(h,r10+1);
if time>091500 and time<150000 then
begin
if holding>0 and r12-c>m1 and r10>=1 then

begin

sell(1,0,thisclose);

end

if holding<0 and c-r11>m1 and r10>=1 then

begin

sellshort(1,0,thisclose);

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


 回到顶部
总数 31 1 2 3 4 下一页