- 精华
- 0
- 在线时间
- 11 小时
- UID
- 194306
- 积分
- 14
- 帖子
- 5
- 阅读权限
- 10
- 注册时间
- 2014-9-24
- 最后登录
- 2017-3-8
- 精华
- 0
- UID
- 194306
- 积分
- 14
- 帖子
- 5
- 主题
- 2
- 阅读权限
- 10
- 注册时间
- 2014-9-24
- 最后登录
- 2017-3-8
|
本帖最后由 howard986 于 2016-8-1 16:43 编辑
帮楼主做了修改,消除了信号闪烁的问题。采用了昨日的信号,作为今日开仓信号的比对标准,部分地方使用了Low和High代替CLOSE,
Params
Numeric K(2);
Numeric Length(15);
Vars
NumericSeries StdValue;
NumericSeries AMA;
Numeric MyEntryPrice;
Numeric MyExitPrice;
Begin
StdValue = StandardDev(Close,Length);
AMA=Average(Close,Length);
PlotNumeric("AMA", AMA);
If(MarketPosition!=1 && High-Close[Length]>= StdValue[1]*K && High >= AMA[1])
{
MyEntryPrice = Max(Close[Length] + StdValue[1]*K, AMA[1]);
If(Open > MyEntryPrice)
MyEntryPrice = Open;
Buy(0,MyEntryPrice);
}
If(MarketPosition!=-1 && Low-Close[Length]<=-1*StdValue[1]*K && Low <= AMA[1])
{
MyEntryPrice = Min(Close[Length] - StdValue[1] * K, AMA[1]);
If(Open < MyEntryPrice)
MyEntryPrice = Open;
SellShort(0,MyEntryPrice);
}
If(MarketPosition==1 && Low <=AMA[1])
{
MyExitPrice = AMA[1];
If(Open < MyExitPrice)
MyExitPrice = Open;
Sell(0,MyExitPrice);
}
If(MarketPosition==-1 && High >= AMA[1])
{
MyExitPrice = AMA[1];
If(Open > MyEntryPrice)
MyEntryPrice = Open;
BuyToCover(0,MyEntryPrice);
}
End
个人感觉这个策略的几个问题:
1. 没有在判断趋势的基础上,建立入场信号,也就是没有判断大的趋势方向。
2. 这是个典型的突破型策略,如果在没有趋势的时候,就会产生大量假信号,因为价格会和趋势线交错在一起产生假信号;
3. 这个策略之所以运行的好,是因为建立在螺纹钢上,螺纹近几年都是单边趋势市,所以策略比较好用,但如果换个品种,就不行了。 |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|