欢迎您光临博庭社区!

 找回密码
 立即注册
楼主: wxxx

战胜金融期货市场(把小的市场优势整合成为强大的赚钱策略)   [复制链接]

Rank: 3Rank: 3

奉献奖

发表于 2012-10-23 16:50:55 |显示全部楼层
  1. //Table 28.4  年之月 月之日组合-日内系统
  2. Input:n(10),p(4);
  3. Variable: e(0),f(0),m(0);
  4. m:=Month;
  5. if m<>m[1] and m[1]=n then e:=1;
  6. if m<>m[1] and m[1]=p then e:=-1;
  7. if (Day>=21 or Day<6) then f:=1;
  8. if (Day>=6 and Day<21) then f:=-1;
  9. if  O[-1] <C and e+f=2 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  10. if  O[-1] >C and e+f=-2 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  11. SetExitOnClose;
  12. {
  13. O[-1] <C 第二天低开
  14. }
复制代码
  1. //Table 28.5  Three Calendar Indicators Agree
  2. Input:n(10),p(4);
  3. Variable: e(0),f(0),x(0),u(0),g(0),m(0);
  4. if C>O then e:=C-O;
  5. if C<O then f:=O-C;
  6. if (WeekDay=5 and C>C[1]) or
  7. (WeekDay=1 and C<C[1]) or
  8. (WeekDay=2 and HHV(e,2)<HHV(f,2)) or
  9. (WeekDay=3 and HHV(e,3)<HHV(f,3)) or
  10. (WeekDay=4 and HHV(e,4)<HHV(f,4)) then g:=1;
  11. if (WeekDay=5 and C<C[1]) or
  12. (WeekDay=1 and C>C[1]) or
  13. (WeekDay=2 and HHV(e,2)>HHV(f,2)) or
  14. (WeekDay=3 and HHV(e,3)>HHV(f,3)) or
  15. (WeekDay=4 and HHV(e,4)>HHV(f,4)) then g:=-1;
  16. m:=Month;
  17. if m<>m[1] and m[1]=n then x:=1;
  18. if m<>m[1] and m[1]=p then x:=-1;
  19. if (Day>=21 or Day<6) then u:=1;
  20. if (Day>=6 and Day<21) then u:=-1;
  21. if x+u+g=3 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  22. if x+u+g<3 then Sell('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
  23. if x+u+g=-3 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  24. if x+u+g>-3 then BuyToCover('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
复制代码
  1. //Table 28.6  2 of 3 Calendar Signals—日内交易
  2. Input:n(10),p(4);
  3. Variable: e(0),f(0),x(0),u(0),g(0),m(0);
  4. if C>O then e:=C-O;
  5. if C<O then f:=O-C;
  6. if (WeekDay=5 and C>C[1]) or
  7. (WeekDay=1 and C<C[1]) or
  8. (WeekDay=2 and HHV(e,2)<HHV(f,2)) or
  9. (WeekDay=3 and HHV(e,3)<HHV(f,3)) or
  10. (WeekDay=4 and HHV(e,4)<HHV(f,4)) then g:=1;
  11. if (WeekDay=5 and C<C[1]) or
  12. (WeekDay=1 and C>C[1]) or
  13. (WeekDay=2 and HHV(e,2)>HHV(f,2)) or
  14. (WeekDay=3 and HHV(e,3)>HHV(f,3)) or
  15. (WeekDay=4 and HHV(e,4)>HHV(f,4)) then g:=-1;
  16. m:=Month;
  17. if m<>m[1] and m[1]=n then x:=1;
  18. if m<>m[1] and m[1]=p then x:=-1;
  19. if (Day>=21 or Day<6) then u:=1;
  20. if (Day>=6 and Day<21) then u:=-1;
  21. if  O[-1] <C and x+u+g>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  22. if  O[-1] >C and x+u+g<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  23. SetExitOnClose;
复制代码
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-23 17:03:31 |显示全部楼层
  1. //Table 29.1.  月之日,周之日和前面8个指标 组合.
  2. Variable: aaa(0),bbb(0),ccc(0),e(0),f(0),g(0),xx(0),j(0),x(0),uuu(0);
  3. if C>O then e=C-O; else e:=0;
  4. if C<O then f=O-C; else f:=0;
  5. if (WeekDay=5 and C>C[1] ) or
  6. (WeekDay=1 and C<C[1]) or
  7. (WeekDay=2 and HHV(e,2)<HHV(f,2)) or
  8. (WeekDay=3 and HHV(e,3)<HHV(f,3)) or
  9. (WeekDay=4 and HHV(e,4)<HHV(f,4)) then aaa:=1;
  10. if (WeekDay=5 and C<C[1] ) or
  11. (WeekDay=1 and C>C[1]) or
  12. (WeekDay=2 and HHV(e,2)>HHV(f,2)) or
  13. (WeekDay=3 and HHV(e,3)>HHV(f,3)) or
  14. (WeekDay=4 and HHV(e,4)>HHV(f,4)) then aaa:=-1;
  15. if (Day>=21 or Day<6) then bbb:=1;
  16. if (Day>=6 and Day<21) then bbb:=-1;
  17. IF MA(C,2)<MA(C,5)then g:=1;
  18. if MA(C,2)>MA(C,5)then g:=-1;
  19. if C>MA(C,40) then xx:=1;
  20. if C<MA(C,40) then xx:=-1;
  21. if HHVBars(C,50)>LLVBars(C,50) then j:=1;
  22. if HHVBars(C,50)<LLVBars(C,50) then j:=-1;
  23. if (KRange<MA(KRange,10)) and C>C[1] or (KRange>MA(KRange,10)) and C<C[1] then x:=1;
  24. if (KRange<MA(KRange,10)) and C<C[1] or (KRange>MA(KRange,10)) and C>C[1] then x:=-1;
  25. if C>(MA(H,15)+MA(L,15))/2 then uuu:=1;
  26. if C<(MA(H,15)+MA(L,15))/2 then uuu:=-1;
  27. if g+xx+j+x+uuu>0 then ccc:=1;
  28. if g+xx+j+x+uuu<0 then ccc:=-1;
  29. if aaa+bbb+ccc>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  30. if aaa+bbb+ccc<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
复制代码
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 8Rank: 8

发表于 2012-10-23 19:41:34 |显示全部楼层
谢谢 wxxx 朋友!很棒的分享!

使用道具 举报

Rank: 4

发表于 2012-10-23 21:07:23 |显示全部楼层
代码很多,慢慢学,谢谢!!!!!!!

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-24 08:25:22 |显示全部楼层
  1. //table 30.1.  Dow-Spoo Perpetual 道琼斯-标准普尔
  2. Variable: g(0);
  3. if  c/CloseD(1)>(data2.Close/(data2.CloseD(1))) then g=1;
  4. if  c/CloseD(1)<(data2.Close/(data2.CloseD(1))) then g=-1;
  5. if  g>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  6. if  g<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  7. {
  8. 我们可以在主图上叠加hs300的数据,交易 期指,这样,代码中data2就是hs300的数据
  9. }
复制代码
目前发现金魔方data2函数还不支持 引用 CloseD,OpenD,HighD 等.

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-24 15:38:03 |显示全部楼层
38楼的策略  Table 28.1  Index Month of the Year Indicator
我在后面提了点疑问,说分析下策略的成交时间。

看第一笔的成交时间  2010/07/02,与我们的策略逻辑不同(从5月2日开始做空)。
通过问金魔方开发人员,发现是这个设置的原因。




公式计算需引用之前最大周期数  50
我们发现7月2号是第52根K线(日线周期上)。

这下明白了。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-25 20:53:03 |显示全部楼层
接下来的几章,讲的都是日内交易。
  1. //Table 31.2  相对本周期的开盘价进场
  2. {
  3. 应用周期:分钟周期
  4. OpenD(0)就是 Open
  5. }
  6. Input:x(9.3),y(15.15);
  7. if Time=(x*10000) and C>OpenD(0) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  8. if Time=(y*10000) then Sell('', DEFAULT, 0, 0, OT_Close, OB_ThisBar, '');
  9. if Time=(x*10000) and C<OpenD(0) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  10. if Time=(y*10000) then BuyToCover('', DEFAULT, 0, 0, OT_Close, OB_ThisBar, '');
复制代码

看下图的成交明细,我们发现,都是在第二次反向开仓的同时平仓。
通过测试发现,金魔方有这个特性:某交易指令开仓时,如果已有反向持仓,先自动平掉该持仓再开新仓
其实,我们把这个策略用在国内的股指期货上反映不了该书要表达的意思,因为策略里是15:15平仓,而股指期货15:15正好收盘了,所以,我们把该策略的参数y改成 如15.10就可以实现该策略要表达的日内交易的意思了。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-25 21:12:02 |显示全部楼层
  1. //Table 31.3  2条K线一致和开盘价—60分钟周期
  2. Input:b(10.3),x(14.3);
  3. if Time>=(b*10000) and Time<(x*10000) and C>OpenD(0) and C[1]>OpenD(0) and C>C[1] then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  4. if Time=(x*10000) then Sell('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
  5. if Time>=(b*10000) and Time<(x*10000)and C<OpenD(0) and C[1]<OpenD(0) and C<C[1] then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  6. if Time=(x*10000) then BuyToCover('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
复制代码
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-26 16:31:07 |显示全部楼层
  1. //Table 31.4  上午休息,下午进场出场


  2. Input:x(13.00),y(15.00);
  3. if Time=(x*10000) and  C[1]>OpenD(0) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  4. if Time<((y+0.01)*10000) and Time>=(y*10000) then Sell('', DEFAULT, 0, 0, OT_Close, OB_ThisBar, '');
  5. if Time=(x*10000) and  C[1]<OpenD(0) then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
  6. if Time<((y+0.01)*10000) and Time>=(y*10000) then BuyToCover('', DEFAULT, 0, 0, OT_Close, OB_ThisBar, '');
  7. {
  8. mc中time精确到分钟,而金魔方精确到秒
  9. }
复制代码

使用道具 举报

Rank: 3Rank: 3

奉献奖

发表于 2012-10-26 19:48:09 |显示全部楼层
  1. //Fig 32.2  用于美大豆的交易
  2. Input:q(2),n(20),y(0.5),z(0.4),u(0.1);
  3. Variable:x(0),mp(0),rr(0),xx(0);
  4. if MA(KRange,5)>=q*MA(KRange,n)[5] then x=1; else x:=0;
  5. mp:=MarketPosition;
  6. rr:=HHV(H,n)-LLV(L,n);
  7. if HHV(H,n)-C<=u*rr then xx=1; else xx:=0;
  8. if x+xx>=1 then Buy('', DEFAULT, O[-1] +KRange, -1, OT_Stop, OB_NextBar,  '');
  9. if mp=1 then Sell('', DEFAULT, O[-1] +y*rr, 0, OT_Limit, OB_NextBar, '');
  10. if mp=1 then Sell('', DEFAULT, O[-1] -z*rr, -1, OT_Stop, OB_NextBar, '');
  11. //if mp=1 then Sell('', DEFAULT, L-KRange, -1, OT_Stop, OB_NextBar, '');
  12. if x+xx<1 then SellShort('', DEFAULT, O[-1] -KRange, -1, OT_Stop, OB_NextBar,  '');
  13. if mp=-1 then BuyToCover('', DEFAULT, O[-1] -y*rr, 0, OT_Limit, OB_NextBar, '');
  14. if mp=-1 then BuyToCover('', DEFAULT, O[-1] +z*rr, -1, OT_Stop, OB_NextBar, '');
  15. {
  16. 两种情况确定买入和卖出:
  17. 1,过去20天内的最高价减去收盘价等于或小于20天振幅的10%;
  18. 2, 5天的平均振幅至少是前面20天振幅均值的2倍(20天的均值从
  19.    25天前开始到6天前---不包括最近5天的日期)。

  20. 如果满足了2者中的任意一条,用stop类型的订单买入,买入价设置
  21. 为开盘价加前一天的振幅,做空价则为开盘价减同样的振幅。
  22. 止盈目标为第二天的开盘价加上20天振幅的50%
  23. 止损点为开盘价减去振幅的40%(这里并不一定亏损出场)。

  24. 代码第11行,书中貌似没提到以 L-KRange 止损,所以我注释了。
  25. }
复制代码

使用道具 举报

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

bottom

Archiver|http://www.patiosoft.com

GMT+8, 2017-12-17 08:37 , Processed in 0.049425 second(s), 9 queries .

花生网 Copyrigh©2012

和讯信息科技有限公司 ALL Rights Reserved 版权所有 复制必究

回顶部