Conversion of “Volatility Stop” Indicator from TOS to PRT

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #142716 quote
    AG1AG1
    Participant
    New

    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 quote
    NicolasNicolas
    Keymaster
    Legend

    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)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Conversion of “Volatility Stop” Indicator from TOS to PRT


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
AG1 @ag1 Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by NicolasNicolas
6 years, 1 month ago.

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 08/27/2020
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...