write me this code as explained here, and convers it to a v5 strategy for tradingview, will give the "Heikin Ashi RSI Oscillator" By JayRogers code at the bottom, 

This strategy is credited to the "Heikin Ashi RSI Oscillator" By JayRogers.

The core of this strategy is "Heikin Ashi RSI Oscillator (HARSI)" By JayRogers, with multiple confirmation indicators. The buy signal is generated by HARSI when there is green HA, and there is a positive stochastic cross under the line OB line.
To confirm the buys signal, you can use one or all of the following:

- EMA: the buy confirmation is positive if the candle closes above the EMA.
- Volume Oscillator: the buy confirmation is positive if the volume value is above the zero line.
- ADX: the buy confirmation is positive if the D+ is above the D- and the D+ is above the threshold level.
- Vortex: the buy confirmation is positive if VI+ is above VI-.

You can enable the take profit, trailing stop loss (TSL), and stop lose (SL), if not, then the strategy will give a sell signal by itself when there is a negative stochastic cross above OB Extreme line.

Note, that the TSL arming value should be lower than the TSL %.

The strategy can give a different result based on your selection. However, the best timeframe is 4 hours without TP.

Apr 22, 2022
Release Notes
Added sell options.
With V1 better to use the built-in indicators for confirmation.
Apr 22, 2022
Release Notes
Minor typo change. The added option is for buying.
Added BUY options.
With V1 better to use the built-in indicators for confirmation.
Apr 23, 2022
Release Notes
Added more options to "Volume Oscillator". You can select the threshold level and the operation (above, under, crossover, crossunder).
Apr 23, 2022
Release Notes
Added new buy option. The buy signal is positive if HA closed under the OB level.
Apr 24, 2022
Release Notes
Minor bug fix.
Apr 25, 2022
Release Notes
Added Relative Volatility Index (RVI). You can activate the RVI as an additional confirmation based on the RVI directional ( bigger, small, crossover, crossunder) to the threshold level.
Apr 28, 2022
Release Notes
- Added monthly & yearly profit/loss. Credit to levieux (Monthly Returns in Strategies with Market Benchmark).
- Minor changes.
Apr 30, 2022
Release Notes
Added custom alert messages to be used for 3Commas and other bot platforms. Add your buy & sell message for the bot in the strategy, and when you create the alert just type {{startegy.order.alert_message}}
May 4, 2022
Release Notes
Added MACD and Supertrend.
May 6, 2022
Release Notes
Updated inputs name.
May 7, 2022
Release Notes
Add Ichimoku Cloud. There is three conditions to filter the buy signal.
May 7, 2022
Release Notes

- The strategy is based on TSL, thus with this release the "After order is filled" enabled by default. This will allow to collect the profit as soon as possible.
- Enhanced the buy options.
- Added EMA cross, which give positive buy signal if the fast EMA is above the slow EMA.


