- 精华
- 0
- 在线时间
- 13 小时
- UID
- 221778
- 积分
- 3
- 帖子
- 2
- 阅读权限
- 10
- 注册时间
- 2015-10-21
- 最后登录
- 2016-4-6
- 精华
- 0
- UID
- 221778
- 积分
- 3
- 帖子
- 2
- 主题
- 1
- 阅读权限
- 10
- 注册时间
- 2015-10-21
- 最后登录
- 2016-4-6
|
Params
Numeric Length(10); //用于计算ATR和新高价的Bar数
Numeric Trigger(0.79); //用于计算多头进场价的驱动系数
Numeric Acceleration(0.05); //抛物线的加速系数
Numeric FirstBarMultp(5); //用于计算在进场Bar设置止损价的系数
Vars
NumericSeries ATR;
NumericSeries StopPrice; //跟踪止损价
NumericSeries HighValue; //多头进场之后的盈利峰值价
NumericSeries AF; //跟踪Acceleration
BoolSeries Condition1(False);
Numeric StopATR;
Begin
// 集合竞价和小节休息过滤
If(!CallAuctionFilter()) Return;
//初始设置
ATR=AvgTrueRange(Length);
Condition1=High>Highest(High[1],Length);
//上一根Bar创新高后且当前Bar最高价突破上一根Bar收盘价加上ATR的一定倍数多头入场
If(Condition1[1])
{
If(High>=Close[1]+ATR[1]*Trigger And Vol > 0)
{
Buy(0,Max(Open,Close[1]+ATR[1]*Trigger));
}
}
//记录盈利峰值价和跟踪止损价
StopATR = Average(TrueRange,3);
If(MarketPosition==1 And BarsSinceEntry==0)
{
StopPrice=Low-StopATR*FirstBarMultp; 这句话中low用的是当根K线的最低价吗 是不是应该用上一根K线的最低价格
AF=Acceleration; AF是 定义 等于0.05吗
HighValue=High; 这句话定义了 highvalue 就是 high吗
}Else If(MarketPosition==1 And BarsSinceEntry>0)
{
If(High>HighValue) HighValue=High; 这里面 为什么 high 又大于highvalue
If(HighValue>HighValue[1] And AF<0.2)
{
AF=AF+Min(Acceleration,0.2-AF);
}
StopPrice=StopPrice+AF*(HighValue-StopPrice); stopprice在这里 为什么可以在等号
}
//在图标上画出跟踪止损价
PlotNumeric("StopPrice",StopPrice);
//向下突破跟踪止损价多头出场
If(MarketPosition==1 And BarsSinceEntry>0 And Low<=StopPrice[1] And Vol > 0)
{
Sell(0,Min(Open,StopPrice[1]));
}
End
|
|