随便写写,逻辑有欠缺! UpBand= highest(H[1],Length); DnBand= Lowest(L[1],Length); UpFlag= Highest(H[1]-Upband[1],Length*2)>=0 ; DnFlag= Lowest(L[1]-DnBand[1],Length*2)<=0 ; 当!Dnflag时才能开多,!UpFlag时才能开空。

- //IF_5min
- Params
- Numeric Length(20);
- Numeric Lots(1);
- Vars
- NumericSeries UpBand;
- NumericSeries DnBand;
- NumericSeries MidBand;
- bool UpFlag;
- bool DnFlag;
- Begin
- UpBand= highest(H[1],Length);
- DnBand= Lowest(L[1],Length);
- Commentary("length="+Text(length));
- MidBand=(UpBand+DNBand)/2;
- PlotNumeric("UpBand",Upband);
- PlotNumeric("DnBand",Dnband);
- PlotNumeric("Midband",MidBand);
- UpFlag= Highest(H[1]-Upband[1],Length*2)>=0 ;
- DnFlag= Lowest(L[1]-DnBand[1],Length*2)<=0 ;
- //开仓--不反手
- IF( MarketPosition==0)
- {
- IF( H>=UpBand && !DnFlag )
- {
- Buy(Lots,Max(O,UpBand));
- return;
- }
- IF( L<= DnBand && !UpFlag )
- {
- SellShort(Lots,Min(O,DnBand));
- return;
- }
- }
- //中轨平仓
- IF(MarketPosition>0 && BarsSinceEntry>=1 && L<=Midband )
- {
- Sell(0,Min(O,MidBand));
- }
- IF(MarketPosition<0 && BarsSinceEntry>=1 && H>=MidBand )
- {
- BuyToCover(0,Max(O,MidBand));
- }
- End
复制代码
|