全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
关于ATR止损如何写
tanghe 分享到
2023-01-03 20:58

用开仓价格,加上3倍ATR的止损,麻烦技术老大帮忙写一下,谢谢

tblaocai

以双均线为例,写了个,供您参考下吧。

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止损出场!");
            }
        }
    }
 

2023-01-04 00:18
tanghe

谢谢技术老大

2023-01-04 10:15
您未登录,请先 登录注册 后发表评论
顶部