333333 发表于 2012-9-26 15:45:51

俺觉得金融分析师,以及现在很多科班的证券分析师,多是市场最好的对手盘

wxxx 发表于 2012-9-27 09:03:37

//Table10.5  IF99 p_day 最高价最低价之差 Vs 10天平均最高价最低价之差
{
1,如果今天的最高价最低价之差 小于 n天的平均值-----
如果今天的收盘价大于昨天的收盘价,明天买入;反之,明天做空。

2,如果今天的最高价最低价之差 大于 n天的平均值-----
如果今天的收盘价小于昨天的收盘价,明天买入;反之,明天做空。
}
Input:n(10);
if ((high-low)<MA((high-low),n) and C>C)or ((high-low)>MA((high-low),n) and C<C) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if ((high-low)<MA((high-low),n) and C<C) or ((high-low)>MA((high-low),n) and C>C)then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;  见下图,几乎每天都有交易

wxxx 发表于 2012-9-27 17:42:33

//Table 11.1  最高价/最低价15天均值的均值策略
if C>(MA(H,15)+MA(L,15))/2 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if C<(MA(H,15)+MA(L,15))/2 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;
{
最高价的15天均值加上最低价的15天均值,再除以2.
}

下次我们整合5个单独的指标成一个策略看看,敬请关注。

wxxx 发表于 2012-9-28 10:59:54

{
//Table 5.2  收盘价 vs 均价
//Table 7.1  2天 vs 5天
//Table 8.2 最高收盘价,最低收盘价
//Table 10.5  最高价最低价之差 Vs 10天平均最高价最低价之差
//Table 11.1  最高价/最低价15天均值的均值策略
}

//Table 12.1  第一个五指标综合策略
Variable: q(0),u(0),x(0),y(0),z(0);
if C>MA(C,40) then q:=1;
if C<MA(C,40) then q:=-1;
IF MA(C,2)<MA(C,5)then u:=1;
if MA(C,2)>MA(C,5)then u:=-1;
if HHVBars(C,50)>LLVBars(C,50) then x:=1;
if HHVBars(C,50)<LLVBars(C,50) then x:=-1;
if ((high-low)<MA((high-low),10) and C>C)or ((high-low)>MA((high-low),10) and C<C) then y:=1;
if ((high-low)<MA((high-low),10) and C<C) or ((high-low)>MA((high-low),10) and C>C)then y:=-1;
if C>(MA(H,15)+MA(L,15))/2 then z:=1;
if C<(MA(H,15)+MA(L,15))/2 then z:=-1;
if q+u+x+y+z>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if q+u+x+y+z<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;
{
q+u+x+y+z>0,5个指标中的任意3个发出买入信号才成立
同理,q+u+x+y+z<0,5个指标中的任意3个发出卖空信号 成立
}

  经过不同市场,不同品种的评测发现,此策略比 Table 9.1  3个指标综合策略 表现要好。
  另一方面,5个指标的综合系统能让我们去做3个指标综合办不到的事。在5个指标系统中,我们

可以在4个或5个指标都给出一致的信号,才建仓(见下面的策略--Table 12.2  5个指标中至少4个

发出相同信号 策略)。评测发现,Table 12.2比Table 12.1交易次数少了很多;但收益,最大回

撤表现更好。{
//Table 5.2  收盘价 vs 均价
//Table 7.1  2天 vs 5天
//Table 8.2 最高收盘价,最低收盘价
//Table 10.5  最高价最低价之差 Vs 10天平均最高价最低价之差
//Table 11.1  最高价/最低价15天均值的均值策略
}

