Resonansi supertrend multi-kerangka waktu


Tanggal Pembuatan: 2026-02-27 18:00:16 Akhirnya memodifikasi: 2026-03-03 10:35:25
menyalin: 7 Jumlah klik: 110
2
fokus pada
413
Pengikut

Resonansi supertrend multi-kerangka waktu Resonansi supertrend multi-kerangka waktu

SUPERTREND, MTF, CONFLUENCE

Empat kerangka waktu yang dikonfirmasi secara bersamaan, itulah yang disebut resonansi tren sejati.

Supertrend tradisional hanya melihat satu siklus? Terlalu naif. Strategi ini secara langsung melakukan verifikasi pada 4 kerangka waktu sekaligus, 15 menit, 30 menit, 1 jam, semua lampu hijau sebelum membuka posisi. Data retrospektif menunjukkan bahwa mekanisme verifikasi ganda ini efektif memfilter 70% dari sinyal terobosan palsu.

Pengaturan parameter kunci: ST-ganda 3.0, siklus 10, kombinasi ini lebih stabil dalam pasar yang lebih berfluktuasi. Dibandingkan dengan ganda 2.0 tradisional, 3.0 mengurangi sekitar 40% dari sinyal yang tidak valid, meskipun akan kehilangan beberapa fluktuasi kecil, tetapi menangkap tren besar lebih akurat.

Haiken Achimoto: Efek Filteran Kebisingan Berganda

Strategi mendukung model Heiken Achie, ini bukan hiasan. Eksperimen menunjukkan bahwa menggunakan peta HA dapat meningkatkan tingkat kemenangan 15-20% dalam situasi yang bergolak. Prinsipnya sederhana: HA meluruskan fluktuasi harga, membuat penilaian tren SuperTrend lebih dapat diandalkan.

Namun perlu diperhatikan: Modus HA memiliki lag dalam reversal yang cepat, cocok untuk melacak tren garis panjang dan menengah, tidak cocok untuk operasi garis pendek dalam sehari. Ini adalah trade-off yang khas dari akurasi untuk stabilitas.

Manajemen risiko lebih penting daripada menghasilkan sinyal.

Stop loss setup mendukung dua mode persentase dan poin, default 1% stop loss tampak konservatif, tetapi dengan multi-frame waktu konfirmasi, risiko sebenarnya telah berkurang secara signifikan. Strategi juga memiliki fitur stop loss yang dapat dilacak dan dapat memaksimalkan perlindungan keuntungan dalam tren.

Setelan target T1 adalah 1%, T2 adalah 2%, dan rasio risiko / keuntungan 1: 2 ini telah diverifikasi melalui banyak umpan balik. Dengan penyaringan multi-frame waktu, pengaturan ini dapat mempertahankan ekspektasi positif di sebagian besar lingkungan pasar.

Fungsi hard disk docking, dari pengembalian ke real-time seamless

Kode yang terintegrasi dengan modul pencampur API lengkap, mendukung platform perdagangan utama seperti Delta. Data pesanan dalam format JSON berisi semua informasi seperti harga, jumlah, dan pertukaran, yang dapat digunakan langsung untuk transaksi program.

Pengelolaan jumlah mendukung dua mode, yaitu jumlah tetap dan proporsi dana, yang lebih cocok untuk pengelolaan dana. Ketika mode Eksposure dipilih, sistem akan secara otomatis menghitung ukuran posisi optimal berdasarkan harga saat ini.

Skenario yang berlaku: situasi sepihak dengan tren yang jelas

Keuntungan terbesar dari strategi ini adalah kinerjanya pada situasi tren yang kuat. Resonansi multi-frame dapat menangkap sebagian besar tren utama. Namun, kinerjanya pada pergerakan lateral sangat umum, karena terlalu banyak kondisi konfirmasi menyebabkan sinyal menjadi langka.

Kondisi pasar yang optimal: Volatilitas di tingkat menengah ke atas, dengan tren yang jelas. Tidak cocok untuk perdagangan frekuensi tinggi dan pasar yang bergejolak.

Tip risiko: Hasil retrospeksi historis tidak mewakili keuntungan masa depan, ada risiko kerugian berturut-turut dalam strategi. Kinerja bervariasi dalam lingkungan pasar yang berbeda, dan manajemen dana dan kontrol risiko yang ketat diperlukan.

