Conversion of TradingView indicator to MT5

Forums ProRealTime English forum ProBuilder support Conversion of TradingView indicator to MT5

Viewing 2 posts - 1 through 2 (of 2 total)
  • #240870

    Hello! I have the tradingview code which i would love to have converted to mt5!
    i have more of them, so we can help each other out 🙂

    strategy(“Trend Angle 8hr BF 🚀”, overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)
    /////////////// Time Frame ///////////////
    testStartYear = input(2017, “Backtest Start Year”)
    testStartMonth = input(1, “Backtest Start Month”)
    testStartDay = input(1, “Backtest Start Day”)
    testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)
    testStopYear = input(2019, “Backtest Stop Year”)
    testStopMonth = input(12, “Backtest Stop Month”)
    testStopDay = input(31, “Backtest Stop Day”)
    testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)
    testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false
    src=input(ohlc4,title=”source”)
    // definition of “Jurik Moving Average”, by Everget
    jma(_src,_length,_phase,_power) =>
        phaseRatio = _phase < -100 ? 0.5 : _phase > 100 ? 2.5 : _phase / 100 + 1.5
        beta = 0.45 * (_length – 1) / (0.45 * (_length – 1) + 2)
        alpha = pow(beta, _power)
        jma = 0.0
        e0 = 0.0
        e0 := (1 – alpha) * _src + alpha * nz(e0[1])
        e1 = 0.0
        e1 := (_src – e0) * (1 – beta) + beta * nz(e1[1])
        e2 = 0.0
        e2 := (e0 + phaseRatio * e1 – nz(jma[1])) * pow(1 – alpha, 2) + pow(alpha, 2) * nz(e2[1])
        jma := e2 + nz(jma[1])
    //// //// Determine Angle by KyJ //// ////
    angle(_src) =>
        rad2degree=180/3.14159265359  //pi
        ang=rad2degree*atan((_src[0] – _src[1])/atr(14))
    jma_line=jma(src,10,50,1)
    ma=ema(src,input(56))
    jma_slope=angle(jma_line)
    ma_slope=angle(ma)
    ///////////// Rate Of Change /////////////
    source = close
    roclength = input(12, minval=1)
    pcntChange = input(2, minval=1)
    roc = 100 * (source – source[roclength]) / source[roclength]
    emaroc = ema(roc, roclength / 2)
    isMoving() => emaroc > (pcntChange / 2) or emaroc < (0 – (pcntChange / 2))
    /////////////// Strategy ///////////////
    long = ma_slope>=0 and isMoving()
    short = ma_slope<=0 and isMoving()
    last_long = 0.0
    last_short = 0.0
    last_long := long ? time : nz(last_long[1])
    last_short := short ? time : nz(last_short[1])
    long_signal = crossover(last_long, last_short)
    short_signal = crossover(last_short, last_long)
    last_open_long_signal = 0.0
    last_open_short_signal = 0.0
    last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1])
    last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1])
    last_long_signal = 0.0
    last_short_signal = 0.0
    last_long_signal := long_signal ? time : nz(last_long_signal[1])
    last_short_signal := short_signal ? time : nz(last_short_signal[1])
    in_long_signal = last_long_signal > last_short_signal
    in_short_signal = last_short_signal > last_long_signal
    last_high = 0.0
    last_low = 0.0
    last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
    last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])
    sl_inp = input(2.0, title=’Stop Loss %’) / 100
    tp_inp=input(900.0,title=’Take Profit %’) /100
    take_level_l = strategy.position_avg_price * (1 + tp_inp)
    take_level_s = strategy.position_avg_price * (1 – tp_inp)
    since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1])
    since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1])
    slLong = in_long_signal ? strategy.position_avg_price * (1 – sl_inp) : na
    slShort = strategy.position_avg_price * (1 + sl_inp)
    long_sl = in_long_signal ? slLong : na
    short_sl = in_short_signal ? slShort : na
    /////////////// Execution ///////////////
    if testPeriod()
        strategy.entry(“L”,  strategy.long, when=long)
        strategy.entry(“S”, strategy.short, when=short)
        strategy.exit(“L Ex”, “L”, stop=long_sl, limit=take_level_l, when=since_longEntry > 0)
        strategy.exit(“S Ex”, “S”, stop=short_sl, limit=take_level_s, when=since_shortEntry > 0)
    ///////////// Plotting /////////////
    hline(0, title=’Zero line’, color=color.white, linewidth=1)
    plot(ma_slope,title=”ma slope”, linewidth=2,color=ma_slope>=0?color.lime:color.red)
    bgcolor(isMoving() ? long ? color.green : short ? color.red : na : color.white, transp=80)
    bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)
    #240874

    Hello,

    code conversion on ProRealCode forums is free towards ProRealTime platform only, but not free towards other platforms. For paid code conversions towards another platform, you might be interested in getting a quote from the trading programming services section in the “help” menu above, direct link: https://www.prorealcode.com/trading-programming-services/

    Best regards

    1 user thanked author for this post.
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