May 7, 2022
Release Notes
Fixed a typo in strategy syntax.
May 8, 2022
Release Notes
Added BTC price trend indicator. With this indicator you can disable/enable trading based on the BTC price movement, this will help to filter the signals while the market in downtrend since all the altcoins following the BTC.
May 12, 2022
Release Notes
Added new buy signal #4. The signal can be controlled more by OB, OS and HA smoothed factor.
Added two strategy exit methods.
May 25, 2022
Release Notes
Fixed a bug with buy signal #4
The table result option, by default, is set to false, ensure to make false when adding the alert, the table may cause CPU/memory error.
Jul 25, 2022
Release Notes
New: V5 Buys when stochK > sotchD on an uptrend with a look back one green candle.
New: V6 Same as V2 but will buy with more caution.
New: V7 Buys when the candle is green and under OB.
New: V8 Buys when stochK > sotchD and green candle has no low wick.
New: V9 Buys when stochK > sotchD and two green candles have no low wick.
NEW: SSL confluence - The signal is positive only if the "SSL up" is above "SSL down"
New: REX by vitelot with an option to calculate it with HA - The signal is positive only REX line is above the signal line, with a threshold option.
New: VWAP - The signal is positive only if the close is above VWAP
New: New exit options
New: Stop loss based on HA ATR will look back
New: Strategy statics table - useful on mobile version
New: Exit methods, TSL, TP, Strategy - Add take profit only
New: Awesome Oscillator - The signal is positive if the Awesome Oscillator candle is green.
New: Chande Momentum Oscillator - The signal is posivtive only of the Chande is above the zero line.
New: ZLSMA - The signal is positive only if the ZLSMA is under the over-bought zone.
New: VWMA - The signal is positive if the selected condition is above VWMA.
Updated: V1 Buys when StochK crossover StochD with more restricted confirmation conditions.
Updated: V2 Buys when StochK > StochD with less confirmation conditions.
Updated: V3 Buys when a red candle closes under OB or OBX and the next candle is green with other confirmation.
Updated: V4 Buys based on HA,OB, and OS level.
Updated: Option to calculate EMA with HA
Updated: Option to calculate Vortex with HA
Updated: Option to calculate ADX with HA
Updated: Option to calculate RVI with HA
Updated: Updated Ichimoku with multiple buy options including based on HA
Updated: SuperTrend by KivancOzbilgic with the option to calculate it with HA
Updated: Option to calculate MACD with HA
Updated: Buy Signal 3
Updated: BTC Trend confluence, will not repaint
Updated: Exit comments, now each exit shows exit type
Jul 25, 2022
Release Notes
Updating the strategy test result, the strategy is using 30% of the capital 1000.
If you have a premium plan, it is recommended to activate the "Use bar magnifier".
The option "recalculate ordered if filled" is disabled now due to signal frequency, which you can enable manually.
Dec 15, 2022
Release Notes
// - added RSI
// - added MFI
// - added Ultimate Oscillator
// - added Volume Flow by LazyBear
// - added MavilimW by KIVANÇ ÖZBİLGİÇ - for more information visit https://www.tradingview.com/script/IAssyObN-MavilimW/
Dec 23, 2022
Release Notes
Added Time Segmented Volume (TSV)
Added Trend Magic - By KivancOzbilgic
Added Dziwne Trend By Dziwne
Note: Not recommended to use multiple trend confluences together, the same thing for the volume confluences, use one trend confluence, and one volume confluence.
Jan 9, 2023
Release Notes
Bug fix with MFI confluence.

here is the "Heikin Ashi RSI Oscillator" By JayRogers:

// This source code is free to use, copy, and alter in any way you choose.
// ...but credit is always nice :)

//@version=4
//@author=JayRogers

study( "Heikin Ashi RSI Oscillator", "HARSI •", false, format.price, 2 )

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// ====== ABOUT THIS INDICATOR                                                //
//                                                                            //
//  - RSI based Heikin Ashi candle oscillator                                 //
//                                                                            //
// ====== ARTICLES and FURTHER READING                                        //
//                                                                            //
//  - https://www.investopedia.com/terms/h/heikinashi.asp                     //
//                                                                            //
//    "Heikin-Ashi is a candlestick pattern technique that aims to reduce     //
//    some of the market noise, creating a chart that highlights trend        //
//    direction better than typical candlestick charts"                       //
//                                                                            //
// ====== REASON FOR STUDY                                                    //
//                                                                            //
//  - Mostly experimental. I wanted to see if I could translate RSI into a    //
//    Heikin Ashi function and retain it's oscillating nature. That goal      //
//    was met more easily than I anticipated with quite delightful results.   //
//                                                                            //
// ====== DISCLAIMER                                                          //
//                                                                            //
//    Any trade decisions you make are entirely your own responsibility.      //
//    I've made an effort to squash all the bugs, but you never know!         //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                           ====== TOOLTIPS ======                           //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

string TT_HARSI = "Period for the RSI calculations used to generate the"        +
                  "candles. This seperate from the RSI plot/histogram length."

string TT_PBIAS = "Smoothing feature for the OPEN of the HARSI candles."        +
                  "\n\nIncreases bias toward the prior open value which can"    +
                  " help provide better visualisation of trend strength."       +
                  "\n\n** By changing the Open values, High and Low can also"   +
                  " be distorted - however Close will remain unchanged."

string TT_SMRSI = "This option smoothes the RSI in a manner similar to HA"      +
                  " open, but uses the realtime rsi rather than the prior"      +
                  " close value."

string TT_STOCH = "Uses the RSI generated by the above settings, and as such"   +
                  " will be affected by the smoothing option."

string TT_STFIT = "Adjusts the vertical scaling of the stochastic, can help"    +
                  " to prevent distortion of other data in the channel."        +
                  "\n\nHas no impact cross conditions."

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                            ====== INPUTS ======                            //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

// -- Candle config

string GROUP_CAND = "Config » HARSI Candles"
i_lenHARSI  = input( 14,            "Length",               input.integer,  group = GROUP_CAND,
                  minval = 1, tooltip = TT_HARSI )