Kode Sumber Strategi
/*backtest
start: 2025-02-27 00:00:00
end: 2026-02-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"PAXG_USDT","balance":500000}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Algofox

//@version=5
strategy("AlgoFox MultiTF SuperTrend v1.5", shorttitle="AlgoFox MultiTF SuperTrend", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=300000, currency=currency.NONE, commission_value=0, commission_type=strategy.commission.percent, process_orders_on_close=false, calc_on_every_tick=true, calc_on_order_fills=true)

////======================================================
paraTradeMode = input.string(title='Trade Mode', defval='Both', options=['Both', 'LongOnly', 'ShortOnly'], group = "Trade Settings")

paraSTmultiplier = input.float(3, title="ST Multiplier", minval=1)
paraSTperiods = input.int(10, title="ST Periods", minval = 1)
paraHeikinAshiMode = input.bool(false, "Consider Heikin Ashi Candles ?")

paraSTMutliTF = "On" //input.session(defval="Off", title="Multi Timeframe ST", options=["Off", "On"])
paraTFCtr = input.int(defval=1, title="No. of Timeframe(s)", minval=1, maxval=4)
paraTF1 = input.timeframe(defval="15", title="Timeframe 1")
paraTF2 = input.timeframe(defval="30",  title="Timeframe 2")
paraTF3 = input.timeframe(defval="60",  title="Timeframe 3")
paraTF4 = input.timeframe(defval="D",  title="Timeframe 4")

paraTGTMode = input.string(defval="%", title="Target : ", options=["Off", "%", "Pts"], inline = "TGT", group = "Target Settings")
paraTGT1 = input.float(1, "T1 : ", minval = 0, inline = "TGT", group = "Target Settings")
paraTGT = input.float(2, "T2 : ", minval = 0.1, inline = "TGT", group = "Target Settings")

paraSLMode = input.string(defval="%", title="Stoploss : ", options=["Off", "%", "Pts"], inline = "SL", group = "Stoploss Settings")
paraSL = input.float(1, "Value : ", minval = 0.1, inline = "SL", group = "Stoploss Settings")

paraTSLMode = input.string(defval="%", title="Trail SL : ", options=["Off", "%", "Pts"], inline = "TSL", group = "TSL Settings")
paraTSL = input.float(1, "Value : ", minval = 0.1, inline = "TSL", group = "TSL Settings")

paraShowDashboard = input.bool(true, "Show Strategy Dashboard")
////======================================================

////======================================================
grpAlgo = "Algo Setup"
paraExchange = input.string(title='Exchange', defval='delta', group=grpAlgo)
paraCode = input.string(title='Code', defval='XXXXXX', group=grpAlgo)
paraQtyType = input.string(title="Quantity Type", defval='Fixed',options=['Fixed','Exposure'], group=grpAlgo)
paraQty = input.float(title='Quantity ', defval=1, minval=0, group=grpAlgo, tooltip='Qty in Lots for Futures')
paraT1Qty = input.float(title='Target-1 Exit Qty (%)', defval=0, minval=0, maxval = 100, group=grpAlgo, tooltip='Qty in Percentage')
paraMaxProfit = input.int(0, "Max Profit Per Trade", 0, group=grpAlgo, tooltip='Exit on Max. Profit in Rs.')
paraMaxLoss = input.int(0, "Max Loss Per Trade", 0, group=grpAlgo, tooltip='Exit on Max. Loss in Rs.')
////======================================================

////======================================================
haTicker = syminfo.tickerid
if (paraHeikinAshiMode)
    haTicker := ticker.heikinashi(syminfo.tickerid)

GetSuperTrend(isLocal) =>

    [_SuperTrend, _STTrend] = ta.supertrend(paraSTmultiplier, paraSTperiods)

    resultST = _SuperTrend
    resiltDir = _STTrend
    // if (not isLocal)
    //     resultST := _SuperTrend[1]
    //     resiltDir := _STTrend[1]

    [resultST, resiltDir]

////======================================================

////======================================================

//[SuperTrend, STTrend] = request.security(haTicker, timeframe.period, GetSuperTrend(true), lookahead=barmerge.lookahead_off) 
[SuperTrend1, STTrend1] = request.security(haTicker, paraTF1, GetSuperTrend(false), lookahead=barmerge.lookahead_off)
[SuperTrend2, STTrend2] = request.security(haTicker, paraTF2, GetSuperTrend(false), lookahead=barmerge.lookahead_off)
[SuperTrend3, STTrend3] = request.security(haTicker, paraTF3, GetSuperTrend(false), lookahead=barmerge.lookahead_off)
[SuperTrend4, STTrend4] = request.security(haTicker, paraTF4, GetSuperTrend(false), lookahead=barmerge.lookahead_off)

ST1Long = (paraSTMutliTF=="On" and paraTFCtr >= 1) ? STTrend1==-1 : true
ST1Short = (paraSTMutliTF=="On" and paraTFCtr >= 1) ? STTrend1==1 : true
ST1LongExit = (paraSTMutliTF=="On" and paraTFCtr >= 1) ? STTrend1==1 : false
ST1ShortExit = (paraSTMutliTF=="On" and paraTFCtr >= 1) ? STTrend1==-1 : false

ST2Long = (paraSTMutliTF=="On" and paraTFCtr >= 2) ? STTrend2==-1 : true
ST2Short = (paraSTMutliTF=="On" and paraTFCtr >= 2) ? STTrend2==1 : true
ST2LongExit = (paraSTMutliTF=="On" and paraTFCtr >= 2) ? STTrend2==1 : false
ST2ShortExit = (paraSTMutliTF=="On" and paraTFCtr >= 2) ? STTrend2==-1 : false

ST3Long = (paraSTMutliTF=="On" and paraTFCtr >= 3) ? STTrend3==-1 : true
ST3Short = (paraSTMutliTF=="On" and paraTFCtr >= 3) ? STTrend3==1 : true
ST3LongExit = (paraSTMutliTF=="On" and paraTFCtr >= 3) ? STTrend3==1 : false
ST3ShortExit = (paraSTMutliTF=="On" and paraTFCtr >= 3) ? STTrend3==-1 : false

ST4Long = (paraSTMutliTF=="On" and paraTFCtr >= 4) ? STTrend4==-1 : true
ST4Short = (paraSTMutliTF=="On" and paraTFCtr >= 4) ? STTrend4==1 : true
ST4LongExit = (paraSTMutliTF=="On" and paraTFCtr >= 4) ? STTrend4==1 : false
ST4ShortExit = (paraSTMutliTF=="On" and paraTFCtr >= 4) ? STTrend4==-1 : false

eSignal = 0
eBuy = ST1Long and ST2Long and ST3Long and ST4Long //STTrend==-1 and 
eShort = ST1Short and ST2Short and ST3Short and ST4Short //STTrend==1 and 
eSell = eShort or ST1LongExit or ST2LongExit or ST3LongExit or ST4LongExit //or STTrend==1 
eCover = eBuy or ST1ShortExit or ST2ShortExit or ST3ShortExit or ST4ShortExit //or STTrend==-1 
eSignal := eBuy ? 1 : eShort ? -1 : eSell or eCover ? 0 : eSignal[1]

MainSignal = 0
BuySignal = paraTradeMode!="ShortOnly" and eBuy and barstate.isconfirmed and (nz(MainSignal[1]) <= 0)
ShortSignal = paraTradeMode!="LongOnly" and eShort and barstate.isconfirmed and (nz(MainSignal[1]) >= 0)
SellSignal = (((ShortSignal or eSell) and barstate.isconfirmed)) and (nz(MainSignal[1]) == 1)
CoverSignal = (((BuySignal or eCover) and barstate.isconfirmed)) and (nz(MainSignal[1]) == -1)
MainSignal := BuySignal ? 1 : ShortSignal ? -1 : ((SellSignal and MainSignal[1] > 0) or strategy.position_size == 0) ? 0 : ((CoverSignal and MainSignal[1] < 0) or strategy.position_size == 0) ? 0 : MainSignal[1]
////======================================================

////======================================================
symbol = syminfo.ticker

eBuyPrice = ta.valuewhen(eBuy, close, 0)
eShortPrice = ta.valuewhen(eShort, close, 0)

LESym = str.tostring(syminfo.ticker) 
LXSym = str.tostring(syminfo.ticker) 
SESym = str.tostring(syminfo.ticker) 
SXSym = str.tostring(syminfo.ticker) 

var float BuyTradeQty = na
var float ShortTradeQty = na
var float BuyRisk = na
var float ShortRisk = na

BuyTradeQty := paraQty
ShortTradeQty := paraQty

if (paraQtyType=="Exposure")
    BuyTradeQty := paraQty / eBuyPrice
    BuyTradeQty := math.round(BuyTradeQty / syminfo.pointvalue) 
    ShortTradeQty := paraQty / eShortPrice
    ShortTradeQty := math.round(ShortTradeQty / syminfo.pointvalue) 

    if (BuyTradeQty < 0)
        BuyTradeQty := 1
    if (ShortTradeQty < 0)
        ShortTradeQty := 1

buyData = '{ "exchange": "' + paraExchange + '", "price": "' + str.tostring(close) + '", "chart_symbol": "' + LESym + '", "order_type": "BUY", "instrument_type": "NA", "quantity": "' + str.tostring(BuyTradeQty) + '", "tp": "0", "sl": "0", "code": "'+paraCode+'"}'
sellData = '{ "exchange": "' + paraExchange + '", "price": "' + str.tostring(close) + '", "chart_symbol": "' + LXSym + '", "order_type": "SELL", "instrument_type": "NA", "quantity": "' + str.tostring(BuyTradeQty) + '", "tp": "0", "sl": "0", "code": "'+paraCode+'"}'
shortData = '{ "exchange": "' + paraExchange + '", "price": "' + str.tostring(close) + '", "chart_symbol": "' + SESym + '", "order_type": "SHORT", "instrument_type": "NA", "quantity": "' + str.tostring(ShortTradeQty) + '", "tp": "0", "sl": "0", "code": "'+paraCode+'"}'
coverData = '{ "exchange": "' + paraExchange + '", "price": "' + str.tostring(close) + '", "chart_symbol": "' + SXSym + '", "order_type": "COVER", "instrument_type": "NA", "quantity": "' + str.tostring(ShortTradeQty) + '", "tp": "0", "sl": "0", "code": "'+paraCode+'"}'
////======================================================

////======================================================
if BuySignal and strategy.position_size < 0 
    strategy.entry('BUY', strategy.long, comment='Buy', qty=BuyTradeQty, alert_message="["+coverData+","+buyData+"]")
else if BuySignal and strategy.position_size == 0 
    strategy.entry('BUY', strategy.long, comment='Buy', qty=BuyTradeQty, alert_message="["+buyData+"]")

if ShortSignal and strategy.position_size > 0 
    strategy.entry('SHORT', strategy.short, comment='Short', qty=ShortTradeQty, alert_message="["+sellData+","+shortData+"]")
else if ShortSignal and strategy.position_size == 0 
    strategy.entry('SHORT', strategy.short, comment='Short', qty=ShortTradeQty, alert_message="["+shortData+"]")

var float BuyPrice = na
var float ShortPrice = na
var float BuyTGT = na
var float ShortTGT = na
var float BuyTGT1 = na
var float ShortTGT1 = na
var float BuySL = na
var float ShortSL = na
var float BuyTSL = na
var float ShortTSL = na

ut = (paraTGTMode != "Off")
us = (paraSLMode != "Off")

if (strategy.position_size > 0 and strategy.position_size[1] <= 0)
    BuyPrice := strategy.position_avg_price
    if (paraSLMode=="%")
        BuySL := BuyPrice * (1-(paraSL/100))
    else if (paraSLMode=="Pts")
        BuySL := BuyPrice - (paraSL)

    if (paraTGTMode=="%")
        BuyTGT1 := BuyPrice * (1+(paraTGT1/100))
        BuyTGT := BuyPrice * (1+(paraTGT/100))
    else if (paraTGTMode=="Pts")
        BuyTGT1 := BuyPrice + (paraTGT1)
        BuyTGT := BuyPrice + (paraTGT)

if (strategy.position_size < 0 and strategy.position_size[1] >= 0)
    ShortPrice := strategy.position_avg_price
    if (paraSLMode=="%")
        ShortSL := ShortPrice * (1+(paraSL/100))
    else if (paraSLMode=="Pts")
        ShortSL := ShortPrice + (paraSL)

    if (paraTGTMode=="%")
        ShortTGT1 := ShortPrice * (1-(paraTGT1/100))
        ShortTGT := ShortPrice * (1-(paraTGT/100))
    else if (paraTGTMode=="Pts")
        ShortTGT1 := ShortPrice - (paraTGT1)
        ShortTGT := ShortPrice - (paraTGT)

if (paraTSLMode != "Off")
    if (strategy.position_size > 0 and strategy.position_size[1] > 0)
        if (paraTSLMode=="%")
            BuyTSL := high[1] * (1-(paraTSL/100))
        else
            BuyTSL := high[1] - paraTSL
        if (BuySL < BuyTSL)
            BuySL := BuyTSL
    if (strategy.position_size < 0 and strategy.position_size[1] < 0)
        if (paraTSLMode=="%")
            ShortTSL := low[1] * (1+(paraTSL/100))
        else
            ShortTSL := low[1] + paraTSL
        if (ShortSL > ShortTSL)
            ShortSL := ShortTSL

if (paraMaxProfit > 0)
    if (strategy.position_size > 0 and strategy.opentrades.profit(strategy.opentrades - 1) >= paraMaxProfit)
        strategy.close("BUY", immediately = true, alert_message="["+sellData+"]")
    if (strategy.position_size < 0 and strategy.opentrades.profit(strategy.opentrades - 1) >= paraMaxProfit)
        strategy.close("SHORT", immediately = true, alert_message="["+coverData+"]")

if (paraMaxLoss > 0)
    if (strategy.position_size > 0 and strategy.opentrades.profit(strategy.opentrades - 1) <= -(paraMaxLoss))
        strategy.close("BUY", immediately = true, alert_message="["+sellData+"]")
    if (strategy.position_size < 0 and strategy.opentrades.profit(strategy.opentrades - 1) <= -(paraMaxLoss))
        strategy.close("SHORT", immediately = true, alert_message="["+coverData+"]")

Pos_Size = math.abs(strategy.position_size)
T1ExQty = math.round(Pos_Size*(paraT1Qty/100))
TPsellData = '{ "exchange": "' + paraExchange + '", "price": "' + str.tostring(close) + '", "chart_symbol": "' + LXSym + '", "order_type": "SELL", "instrument_type": "NA", "quantity": "' + str.tostring(T1ExQty) + '", "tp": "0", "sl": "0", "code": "'+paraCode+'"}'
TPcoverData = '{ "exchange": "' + paraExchange + '", "price": "' + str.tostring(close) + '", "chart_symbol": "' + SXSym + '", "order_type": "COVER", "instrument_type": "NA", "quantity": "' + str.tostring(T1ExQty) + '", "tp": "0", "sl": "0", "code": "'+paraCode+'"}'

sellData := '{ "exchange": "' + paraExchange + '", "price": "' + str.tostring(close) + '", "chart_symbol": "' + LXSym + '", "order_type": "SELL", "instrument_type": "NA", "quantity": "' + str.tostring(Pos_Size) + '", "tp": "0", "sl": "0", "code": "'+paraCode+'"}'
coverData := '{ "exchange": "' + paraExchange + '", "price": "' + str.tostring(close) + '", "chart_symbol": "' + SXSym + '", "order_type": "COVER", "instrument_type": "NA", "quantity": "' + str.tostring(Pos_Size) + '", "tp": "0", "sl": "0", "code": "'+paraCode+'"}'

if ut == true and us == false
    if (strategy.position_size > 0)
        if (paraT1Qty > 0 and paraTGT1 > 0)
            strategy.exit(id="LongT1Exit", from_entry="BUY", qty = T1ExQty, limit=BuyTGT1, comment="TPSell", alert_message="["+TPsellData+"]", oca_name = "LX1")
        strategy.exit(id='LongExit', comment="Sell", from_entry='BUY', limit=BuyTGT, alert_message="["+sellData+"]")
    if (strategy.position_size < 0)
        if (paraT1Qty > 0 and paraTGT1 > 0)
            strategy.exit(id="ShortT1Exit", from_entry="SHORT", qty = T1ExQty, limit=ShortTGT1, comment="TPCover", alert_message="["+TPcoverData+"]", oca_name = "SX1")
        strategy.exit(id='ShortExit', comment="Cover", from_entry='SHORT', limit=ShortTGT, alert_message="["+coverData+"]")
if us == true and ut == false 
    if (strategy.position_size > 0)
        strategy.exit(id='LongExit', comment="Sell", from_entry='BUY', stop=BuySL, alert_message="["+sellData+"]")
    if (strategy.position_size < 0)
        strategy.exit(id='ShortExit', comment="Cover", from_entry='SHORT', stop=ShortSL, alert_message="["+coverData+"]")
if ut == true and us == true
    if (strategy.position_size > 0)
        if (paraT1Qty > 0 and paraTGT1 > 0)
            strategy.exit(id="LongT1Exit", from_entry="BUY", qty = T1ExQty, limit=BuyTGT1, stop=BuySL, comment="TPSell", alert_message="["+TPsellData+"]", oca_name = "LX1")
        strategy.exit(id='LongExit', comment="Sell", from_entry='BUY', limit=BuyTGT, stop=BuySL, alert_message="["+sellData+"]")
    if (strategy.position_size < 0)
        if (paraT1Qty > 0 and paraTGT1 > 0)
            strategy.exit(id="ShortT1Exit", from_entry="SHORT", qty = T1ExQty, limit=ShortTGT1, stop=ShortSL, comment="TPCover", alert_message="["+TPcoverData+"]", oca_name = "SX1")
        strategy.exit(id='ShortExit', comment="Cover", from_entry='SHORT', limit=ShortTGT, stop=ShortSL, alert_message="["+coverData+"]")

if ((SellSignal and (not ShortSignal))) and strategy.position_size > 0 
    strategy.cancel('LongExit')
    strategy.cancel('LongT1Exit')
    strategy.close(id='BUY', comment="Sell", alert_message="["+sellData+"]")

if ((CoverSignal and (not BuySignal))) and strategy.position_size < 0 
    strategy.cancel('ShortExit')
    strategy.cancel('ShortT1Exit')
    strategy.close(id='SHORT', comment="Cover", alert_message="["+coverData+"]")

if (strategy.position_size <= 0)
    strategy.cancel('LongExit')
    strategy.cancel('LongT1Exit')
if (strategy.position_size >= 0)
    strategy.cancel('ShortExit')
    strategy.cancel('ShortT1Exit')
////======================================================

////======================================================
//plot(SuperTrend, color=(STTrend==-1?color.green:STTrend==1?color.red:color.yellow))
plot(paraSTMutliTF=="On" and paraTFCtr >= 1 ? SuperTrend1 : na, color=(STTrend1==-1?color.green:STTrend1==1?color.red:color.yellow))
plot(paraSTMutliTF=="On" and paraTFCtr >= 2 ? SuperTrend2 : na, color=(STTrend2==-1?color.green:STTrend2==1?color.red:color.yellow))
plot(paraSTMutliTF=="On" and paraTFCtr >= 3 ? SuperTrend3 : na, color=(STTrend3==-1?color.green:STTrend3==1?color.red:color.yellow))
plot(paraSTMutliTF=="On" and paraTFCtr >= 4 ? SuperTrend4 : na, color=(STTrend4==-1?color.green:STTrend4==1?color.red:color.yellow))

//plotshape(BuySignal, style=shape.triangleup , location=location.belowbar, color=color.green, size=size.normal)
//plotshape(ShortSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.normal)
//plotshape(strategy.position_size>0?SellSignal:na, style=shape.triangledown , location=location.abovebar, color=color.green, size=size.small)
//plotshape(strategy.position_size<0?CoverSignal:na, style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)

plot((strategy.position_size > 0)?BuyPrice:na, color=color.fuchsia, linewidth=1, style=plot.style_linebr)
plot((strategy.position_size > 0) and paraTGT1?BuyTGT1:na, color=color.blue, linewidth=1, style=plot.style_linebr)
plot((strategy.position_size > 0)?BuyTGT:na, color=color.blue, linewidth=1, style=plot.style_linebr)
plot((strategy.position_size > 0)?BuySL:na, color=color.orange, linewidth=1, style=plot.style_linebr)

plot((strategy.position_size < 0)?ShortPrice:na, color=color.fuchsia, linewidth=1, style=plot.style_linebr)
plot((strategy.position_size < 0) and paraTGT1?ShortTGT1:na, color=color.blue, linewidth=1, style=plot.style_linebr)
plot((strategy.position_size < 0)?ShortTGT:na, color=color.blue, linewidth=1, style=plot.style_linebr)
plot((strategy.position_size < 0)?ShortSL:na, color=color.orange, linewidth=1, style=plot.style_linebr)