//Table 12.2  5个指标中至少4个发出相同信号 策略
Variable: q(0),u(0),x(0),y(0),z(0);
if C>MA(C,40) then q:=1;
if C<MA(C,40) then q:=-1;
IF MA(C,2)<MA(C,5)then u:=1;
if MA(C,2)>MA(C,5)then u:=-1;
if HHVBars(C,50)>LLVBars(C,50) then x:=1;
if HHVBars(C,50)<LLVBars(C,50) then x:=-1;
if ((high-low)<MA((high-low),10) and C>C)or ((high-low)>MA((high-low),10) and C<C) then y:=1;
if ((high-low)<MA((high-low),10) and C<C) or ((high-low)>MA((high-low),10) and C>C)then y:=-1;
if C>(MA(H,15)+MA(L,15))/2 then z:=1;
if C<(MA(H,15)+MA(L,15))/2 then z:=-1;
if q+u+x+y+z>=3 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if q+u+x+y+z<=-3 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;
{
q+u+x+y+z>=3,5个指标中的至少4个发出买入信号才成立
同理,q+u+x+y+z<=-3,5个指标中的至少4个发出卖空信号 成立
}


  书中谈到,5个指标中有4个指标方向一致系统最适合做机械交易系统。
  下次,我们将谈谈5个基本指标的其他组合情况,敬请期待。
         

wxxx 发表于 2012-9-29 14:17:16

将这5个指标编号如下:
1        Table 5.2 收盘价 vs 均价
2        Table 7.1 2天 vs 5天
3        Table 8.2 最高收盘价,最低收盘价
4        Table 10.5 最高价最低价之差 Vs 10天平均最高价最低价之差
5        Table 11.1 最高价/最低价15天均值的均值策略