i_smoothing = input( 1,             "Open Smoothing",       input.integer,  group = GROUP_CAND,
                  minval = 1, maxval = 100, tooltip = TT_PBIAS )
string INLINE_COL = "Colour Pallette"
i_colUp     = input( color.teal,    "Colour Pallette  ",    input.color,    group = GROUP_CAND, inline = INLINE_COL )
i_colDown   = input( color.red,     " ",                    input.color,    group = GROUP_CAND, inline = INLINE_COL )
i_colWick   = input( color.gray,    " ",                    input.color,    group = GROUP_CAND, inline = INLINE_COL )

// -- RSI plot config

string GROUP_PLOT = "Config » RSI Plot"
i_source    = input( ohlc4,         "Source",               input.source,   group = GROUP_PLOT )
i_lenRSI    = input( 7,             "Length",               input.integer,  group = GROUP_PLOT,
                  minval = 1 )
i_mode      = input( true,          "Smoothed Mode RSI?",   input.bool,     group = GROUP_PLOT,
                  tooltip = TT_SMRSI )
i_showPlot  = input( true,          "Show RSI Plot?",       input.bool,     group = GROUP_PLOT )
i_showHist  = input( true,          "Show RSI Histogram?",  input.bool,     group = GROUP_PLOT )

// -- Stochastic RSI plots config

string GROUP_STOCH = "Config » Stochastic RSI Plot"
string INLINE_STDS = "Stoch Draw States"
i_showStoch = input( false,         "Show Stochastic? ",    input.bool,     group = GROUP_STOCH, inline = INLINE_STDS,
                  tooltip = TT_STOCH )
i_ribbon    = input( true,          "Ribbon?",              input.bool,     group = GROUP_STOCH, inline = INLINE_STDS )
i_smoothK   = input( 3,             "Smoothing K",          input.integer,  group = GROUP_STOCH,
                  minval = 1 )
i_smoothD   = input( 3,             "Smoothing D",          input.integer,  group = GROUP_STOCH,
                  minval = 1 )
i_stochLen  = input( 14,            "Stochastic Length",    input.integer,  group = GROUP_STOCH,
                  minval = 1 )
i_stochFit  = input( 80,            "Stoch Scaling %",      input.integer,  group = GROUP_STOCH,
                  minval = 1, maxval = 100, tooltip = TT_STFIT )

// -- Channel OB/OS config

string GROUP_CHAN = "Config » OB/OS Boundaries"
i_upper     = input( 20,            "OB",                   input.integer,  group = GROUP_CHAN, inline = "OB",
                  minval = 1, maxval = 50 )
i_upperx    = input( 30,            "OB Extreme",           input.integer,  group = GROUP_CHAN, inline = "OB",
                  minval = 1, maxval = 50 )

i_lower     = input( -20,           "OS",                   input.integer,  group = GROUP_CHAN, inline = "OS",
                  minval = -50, maxval = -1 )
i_lowerx    = input( -30,           "OS Extreme",           input.integer,  group = GROUP_CHAN, inline = "OS",
                  minval = -50, maxval = -1 )

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                          ====== FUNCTIONS ======                           //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

//  zero median rsi helper function, just subtracts 50.
f_zrsi( _source, _length ) => rsi( _source, _length ) - 50

//  zero median stoch helper function, subtracts 50 and includes % scaling
f_zstoch( _source, _length, _smooth, _scale ) =>
    float _zstoch   = stoch( _source, _source, _source, _length) - 50
    float _smoothed = sma( _zstoch, _smooth )
    float _scaled   = ( _smoothed / 100 ) * _scale

//  mode selectable rsi function for standard, or smoothed output
f_rsi( _source, _length, _mode ) =>

    //  get base rsi
    float _zrsi = f_zrsi( _source, _length )

    //  smoothing in a manner similar to HA open, but rather using the realtime
    //  rsi in place of the prior close value.
    var float _smoothed = na
    _smoothed := na( _smoothed[1] ) ? _zrsi : ( _smoothed[1] + _zrsi ) / 2

    //  return the requested mode
    _mode ? _smoothed : _zrsi

