设为首页收藏本站

 找回密码
 注册
查看: 13818|回复: 22
打印 上一主题 下一主题

关于止盈连续加仓设置对交易系统的优化 [复制链接]

Rank: 4

精华
0
UID
112550
积分
263
帖子
89
主题
14
阅读权限
50
注册时间
2012-9-17
最后登录
2022-1-19
跳转到指定楼层
1#
发表于 2013-10-18 16:38:55 |只看该作者 |倒序浏览
本帖最后由 ST振翔 于 2013-11-8 17:05 编辑

以做多为例,止赢设置TakeProfitSet(N),止损设置StopLossSet(M),开仓后,每达到止盈位一次就加仓一手,同时止盈位按新入场价位自动上调,止损位也上调N点,若达到止损位则全部平仓。
加仓次数为X+Y,X取决于当前的盈利资金量(每盈利10000元X增加1,IntPart((NetProfit()+10000)/10000);),Y为手动设置的值(一般为1-15左右)

以下以本人一个RB的5分钟交易系统为例,进行说明:

未做止盈连续加仓设置的系统(止盈27 止损63),交易结果:



做过止盈连续加仓设置的系统(止盈27 止损63),交易结果:



可见交易效率明显提高。但弊端是对资金量要求比较高,存在一定的风险。

如果将止盈止损差值调的大一点(止盈15 止损200),盈亏比更有显著的提升:




这里用一个很简单的交易系统说明,收盘价高于20个BAR之前的收盘价做多,反之做空,代码如下:
  1. Params
  2. Numeric TakeProfitSet(15);  
  3. Numeric StopLossSet(200);  
  4. Numeric Length(20);
  5. Numeric Y(5);

  6. Vars
  7.     Numeric n;
  8.     NumericSeries MyEntryPrice;
  9.     Numeric MinPoint;
  10.     Numeric MyExitPrice;
  11.     Numeric Lots(1);
  12.     Numeric X;
  13.         
  14. Begin
  15.     MinPoint = MinMove*PriceScale;
  16.     X =IntPart((NetProfit()+10000)/10000);

  17. If(MarketPosition==0)
  18. {
  19.      If(Close[1]<Close[Length])
  20.      {
  21.        MyEntryPrice=Open;
  22.        SellShort(Lots,MyEntryPrice);
  23.    }
  24.      Else If(Close[1]>Close[Length])
  25.   {
  26.        MyEntryPrice=Open;
  27.        Buy(Lots,Open);
  28.    }
  29. }

  30. If(MarketPosition==-1 )
  31. {
  32.    if(High >= MyEntryPrice + StopLossSet*MinPoint)
  33.         {
  34.             MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
  35.             If(Open > MyExitPrice) MyExitPrice = Open;     
  36.             BuyToCover(0,MyExitPrice);
  37.         }
  38.    Else If(l[1]<= MyEntryPrice - TakeProfitSet*MinPoint)   
  39.         {
  40.       if(Close[1]<Close[Length]  && CurrentEntries<X+Y)  
  41.    {
  42.      MyEntryPrice=Open;
  43.          SellShort(Lots,MyEntryPrice);
  44.    }
  45.    Else
  46.    {
  47.             MyExitPrice = Open;      
  48.             BuyToCover(0,MyExitPrice);
  49.    }
  50.         }
  51. }  
  52.    
  53. If(MarketPosition==1)  
  54. {
  55.    if(Low <= MyEntryPrice - StopLossSet*MinPoint)
  56.         {
  57.             MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
  58.             If(Open < MyExitPrice) MyExitPrice = Open;      
  59.             Sell(0,MyExitPrice);
  60.         }
  61.    Else If(h[1]>= MyEntryPrice + TakeProfitSet*MinPoint)   
  62.       {      
  63.        if(Close[1]>Close[Length] && CurrentEntries<X+Y)  
  64.        {
  65.        MyEntryPrice=Open;
  66.        Buy(Lots,MyEntryPrice);
  67.        }
  68.        Else
  69.        {
  70.             MyExitPrice = Open;
  71.             Sell(0,MyExitPrice);
  72.             }
  73.    }
  74. }   
  75.         

  76. End
复制代码
收益如图:



结果告诉我们,不需要什么神奇的指标,也不需要什么不可透露的方法,只要资金管理适当,钱够多,人够傻,就能获利。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 4

