Indicateur Gold M1 RSI + CE + BJ de Tradingview

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #215136 quote
    FXtonio
    Participant
    Junior

    Bonjour à tous,

    ci dessous un code d’un indicateur de tradingview pour du scalping M1 plutôt efficace (60% de winrate) pour ceux qui veulent le mettre sur  Prt

    ci joint:

    // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © HunterXTrader
    //@version=4
    strategy(“Gold M1 RSI + CE + BJ”, overlay = true)
    // ####################################################
    // RSI
    ma(source, length, type) => sma(source, length)
    rsiLengthInput = input(25, minval=1, title=”RSI Length”, group=”RSI Settings”)
    rsiSourceInput = input(close, “Source”, group=”RSI Settings”)
    maTypeInput = input(“SMA”, title=”MA Type”, options=[“SMA”, “EMA”], group=”MA Settings”)
    maLengthInput = input(150, title=”MA Length”, group=”MA Settings”)
    bbMultInput = 2.0
    upIndic = rma(max(change(rsiSourceInput), 0), rsiLengthInput)
    downIndic = rma(-min(change(rsiSourceInput), 0), rsiLengthInput)
    rsiIndic = downIndic == 0 ? 100 : upIndic == 0 ? 0 : 100 – (100 / (1 + upIndic / downIndic))
    rsiMA = ma(rsiIndic, maLengthInput, maTypeInput)
    // #################################
    // DEMA
    length = input(170, minval=1)
    src = input(close, title=”Source”)
    e1 = ema(src, length)
    e2 = ema(e1, length)
    dema = 2 * e1 – e2
    plot(dema, “DEMA”, color= color.white)
    // ##############################################
    // CHANDELIER EXIT
    lengthCE = input(title=”ATR Period”, type=input.integer, defval=1)
    mult = input(title=”ATR Multiplier”, type=input.float, step=0.1, defval=2.3)
    showLabels = input(title=”Show Buy/Sell Labels ?”, type=input.bool, defval=true)
    useClose = input(title=”Use Close Price for Extremums ?”, type=input.bool, defval=true)
    atr = mult * atr(lengthCE)
    longStop = (useClose ? highest(close, lengthCE) : highest(lengthCE)) – atr
    longStopPrev=nz(longStop[1],longStop)
    longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop
    shortStop = (useClose ? lowest(close, lengthCE) : lowest(lengthCE)) + atr
    shortStopPrev = nz(shortStop[1], shortStop)
    shortStop := close[1] < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop
    var int dir = 1
    dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir
    var color longColor = color.green
    var color shortColor = color.red
    buySignalCE = dir == 1 and dir[1] == -1
    plotshape(buySignalCE and showLabels ? longStop : na, title=”Buy Label”, text=”Buy”, location=location.absolute, style=shape.labelup, size=size.tiny, color=longColor, textcolor=color.white, transp=0)
    sellSignalCE = dir == -1 and dir[1] == 1
    plotshape(sellSignalCE and showLabels ? shortStop : na, title=”Sell Label”, text=”Sell”, location=location.absolute, style=shape.labeldown, size=size.tiny, color=shortColor, textcolor=color.white, transp=0)
    midPricePlot = plot(ohlc4, title=””, style=plot.style_circles, linewidth=0, display=display.none, editable=false)
    // #########################################
    // BJ SUPERSCRIPT
    // ¦¦¦¦¦¦+¦¦¦¦¦¦¦¦+¦¦¦¦¦¦+¦¦¦¦¦¦¦+¦¦¦¦¦¦¦¦+¦¦¦+¦¦¦¦¦+¦¦¦+¦¦¦¦¦¦+
    // ¦¦+–¦¦+¦¦¦¦¦¦¦¦¦¦+–¦¦+¦¦+–¦¦+¦¦+—-+¦¦¦¦¦¦¦¦¦¦¦¦¦¦+¦¦¦¦¦¦
    // ¦¦¦¦¦¦-+¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦++¦¦¦¦¦¦¦+¦¦¦¦¦¦¦¦¦¦¦¦+¦¦¦¦+¦¦¦
    // ¦¦+–¦¦+¦¦+¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+–¦¦+¦¦¦¦¦+¦¦+¦¦¦¦¦¦¦¦¦¦¦¦+¦¦++¦¦¦
    // ¦¦¦¦¦¦-++¦¦¦¦¦+++¦¦¦¦¦++¦¦¦¦¦¦¦¦+¦¦¦¦¦¦+++¦¦¦¦¦¦++¦¦¦¦+-+¦¦¦¦
    // +—–+¦¦+—-+¦¦+—-+¦+-+¦¦+-+¦+—–+¦¦+—–+¦+-+¦¦¦¦¦+-+
    strat           = “Bj Reversal”
    strat_val       = 0
    bjrev           = strat_val < 1
    hema            = strat_val > 0 and                 strat_val < 2
    trm             =strat_val>1and                 strat_val<3
    rsicol          = strat_val > 2 and                 strat_val < 4
    t3vis           = false
    hemavis         = false
    psarvis         =false
    arrowvis        = false
    // TRM
    tsistrat        = “Fast”
    tsistrat_val    = tsistrat == “Fast” ? 0 :          tsistrat == “Slow” ? 1 : na
    tsifast         = tsistrat_val < 1
    tsislow         =tsistrat_val>0
    longf           = 25
    shortf          = 5
    signalf         = 14
    longs           = 25
    shorts          = 13
    signals         = 13
    lenf            = 5
    lens            = 14
    shortvar        = tsifast ? shortf                  : tsislow ? shorts                              : na
    longvar         = tsifast ? longf                   : tsislow ? longs                               : na
    signalvar       = tsifast ? signalf                 : tsislow ? signals                             : na
    tsi             = tsi(close,shortvar,longvar)
    tsl             = ema(tsi, signalvar)
    // HA
    haClose         = (open + high + low + close) / 4
    haOpen          = float(na)
    haOpen          := na(haOpen[1]) ? (open + close) / 2 : (nz(haOpen[1]) + nz(haClose[1])) / 2
    haHigh          = max(high, max(haOpen, haClose))
    haLow           = min(low,  min(haOpen, haClose))
    // RSI Bar Color
    rsistrat        = “Slow”
    rsistrat_val    = rsistrat == “Slow” ? 11 :         rsistrat == “Fast” ? 12 : na
    rsifast         = rsistrat_val > 11
    rsislow         =rsistrat_val<12
    len             =tsifast and trm    ? lenf :
                     tsislow and trm    ? lens :
                     rsifast and rsicol ? lenf :
                     rsislow and rsicol ? lens : lens
    rsi             = rsi(close,len)
    buy1            = crossover(tsi,tsl) and rsi > 50
    buy2            = crossover(rsi,50)  and tsi > tsl
    buy3            = crossover(tsi,tsl) and crossover(rsi,50)
    buy4            = buy1 or buy2 or buy3
    sell1           = crossunder(tsi,tsl) and rsi < 50
    sell2           = crossunder(rsi,50)  and tsi < tsl
    sell3           = crossunder(tsi,tsl) and crossunder(rsi,50)
    sell4           = sell1 or sell2 or sell3
    buy             = tsi > tsl and  rsi > 50
    sell            =tsi<tsland  rsi<50
    rsicross        =cross         (rsi,50)
    rsiup           =crossover     (rsi,50)
    rsidwn          =crossunder    (rsi,50)
    rsiob           =crossover     (rsi,70)
    rsios           =crossunder    (rsi,30)
    rsicd           =crossunder    (rsi,70)
    rsicu           =crossover     (rsi,30)
    // Bj Reversal
        ///T3 MA5
    aLength         = 6
    AxPrice         = close
    axe1            = ema(AxPrice, aLength)
    axe2            = ema(axe1, aLength)
    axe3            = ema(axe2, aLength)
    axe4            = ema(axe3, aLength)
    axe5            = ema(axe4, aLength)
    axe6            = ema(axe5, aLength)
    ab              = 0.7
    ac1             = -ab*ab*ab
    ac2             = 3*ab*ab+3*ab*ab*ab
    ac3             = -6*ab*ab-3*ab-3*ab*ab*ab
    ac4             = 1+3*ab+ab*ab*ab+3*ab*ab
    anT3Average     = ac1 * axe6 + ac2 * axe5 + ac3 * axe4 + ac4 * axe3
    colOne          =anT3Average>anT3Average[1]
    colTwo          =anT3Average<anT3Average[1]
    color2          = colOne ? #64b5f6 : colTwo ? #ef5350 : na
    p2              = plot(anT3Average, color= t3vis ? color2 : bjrev ? color2 : true ? na : #ffffff , transp=100, title=”T3 Fast”)
        ///T3 MA8
    Length          = 8
    xPrice          = close
    xe1             = ema(xPrice, Length)
    xe2             = ema(xe1, Length)
    xe3             = ema(xe2, Length)
    xe4             = ema(xe3, Length)
    xe5             = ema(xe4, Length)
    xe6             = ema(xe5, Length)
    b               = 0.7
    c1              = -b*b*b
    c2              = 3*b*b+3*b*b*b
    c3              = -6*b*b-3*b-3*b*b*b
    c4              = 1+3*b+b*b*b+3*b*b
    nT3Average      = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
    upCol           =nT3Average>nT3Average[1]
    downCol         = nT3Average < nT3Average[1]
    myColor         = upCol ? #64b5f6 : downCol ? #ef5350 : na
    p1              = plot(nT3Average, color=t3vis ? myColor : bjrev ? myColor : true ? na : #ffffff , transp=100, title=”T3 Slow”)
    revbar          = cross(close, nT3Average)
    trendbar        = cross(nT3Average, anT3Average)
    revup           = crossover(close, nT3Average)
    revdwn          = crossunder(close, nT3Average)
    // Bj Reversal Bar Color and Fill
    uc              = (close >   nT3Average) and            (anT3Average >= nT3Average)
    dc              = (close <   nT3Average) and            (anT3Average <= nT3Average)
    dr              =(close<   nT3Average)and            (anT3Average>=nT3Average)
    ur              =(close>   nT3Average)and            (anT3Average<=nT3Average)
    hauc            = (haClose > nT3Average) and            (anT3Average >= nT3Average)
    hadc            = (haClose < nT3Average) and            (anT3Average <= nT3Average)
    hadr            = (haClose < nT3Average) and            (anT3Average >= nT3Average)
    haur            = (haClose > nT3Average) and            (anT3Average <= nT3Average)
    hadu            = haClose >= haOpen
    hadd            = haClose <  haOpen
    fillData        = nT3Average < anT3Average
    fillDtat        = nT3Average > anT3Average
    fillCol         = fillData ? #64b5f6 :                  fillDtat ? #ef5350 : na
    fill            (p1,p2, color=t3vis ? fillCol :         bjrev ? fillCol : na,               transp=15, title=”T3 Fill”)
    // HEMA
    hemaslow        = 5
    bjhemaslow      = ema (haOpen, hemaslow)
    up              = bjhemaslow > bjhemaslow[1]
    down            = bjhemaslow < bjhemaslow[1]
    mycolor         = up ? #64b5f6 : down ? #d32f2f : na
    bjhemafast      = ema(hl2, 1)
    hemaslow2       = 9
    bjhemaslow2     = ema(haOpen, hemaslow2)
    up2             = bjhemaslow2 > bjhemaslow2[1]
    down2           = bjhemaslow2 < bjhemaslow2[1]
    mycolor2        = up2 ? #64b5f6 : down2 ? #d32f2f : na
    hemaslow3       = 21
    bjhemaslow3     = ema(haOpen, hemaslow3)
    up3             = bjhemaslow3 > bjhemaslow3[1]
    down3           = bjhemaslow3 < bjhemaslow3[1]
    mycolor3        = up3 ? #64b5f6 : down3 ? #d32f2f : na
    emasig          = cross (close, bjhemaslow) and         cross(close, bjhemaslow2)
    // HEMA area plot fill
    hfillData       = bjhemaslow > bjhemafast
    hfillData2      = bjhemaslow < bjhemafast
    hfillDtat       = bjhemaslow2 > bjhemaslow
    hfillDtat2      = bjhemaslow2 < bjhemaslow
    hfillDat        = bjhemaslow3 > bjhemaslow2
    hfillDat2       = bjhemaslow3 < bjhemaslow2
    hemauc          =               (close> bjhemaslow)  and (close > bjhemaslow2)
    hemadc          =               (close< bjhemaslow)  and (close < bjhemaslow2)
    crossup1        = crossover     (close, bjhemaslow)  and (close > bjhemaslow2)
    crossup2        = crossover     (close, bjhemaslow2) and (close > bjhemaslow)
    crossup3        = crossover     (close, bjhemaslow2) and crossover(close, bjhemaslow)
    crossdown1      = crossunder    (close, bjhemaslow)  and (close < bjhemaslow2)
    crossdown2      = crossunder    (close, bjhemaslow2) and (close < bjhemaslow)
    crossdown3      = crossunder    (close, bjhemaslow2) and crossunder(close, bjhemaslow)
    Hcrossup        = crossup1   or crossup2   or crossup3
    Hcrossdwn       = crossdown1 or crossdown2 or crossdown3
    // alertcondition   (revbar,           title=’Bj Reversal’,            message=’Reversal candle is forming on {{interval}} chart. Price is {{close}}’)
    // alertcondition   (revup,            title=’Reversal Up’,            message=’Reversal up on {{interval}} chart. Price is {{close}}’)
    // alertcondition   (revdwn,           title=’Reversal Down’,          message=’Reversal down on {{interval}} chart. Price is {{close}}’)
    //  ____  __ _  ____
    // (  __)(  ( \(    \
    //  ) _) /    / ) D (
    // (____)\_)__)(____/
    // fillCol         = fillData ? #64b5f6 :                  fillDtat ? #ef5350 : na
    buySignal =  rsiIndic > rsiMA  and close > dema and buySignalCE and fillCol == #64b5f6 and (rsiIndic – rsiMA) > 1.8 // 2.8
    sellSignal = rsiIndic < rsiMA  and close < dema and sellSignalCE and fillCol == #ef5350 and (rsiIndic – rsiMA) < -1.8 //-2.8
    // === INPUT DATE RANGE ===
    fromMonth  = 1
    fromDay    = 1
    fromYear   = 2021
    thruMonth  = 1
    thruDay    = 1
    thruYear   = 2112
    // === INPUT TIME RANGE ===
    entryTime  = ‘0000-0000’ //input(‘0000-0000’,  title = “Entry Time”, type=input.session)   // ‘0000-0000′ is anytime to enter //’0800-1800’
    exitTime   = ‘0000-0000’                                                     // ‘0000-0000′ is anytime to exit //’0800-1800’
    // === DATE & TIME RANGE FUNCTIONS ===
    isDate() =>                                                               // create function “within window of dates”
        start  = timestamp(fromYear, fromMonth, fromDay, 00, 00)              // date start
        finish = timestamp(thruYear, thruMonth, thruDay, 23, 59)              // date finish
        isDate = time >= start and time <= finish                             // current date is “within window of dates”
    isTime(_position) =>                                                      // create function “within window of time”
        isTime = time(timeframe.period, _position)// + ‘:1234567’)               // current time is “within window of time”
    // // Période d’analyse
    use_period = true //input(type=input.bool, defval=true, title=”Période spécifique ?”, group=”periode”)
    startDate = timestamp(“01 Jan 2020”) // input(timestamp(“01 Jan 2020”), “Date de début”, group=”periode”, type = input.time)
    endDate = timestamp(“01 Jan 2025”) //input(timestamp(“01 Jan 2025”), “Date de fin”, group=”periode”, type = input.time)
    // //——————————————
    // //————-Indicateurs——————
    inDateRange = use_period ? ((time >= startDate) and (time < endDate)) : true
    //—————————————–
    //————Stratégie——————–
    //SL & TP
    // Définition de la gestion de risque
    // risk_pct = 1 // Pourcentage du capital à risquer
    // capital = 10000 // Capital initial
    // risk_amt = (risk_pct / 100) * capital // Montant à risquer
    // stop_loss_distance = atr(10) // Distance du stop loss
    // take_profit_distance = stop_loss_distance * 1.5 // Distance du take profit
    // stop_loss_price = valuewhen(high == highest(high, 10), high, 0) // Dernier swing high des 10 dernières bougies
    // take_profit_price = close + take_profit_distance // Prix du take profit
    // Calcul du montant de la position en fonction du risque
    // position_size = (risk_amt / stop_loss_distance) / syminfo.mintick
    //strategy.position_size := position_size
    lowestt = 0.0
    highestt = 0.0
    if buySignal
        lowestt := lowest(low, 2)
        highestt := close + (close – lowestt)*1.5
    if sellSignal
        lowestt := highest(high, 2)
        highestt := close + (close – lowestt)*1.5
    // var SL = 0.0
    // var TP = 0.0
    isTradeInTime = time >= timestamp(“GMT+2”, year, month, dayofmonth, 7, 30) and time <= timestamp(“GMT+2”, year, month, dayofmonth, 20, 10)
    if (isTradeInTime)
        open_long = buySignal
        open_short = sellSignal
        if open_long and strategy.opentrades == 0
            strategy.entry(“BUY”, true)//, when = isDate() and isTime(entryTime))
            alert(‘Buy Signal Alert’, alert.freq_once_per_bar_close)
            //strategy.close(“long”, when = sellSignal)
        //strategy.exit(‘long exit’,’long’, profit = tp_value, loss = sl_value)//profit = 20, loss = 30) //limit = tp_value, stop = sl_value
        strategy.exit(“Exit Long”, “BUY”, stop = lowestt, limit = highestt)
        if open_short and strategy.opentrades == 0
            strategy.entry(“SELL”, false)//, when = isDate() and isTime(entryTime))
            alert(‘Sell Signal Alert’, alert.freq_once_per_bar_close)
        //strategy.exit(‘short exit’,’short’, profit = tp_value, loss = sl_value) // profit = 20, loss = 30 ) //limit = tp_value, stop = sl_value
        strategy.exit(“Exit Short”, “SELL”, stop = lowestt, limit = highestt)
    //—————————————–
    //————–Backtest——————-
    strategy_pnl = strategy.netprofit + strategy.openprofit
    bnh_strategy_pnl_pcnt = (strategy_pnl / strategy.initial_capital) * 100
    float bnh_start_bar = na
    bnh_start_bar := na(bnh_start_bar[1]) or inDateRange != true? close : bnh_start_bar[1]
    float bnl_buy_hold_equity = na
    bnl_buy_hold_equity :=  inDateRange == true ? ((close – bnh_start_bar)/bnh_start_bar) * 100 : bnl_buy_hold_equity[1]
    bnh_vs_diff = bnh_strategy_pnl_pcnt – bnl_buy_hold_equity
    bnh_diff_color = bnh_vs_diff > 0 ? color.new(color.green, inDateRange ? 60 : 100) : color.new(color.red, inDateRange ? 60 : 100)
    //—————————————-
    //—————-Table——————-
    // var Table2 = table.new(position.top_right, columns = 2, rows = 5, border_width = 1, bgcolor = color.black, border_color = color.gray)
    // table.cell(table_id = Table2, column = 0, row = 0, text_color=(bnh_strategy_pnl_pcnt>bnl_buy_hold_equity)?color.gray:color.green, text_size = size.normal, text = “Buy & hold profit”)
    // table.cell(table_id = Table2, column = 1, row = 0, text_color=(bnh_strategy_pnl_pcnt>bnl_buy_hold_equity)?color.gray:color.green, text_size = size.normal, text = tostring(bnl_buy_hold_equity, ‘#.##’) + ‘ %’)
    // table.cell(table_id = Table2, column = 0, row = 1, text_color=(bnh_strategy_pnl_pcnt<bnl_buy_hold_equity)?color.gray:color.green, text_size = size.normal, text = “Strategy profit”)
    // table.cell(table_id = Table2, column = 1, row = 1, text_color=(bnh_strategy_pnl_pcnt<bnl_buy_hold_equity)?color.gray:color.green, text_size = size.normal, text = tostring(bnh_strategy_pnl_pcnt, ‘#.##’) + ‘ %’)
    // table.cell(table_id = Table2, column = 0, row = 2, text_color=color.yellow, text_size = size.normal, text = “Winrate”)
    // table.cell(table_id = Table2, column = 1, row = 2, text_color=color.yellow, text_size = size.normal, text = tostring(strategy.wintrades/strategy.closedtrades*100, ‘#.##’) + ‘ %’)
    // table.cell(table_id = Table2, column = 0, row = 3, text_color=color.yellow, text_size = size.normal, text = “Date de début”)
    // table.cell(table_id = Table2, column = 1, row = 3, text_color=color.yellow, text_size = size.normal, text = str.format(“{0,date,dd-MM-YYYY}”,startDate))
    // table.cell(table_id = Table2, column = 0, row = 4, text_color=color.yellow, text_size = size.normal, text = “Date de fin”)
    // table.cell(table_id = Table2, column = 1, row = 4, text_color=color.yellow, text_size = size.normal, text = str.format(“{0,date,dd-MM-YYYY}”, endDate))
    // //Plot the SL &TP
    // var fix_high = 0.0
    // var fix_low = 0.0
    // var fix_close = 0.0
    // if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size > 0
    //     fix_high := highestt// tp_value[1] //highestt
    //     fix_low := lowestt //sl_value[1] //lowestt
    //     fix_close := close[1]
    // //line
    // var line line_up = na
    // var line line_low = na
    // var line line_close = na
    // //box
    // var box box_low = na
    // var box box_up = na
    // if strategy.opentrades > 0 and strategy.opentrades[1]==0 and strategy.position_size > 0
    //     //line
    //     line_up := line.new(bar_index, fix_high, bar_index + 1, fix_high, color = color.green, width = 2)
    //     line_low := line.new(bar_index, fix_low, bar_index + 1, fix_low, color = color.red, width = 2)
    //     line_close := line.new(bar_index, fix_close, bar_index + 1, fix_close, color = color.blue, width = 2)
    //     //box
    //     box_up := box.new(bar_index, fix_high, bar_index + 1, fix_close, border_color = color.new(color.green,70),  bgcolor = color.new(color.green,70))
    //     box_low := box.new(bar_index, fix_close, bar_index + 1, fix_low, border_color = color.new(color.red,70),  bgcolor = color.new(color.red,70))
    // if strategy.opentrades==0 and strategy.opentrades[1]==1
    //     //line
    //     line.set_x2(line_up,bar_index + 2)
    //     line.set_x2(line_low,bar_index + 2)
    //     line.set_x2(line_close,bar_index + 2)
    //     //box
    //     box.set_rightbottom(box_up, bar_index + 2 , fix_close)
    //     box.set_rightbottom(box_low, bar_index + 2 , fix_low)
    #215149 quote
    Nicolas
    Keymaster
    Legend

    Merci de poster des images de l’indicateur original lors d’une demande de conversion.

    Medo Amagar thanked this post
    #215153 quote
    FXtonio
    Participant
    Junior

    Bonjour Nicolas,

    ci-joint.

    Bonne journée.

    Medo Amagar thanked this post
    indicateur.pdf
Viewing 3 posts - 1 through 3 (of 3 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

Indicateur Gold M1 RSI + CE + BJ de Tradingview


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
FXtonio @fxtonio Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by FXtonio
3 years, 3 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 05/24/2023
Status: Active
Attachments: 1 files
Logo Logo
Loading...