//  RSI Heikin-Ashi generation function
f_rsiHeikinAshi( _length ) =>

    //  get close rsi
    float _closeRSI = f_zrsi( close, _length )

    //  emulate "open" simply by taking the previous close rsi value
    float _openRSI  = nz( _closeRSI[1], _closeRSI )

    //  the high and low are tricky, because unlike "high" and "low" by
    //  themselves, the RSI results can overlap each other. So first we just go
    //  ahead and get the raw results for high and low, and then..
    float _highRSI_raw  = f_zrsi( high, _length )
    float _lowRSI_raw   = f_zrsi( low, _length )
    //  ..make sure we use the highest for high, and lowest for low
    float _highRSI  = max( _highRSI_raw, _lowRSI_raw )
    float _lowRSI   = min( _highRSI_raw, _lowRSI_raw )

    //  ha calculation for close
    float _close    = ( _openRSI + _highRSI + _lowRSI + _closeRSI ) / 4

    //  ha calculation for open, standard, and smoothed/lagged
    var float _open = na
    _open  := na( _open[ i_smoothing ] ) ? ( _openRSI + _closeRSI ) / 2 :
              ( ( _open[1] * i_smoothing ) + _close[1] ) / ( i_smoothing + 1 )

    //  ha high and low min-max selections
    float _high     = max( _highRSI, max( _open, _close ) )
    float _low      = min( _lowRSI,  min( _open, _close ) )

    //  return the OHLC values
    [ _open, _high, _low, _close ]

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                   ====== SERIES, LINES and LABELS ======                   //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

//  standard, or ha smoothed rsi for the line plot and/or histogram
float RSI = f_rsi( i_source, i_lenRSI, i_mode )

//  stoch stuff
float StochK = f_zstoch( RSI, i_stochLen, i_smoothK, i_stochFit )
float StochD = sma( StochK, i_smoothD )

//  get OHLC values to use in the plotcandle()
[ O, H, L, C ] = f_rsiHeikinAshi( i_lenHARSI )

//  candle body colouring
color bodyColour    = C > O ? i_colUp : i_colDown
color wickColour    = i_colWick

//  shadow, invisible
color colShadow     = color.rgb( 0, 0, 0, 20 )
color colNone       = color.rgb( 0, 0, 0, 100 )

//  rsi color
color colRSI        = color.rgb( 250, 200, 50, 0 )

//  stoch ribbon fill
color colStochK     = color.new( #0094FF, 0 )
color colStochD     = color.new( #FF6A00, 0 )
color colStochFill  = StochK >= StochD ? color.new( colStochK, 50 ) : color.new( colStochD, 50 )

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                     ====== DRAWING and PLOTTING ======                     //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

//  zero median RSI channel hlines
upperx  = hline( i_upperx,  "OB Extreme",   color.new( color.silver, 60 ) )
upper   = hline( i_upper,   "OB",           color.new( color.silver, 80 ) )
median  = hline( 0,         "Median",       color.orange, hline.style_dotted )
lower   = hline( i_lower,   "OS",           color.new( color.silver, 80 ) )
lowerx  = hline( i_lowerx,  "OS Extreme",   color.new( color.silver, 60 ) )

//  channel fill
fill( upper, upperx, color.new( color.red, 90 ),    title = "Background Fill OB" )
fill( upper, lower,  color.new( color.blue, 90 ),   title = "Background Channel" )
fill( lower, lowerx, color.new( color.green, 90 ),  title = "Background Fill OS" )

//  histogram first, so it is on the bottom of the plot/candle draw stack
plot( i_showHist ? RSI : na,    "RSI Histogram",    color.new( color.silver, 80 ),  1, plot.style_histogram )

//  make our HA rsi candles
plotcandle( O, H, L, C, "HARSI", bodyColour, wickColour, bordercolor = bodyColour )

//  RSI overlay plot
plot( i_showPlot ? RSI : na,                    "RSI Shadow",       colShadow,  3 )
plot_rsi    = plot( i_showPlot ? RSI : na,      "RSI Overlay",      colRSI,     1 )

//  Stochastic RSI plots and fill
plot( i_showStoch ? StochK : na,                "Stoch K Shadow",   not i_ribbon ? colShadow : colNone,  3 )
plot( i_showStoch ? StochD : na,                "Stoch D Shadow",   not i_ribbon ? colShadow : colNone,  3 )
plot_stochK = plot( i_showStoch ? StochK : na,  "Stoch K",          not i_ribbon ? colStochK : colNone,  1 )
plot_stochD = plot( i_showStoch ? StochD : na,  "Stoch D",          not i_ribbon ? colStochD : colNone,  1 )
fill( plot_stochK, plot_stochD, i_ribbon ? colStochFill : na )

// -- PEANUT