精华
0
UID
112550
积分
263
帖子
89
主题
14
阅读权限
50
注册时间
2012-9-17
最后登录
2022-1-19
2#
发表于 2013-11-8 17:11:56 |只看该作者
没人回复?自己顶一下~

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
12330
积分
838
帖子
254
主题
15
阅读权限
60
注册时间
2010-6-16
最后登录
2017-4-25
3#
发表于 2013-11-8 18:32:19 |只看该作者
我测试的结果怎么和楼主测试的不一样呢

使用道具 举报

Rank: 4

精华
0
UID
112550
积分
263
帖子
89
主题
14
阅读权限
50
注册时间
2012-9-17
最后登录
2022-1-19
4#
发表于 2013-11-8 19:54:38 |只看该作者
趋势跟踪 发表于 2013-11-8 18:32
我测试的结果怎么和楼主测试的不一样呢


连续建仓开了吗?
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 1

精华
0
UID
106612
积分
27
帖子
6
主题
1
阅读权限
10
注册时间
2012-3-24
最后登录
2013-12-20
5#
发表于 2013-11-11 14:03:42 |只看该作者
非常好,思路对了。钱就不是问题了。

使用道具 举报

Rank: 1

精华
0
UID
128312
积分
22
帖子
13
主题
1
阅读权限
10
注册时间
2013-6-14
最后登录
2015-5-13
6#
发表于 2013-11-11 18:47:41 |只看该作者
恩,止盈和止损这两个点数楼主做过优化么?如果没有做过优化还是挺不错的。
盈利加仓的缺点就是增加了风险暴露,lz的系统是每获得一定盈利就固定增加一定的手数,同时当前所有持仓合约止损的空间还是一样大,那么随着加仓的进行可能一次损失的量会远远超过最开始设定的止损了。也就是说在做这次交易之前,并不知道最后可能会亏损多少。

使用道具 举报

Rank: 4

精华
0
UID
112550
积分
263
帖子
89
主题
14
阅读权限
50
注册时间
2012-9-17
最后登录
2022-1-19
7#
发表于 2013-11-11 20:05:00 |只看该作者
darknesszeal 发表于 2013-11-11 18:47
恩,止盈和止损这两个点数楼主做过优化么?如果没有做过优化还是挺不错的。
盈利加仓的缺点就是增加了风险 ...

止盈止损位有过优化,每个品种略有不同,这里只是举例。
每获得一定盈利就固定增加一定的手数,但当前所有持仓合约止损的空间不是一样大。止损位是移动的,设止盈20,止损200,第一手时止损200,加仓到第二手时就止损位移到180,两手平均190,加仓到第三手时,三手平均止损(160+180+200)/3=180

使用道具 举报

Rank: 1

精华
0
UID
128312
积分
22
帖子
13
主题
1
阅读权限
10
注册时间
2013-6-14
最后登录
2015-5-13
8#
发表于 2013-11-11 21:14:18 |只看该作者
恩,我明白你的意思,我意思是在交易结束之前你不知道自己会加仓加到多少手。
一手的时候你可能的最大损失是200点
两手的时候是190 * 2 =380
n手的时候是(200+1/2*n^2 + 10n),n这个数字如果在你交易之前是没确定,那么不知道最坏的情况下你的回撤会到多少。
当然如果你交易前限定了n的合理范围,那么这个数值的最大值就能确定了。我个人比较喜欢能在交易前确定自己最多会回吐多少。

使用道具 举报

Rank: 4

精华
0
UID
112550
积分
263
帖子
89
主题
14
阅读权限
50
注册时间
2012-9-17
最后登录
2022-1-19
9#
发表于 2013-11-11 21:20:35 |只看该作者
darknesszeal 发表于 2013-11-11 21:14
恩,我明白你的意思,我意思是在交易结束之前你不知道自己会加仓加到多少手。
一手的时候你可能的最大损失 ...

我这里加仓次数为X+Y,X取决于当前的盈利资金量(每盈利10000元X增加1,IntPart((NetProfit()+10000)/10000);),Y为手动设置的值(一般为1-15左右)。
如果希望能确定最大的加仓次数N,可以把这里"X+Y"设置成"Max(N,X+Y)"即可。

使用道具 举报

Rank: 1

精华
0
UID
128312
积分
22
帖子
13
主题
1
阅读权限
10
注册时间
2013-6-14
最后登录
2015-5-13
10#
发表于 2013-11-11 21:24:32 |只看该作者
恩 明白了,非常感谢

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-10 20:02

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部