用开仓价格,加上3倍ATR的止损,麻烦技术老大帮忙写一下,谢谢
谢谢技术老大
以双均线为例,写了个,供您参考下吧。
Params
Numeric Len1(5);
Numeric Len2(20);
Numeric ATRLen(20);
Numeric Lots(1);
Vars
Series<Numeric> ma1(0,2);
Series<Numeric> ma2(0,2);
Series<Numeric> ATR(0,2);
Series<Numeric> myExtPrc(0,2);
Series<Integer> DirFlag(0,2);
Events
OnBar(ArrayRef<Integer> indexs)
{
ma1 = AverageFC(Close,Len1);
ma2 = AverageFC(Close,Len2);
PlotNumeric("ma1",ma1);
PlotNumeric("ma2",ma2);
ATR = AvgTrueRange(ATRLen);
If(MarketPosition<>1 And ma1[1]>ma2[1] And DirFlag<>1)
{
Buy(Lots,Open);
DirFlag = 1;
myExtPrc = EntryPrice - ATR*4; //开仓时根据开仓Bar的ATR计算止损价
}
If(MarketPosition<>-1 And ma1[1]<ma2[1] And DirFlag<>-1)
{
SellShort(Lots,Open);
DirFlag = -1;
myExtPrc = EntryPrice + ATR*4; //开仓时根据开仓Bar的ATR计算止损价
}
If(MarketPosition==1 And BarsSinceEntry>0)
{
If(Low<=myExtPrc)
{
Sell(0,Min(Open,myExtPrc));
Commentary("多头ATR止损出场!");
}
}
If(MarketPosition==-1 And BarsSinceEntry>0)
{
If(High>=myExtPrc)
{
BuyToCover(0,Max(Open,myExtPrc));
Commentary("空头ATR止损出场!");
}
}
}