我们已经讲了把前面三个指标(见Table 9.1  3个指标综合策略)组合的情况,5个指标中任选3个指标,还有C(5,3)-1=9个方式让其中的3个信号组合起来://124
Variable: q(0),u(0),x(0),y(0),z(0);
if C>MA(C,40) then q:=1;
if C<MA(C,40) then q:=-1;
IF MA(C,2)<MA(C,5)then u:=1;
if MA(C,2)>MA(C,5)then u:=-1;
if ((high-low)<MA((high-low),10) and C>C)or ((high-low)>MA((high-low),10) and C<C) then y:=1;
if ((high-low)<MA((high-low),10) and C<C) or ((high-low)>MA((high-low),10) and C>C)then y:=-1;
if q+u+y>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if q+u+y<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//125
Variable: q(0),u(0),x(0),y(0),z(0);
if C>MA(C,40) then q:=1;
if C<MA(C,40) then q:=-1;
IF MA(C,2)<MA(C,5)then u:=1;
if MA(C,2)>MA(C,5)then u:=-1;
if C>(MA(H,15)+MA(L,15))/2 then z:=1;
if C<(MA(H,15)+MA(L,15))/2 then z:=-1;
if q+u+z>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if q+u+z<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//134
Variable: q(0),u(0),x(0),y(0),z(0);
if C>MA(C,40) then q:=1;
if C<MA(C,40) then q:=-1;
if HHVBars(C,50)>LLVBars(C,50) then x:=1;
if HHVBars(C,50)<LLVBars(C,50) then x:=-1;
if ((high-low)<MA((high-low),10) and C>C)or ((high-low)>MA((high-low),10) and C<C) then y:=1;
if ((high-low)<MA((high-low),10) and C<C) or ((high-low)>MA((high-low),10) and C>C)then y:=-1;
if q+x+y>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if q+x+y<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//135
Variable: q(0),u(0),x(0),y(0),z(0);
if C>MA(C,40) then q:=1;
if C<MA(C,40) then q:=-1;
if HHVBars(C,50)>LLVBars(C,50) then x:=1;
if HHVBars(C,50)<LLVBars(C,50) then x:=-1;
if C>(MA(H,15)+MA(L,15))/2 then z:=1;
if C<(MA(H,15)+MA(L,15))/2 then z:=-1;
if q+x+z>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if q+x+z<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//145
Variable: q(0),u(0),x(0),y(0),z(0);
if C>MA(C,40) then q:=1;
if C<MA(C,40) then q:=-1;
if ((high-low)<MA((high-low),10) and C>C)or ((high-low)>MA((high-low),10) and C<C) then y:=1;
if ((high-low)<MA((high-low),10) and C<C) or ((high-low)>MA((high-low),10) and C>C)then y:=-1;
if C>(MA(H,15)+MA(L,15))/2 then z:=1;
if C<(MA(H,15)+MA(L,15))/2 then z:=-1;
if q+y+z>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if q+y+z<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//234
Variable: q(0),u(0),x(0),y(0),z(0);
IF MA(C,2)<MA(C,5)then u:=1;
if MA(C,2)>MA(C,5)then u:=-1;
if HHVBars(C,50)>LLVBars(C,50) then x:=1;
if HHVBars(C,50)<LLVBars(C,50) then x:=-1;
if ((high-low)<MA((high-low),10) and C>C)or ((high-low)>MA((high-low),10) and C<C) then y:=1;
if ((high-low)<MA((high-low),10) and C<C) or ((high-low)>MA((high-low),10) and C>C)then y:=-1;
if u+x+y>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if u+x+y<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//235
Variable: q(0),u(0),x(0),y(0),z(0);
IF MA(C,2)<MA(C,5)then u:=1;
if MA(C,2)>MA(C,5)then u:=-1;
if HHVBars(C,50)>LLVBars(C,50) then x:=1;
if HHVBars(C,50)<LLVBars(C,50) then x:=-1;
if C>(MA(H,15)+MA(L,15))/2 then z:=1;
if C<(MA(H,15)+MA(L,15))/2 then z:=-1;
if u+x+z>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if u+x+z<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//245
Variable: q(0),u(0),x(0),y(0),z(0);
IF MA(C,2)<MA(C,5)then u:=1;
if MA(C,2)>MA(C,5)then u:=-1;
if ((high-low)<MA((high-low),10) and C>C)or ((high-low)>MA((high-low),10) and C<C) then y:=1;
if ((high-low)<MA((high-low),10) and C<C) or ((high-low)>MA((high-low),10) and C>C)then y:=-1;
if C>(MA(H,15)+MA(L,15))/2 then z:=1;
if C<(MA(H,15)+MA(L,15))/2 then z:=-1;
if u+y+z>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if u+y+z<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//345
Variable: q(0),u(0),x(0),y(0),z(0);
if HHVBars(C,50)>LLVBars(C,50) then x:=1;
if HHVBars(C,50)<LLVBars(C,50) then x:=-1;
if ((high-low)<MA((high-low),10) and C>C)or ((high-low)>MA((high-low),10) and C<C) then y:=1;
if ((high-low)<MA((high-low),10) and C<C) or ((high-low)>MA((high-low),10) and C>C)then y:=-1;
if C>(MA(H,15)+MA(L,15))/2 then z:=1;
if C<(MA(H,15)+MA(L,15))/2 then z:=-1;
if x+y+z>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if x+y+z<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;对选取的9个不同市场不同品种的评测发现,这些指标的组合都有亏损的情况,但账户收益并没有大起大落。

后面我们继续介绍其他策略。

五竹叔 发表于 2012-10-8 21:06:22

这个非常好啊

wxxx 发表于 2012-10-9 16:42:38

很多时候,如果前一天是上涨收盘的,那么第二天就是下跌收盘;反之亦然。这个概念有一个变形

概念,那就是和开盘价到收盘价的走势反着做。//Table 14.1  和开盘价到收盘价反着做
If C<O then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
If C>O then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;
如果市场连续2天开盘到收盘的方向一致,是不是我们就有了优势呢。策略14.2肯定了这种说法。//Table 14.2  和连续2个相同的开盘价到收盘价反着做
if C<O and C<O then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if C>O and C>O then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;

下回我们介绍一种经典的技术形态策略。

wxxx 发表于 2012-10-10 21:15:10

本次谈到的指标很有名,因为图形看起来像杯子或盖子,所以指标以此为名。

