Conversion of “Volatility Stop” Indicator from TOS to PRT

Forums ProRealTime English forum ProBuilder support Conversion of “Volatility Stop” Indicator from TOS to PRT

Viewing 2 posts - 1 through 2 (of 2 total)
  • #142716
    AG1
    Looking for help in Conversion of “Volatility Stop” Indicator from TOS to PRT.
    Indicator Code for TOS attached as file and below as text.
    Thanks for your help!

     

    Volatility Trailing Stop
    ## Version 1.1
    ## By Steve Coombs
    ## This ATR Trailing Stop is calculated using the Highest Close in an uptrend or
    ## the Lowest Close in a downtrend, rather than just the Close that is used
    ## in the standard TOS ATRTrailing Stop
    #input StopLabel = yes; #ATRStop Label is Stop value from yesterdays ATR calculation
    input ATRPeriod = 10;
    input ATRFactor = 1.5;
    input firstTrade = {default long, short};
    input averageType = AverageType.SIMPLE;
    Assert(ATRFactor > 0, “‘atr factor’ must be positive: ” + ATRFactor);
    def trueRange = TrueRange(high, close, low);
    def loss = ATRFactor * MovingAverage(averageType, trueRange, ATRPeriod);
    def state = {default init, long, short};
    def trail;
    def mclose;
    switch (state[1]) {
    case init:
    if (!IsNaN(loss)) {
    switch (firstTrade) {
    case long:
    state = state.long;
    mclose = close;
    trail = close – loss;
    case short:
    state = state.short;
    mclose = close;
    trail = close + loss;
    }
    } else {
    state = state.init;
    trail = Double.NaN;
    mclose = Double.NaN;
    }
    case long:
    if (close > trail[1]) {
    state = state.long;
    mclose = Max(mclose[1], close);
    trail = Max (trail[1], mclose – loss);
    } else {
    state = state.short;
    mclose = close;
    trail = mclose + loss;
    }
    case short:
    if (close < trail[1]) {
    state = state.short;
    mclose = Min(mclose[1], close);
    trail = Min(trail[1], mclose + loss);
    } else {
    state = state.long;
    mclose = close + 0;
    trail = mclose – loss;
    }
    }
    #AddLabel(StopLabel, “ATR Stop =” + Round(trail[1], 2), color = Color.BLUE);
    plot TrailingStop = trail;
    TrailingStop.SetPaintingStrategy(PaintingStrategy.POINTS);
    TrailingStop.SetLineWeight(lineWeight = 3);
    TrailingStop.DefineColor(“Buy”, GetColor(5));
    TrailingStop.DefineColor(“Sell”, GetColor(1));
    TrailingStop.AssignValueColor(if state == state.long
    then TrailingStop.Color(“Sell”)
    else TrailingStop.Color(“Buy”));
    #142724

    This is nothing more than a SuperTrend, you will find many “trailing stop” indicator like this in the library:

    https://www.prorealcode.com/tag/supertrend/

    or

    https://www.prorealcode.com/tag/trailing-stop/

Viewing 2 posts - 1 through 2 (of 2 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login