- 精华
- 0
- 在线时间
- 63 小时
- UID
- 24130
- 积分
- 91
- 帖子
- 12
- 阅读权限
- 30
- 注册时间
- 2011-1-15
- 最后登录
- 2014-8-7
- 精华
- 0
- UID
- 24130
- 积分
- 91
- 帖子
- 12
- 主题
- 6
- 阅读权限
- 30
- 注册时间
- 2011-1-15
- 最后登录
- 2014-8-7
|
在研究rangebreak系统时发现,第二次开仓要参考第一次开仓的方向。如上一次为买仓,则下一次超过前期高点才开买仓,但突破向下区间即可开卖仓。如上一次为卖仓,则超过前期底点才开卖仓,但突破向上区间即可开买仓。对于这些指令如何实现,请管理员指点。
Params
Numeric PercentOfRange(0.3);
Numeric ExitOnCloseMins(14.50);
Numeric LastTradeMins(14.00);
Vars
Numeric DayOpen;
Numeric preDayRange;
Numeric UpperBand;
Numeric LowerBand;
Numeric StopLossSet;
Numeric MyPrice;
Numeric StopLine;
NumericSeries HigherAfterEntry;
NumericSeries LowerAfterEntry;
Begin
DayOpen = OpenD(0);
preDayRange = HighD(1) - LowD(1);
UpperBand = DayOpen + preDayRange*PercentOfRange;
LowerBand = DayOpen - preDayRange*PercentOfRange;
If(MarketPosition!=1 && High>=UpperBand&&time< LastTradeMins /100)
{
MyPrice = UpperBand;
If(Open > MyPrice) MyPrice = Open;
Buy(1,MyPrice);
Return;
}
If(MarketPosition!=-1 && Low<=LowerBand&&Time< LastTradeMins /100)
{
MyPrice = LowerBand;
If(Open < MyPrice) MyPrice = Open;
SellShort(1,MyPrice);
Return;
}
If(MarketPosition==1)
{
StopLine = UpperBand-DayOpen*StopLossSet*0.01;
If(Low <= StopLine)
{
MyPrice = StopLine;
If(Open < MyPrice) MyPrice = Open;
Sell(Lots,MyPrice);
}
}
Else If(MarketPosition==-1)
{
StopLine = LowerBand+DayOpen*StopLossSet*0.01;
If(High >= StopLine)
{
MyPrice = StopLine;
If(Open > MyPrice) MyPrice = Open;
BuyToCover(Lots,MyPrice);
}
}
// 收盘平仓
If(Time >=ExitOnCloseMins/100)
{
Sell(1,Open);
BuyToCover(1,Open);
}
PlotNumeric("UpperBand",UpperBand);
PlotNumeric("LowerBand",LowerBand);
PlotNumeric("DayOpen",DayOpen);
End |
|