杯子的形态意味着要买入,盖子的形态意味着要卖出。这2个指标都涉及到3条K线。
在本版中,对于杯子指标,最低价和最低收盘价都必须在中间的K线上。中间K线的最低价必须比前面3条K线的最低价低,这是强制性的规则。
盖子指标则相反,高价和最高收盘价都必须在中间的K线上。中间K线的最高价必须比前面3条K线的最高价高。
一旦形成了杯子,我们就在第二天开盘买入;一旦形成盖子,第二天开盘卖空,都在收盘前出场。//Table 15.1  杯子与盖子(日内)
if L>L and L<LLV(L,3)and C>C and C<C then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if H<H and H>HHV(H,3) and C<C and C>C then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;

{
中间K线的最低价必须比前面3条K线的最低价低<==>L<LLV(L,3)

LLV(L,3)表示上两根执行 LLV(L,3) 的结果
}
杯子盖子这种形态的最大预测能力在于对第二天开盘的期望值。如果你在看见杯子形态后以收盘单进场了,那么第二天的开盘价可能比较高,你就可以出场了;盖子形态也是同理。
如策略15.2所示://Table 15.2  杯子与盖子(隔夜)
if L>L and L<LLV(L,3)and C>C and C<C then Buy('', DEFAULT, 0, 0, OT_Close, OB_ThisBar,  '');
Sell('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
if H<H and H>HHV(H,3) and C<C and C>C then SellShort('', DEFAULT, 0, 0, OT_Close, OB_ThisBar,  '');
BuyToCover('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
{
本策略,我们见到了OT_Close(收盘单)   OB_ThisBar
}
通过评测很多市场和很长的历史数据,大部分品种的胜率都超过了50%。我们得到了持续一致的收益-----没有大起大落的现象,这就是有活力的系统!
不幸的是,你也会看到其他问题。平均每笔交易的利润数值太小了,都无法抵消成本,不适合做机械交易。
策略15.3显示了前面持仓过夜策略的变通方法,当你在某天收盘价进场时,你要在理性的利润目标价或止损价出场。如果你是做多的,目标价就是3天内的最高价加上3天平均振幅的1/4,止损价是3天最低价下面的一个基点,市场没有达到这2个价格,那么就在入场后2天开盘出场;反之(做空)亦然。//Table 15.3  有止盈止损的杯子与盖子(隔夜)
if L>L and L<LLV(L,3)and C>C and C<C then Buy('', DEFAULT, 0, 0, OT_Close, OB_ThisBar,  '');
if MarketPosition=1 and BarsSinceEntry=1 then Sell('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
Sell('', DEFAULT, HHV(H,3)+.25*MA((high-low),3), 0, OT_Limit, OB_NextBar, '');
Sell('', DEFAULT, LLV(L,3)-(MinMove/PriceScale), -1, OT_Stop, OB_NextBar, '');
if H<H and H>HHV(H,3) and C<C and C>C then SellShort('', DEFAULT, 0, 0, OT_Close, OB_ThisBar,  '');
if MarketPosition=-1 and BarsSinceEntry=1 then BuyToCover('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '');
BuyToCover('', DEFAULT, LLV(L,3)-.25*MA((high-low),3), 0, OT_Limit, OB_NextBar, '');
BuyToCover('', DEFAULT, HHV(H,3)+(MinMove/PriceScale), -1, OT_Stop, OB_NextBar, '');
{
本策略,我们见到了OT_Limit   OT_Stop
BarsSinceEntry=1 then Sell('', DEFAULT, 0, 0, OT_Market, OB_NextBar, '')
表达的意思是,从开仓那根K线算起,到现在有1个周期了,也就是有2根K线了,第3根K线平仓,见下图的成交明细,
这种情况只发生在没有出现止盈止损价时,才到第3根K线平仓,其他达到止盈止损的,都是第二根K线平仓。
}

wxxx 发表于 2012-10-11 19:48:19

很多模式识别技术都涉及到了3条K线,这是很有趣的现象。本次我们再说一个3条K线的例子。//Table 16.1  支撑到阻力的20%策略
Input: n(0.2);
if HHV(L,3)-LLV(L,3)<=n*(HHV(H,3)-LLV(L,3)) then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if HHV(H,3)-LLV(H,3)<=n* (HHV(H,3)-LLV(L,3))then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;
{
如果过去3天内最高的最低价减去最低的最低价小于或等于3天内最高价到最低价的价差的20%,那么在第二天买入。
如果最高的最高价和最低的最高价之间的价差不超过3天内最高价到最低价的价差的20%,那么就做空,在收盘前平仓。
}
下次我们讨论前面讲过的8个策略的组合.

wxxx 发表于 2012-10-11 20:28:40

//Table 17.4  8指标组合策略
Variable: aa(0),bb(0),cc(0),dd(0),ee(0),ff(0),gg(0),hh(0);
IF MA(C,2)<MA(C,5)then aa:=1;
if MA(C,2)>MA(C,5)then aa:=-1;
if C>MA(C,40) then bb:=1;
if C<MA(C,40) then bb:=-1;
if HHVBars(C,50)>LLVBars(C,50) then cc:=1;
if HHVBars(C,50)<LLVBars(C,50) then cc:=-1;
if ((high-low)<MA((high-low),10)) and C>C or ((high-low)>MA((high-low),10)) and C<C then dd:=1;
if ((high-low)<MA((high-low),10)) and C<C or ((high-low)>MA((high-low),10)) and C>C then dd:=-1;
if C>(MA(H,15)+MA(L,15))/2 then ee:=1;
if C<(MA(H,15)+MA(L,15))/2 then ee:=-1;
if C<O and C<O then ff=1; else ff:=0;
if C>O and C>O then ff:=-1;
if L>L and L<LLV(L,3) and C>C  and C<Cthen gg=1; else gg:=0;
if H<H and H>HHV(H,3) and C<C and C>Cthen gg:=-1;
if HHV(L,3)-LLV(L,3)<=0.2*(HHV(H,3)-LLV(L,3)) then hh=1; else hh:=0;
if HHV(H,3)-LLV(H,3)<=0.2* (HHV(H,3)-LLV(L,3))then hh:=-1;
if aa+bb+cc+dd+ee+ff+gg+hh>0 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if aa+bb+cc+dd+ee+ff+gg+hh<0 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;//Table 17.5  8指标组合策略.  +3/-3
Variable: aa(0),bb(0),cc(0),dd(0),ee(0),ff(0),gg(0),hh(0);
IF MA(C,2)<MA(C,5)then aa:=1;
if MA(C,2)>MA(C,5)then aa:=-1;
if C>MA(C,40) then bb:=1;
if C<MA(C,40) then bb:=-1;
if HHVBars(C,50)>LLVBars(C,50) then cc:=1;
if HHVBars(C,50)<LLVBars(C,50) then cc:=-1;
if ((high-low)<MA((high-low),10)) and C>C or ((high-low)>MA((high-low),10)) and C<C then dd:=1;
if ((high-low)<MA((high-low),10)) and C<C or ((high-low)>MA((high-low),10)) and C>C then dd:=-1;
if C>(MA(H,15)+MA(L,15))/2 then ee:=1;
if C<(MA(H,15)+MA(L,15))/2 then ee:=-1;
if C<O and C<O then ff=1; else ff:=0;
if C>O and C>O then ff:=-1;
if L>L and L<LLV(L,3) and C>C  and C<Cthen gg=1; else gg:=0;
if H<H and H>HHV(H,3) and C<C and C>Cthen gg:=-1;
if HHV(L,3)-LLV(L,3)<=0.2*(HHV(H,3)-LLV(L,3)) then hh=1; else hh:=0;
if HHV(H,3)-LLV(H,3)<=0.2* (HHV(H,3)-LLV(L,3))then hh:=-1;
if aa+bb+cc+dd+ee+ff+gg+hh>=3 then Buy('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
if aa+bb+cc+dd+ee+ff+gg+hh<=-3 then SellShort('', DEFAULT, 0, 0, OT_Market, OB_NextBar,  '');
SetExitOnClose;
后面我们分2次说OT_Limit   OT_Stop单的情况。
页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: 战胜金融期货市场(把小的市场优势整合成为强大的赚钱策略)