
SUPERTREND, MTF, CONFLUENCE
पारंपरिक सुपरट्रेंड केवल एक चक्र को देखता है? यह बहुत ही सरल है। यह रणनीति सीधे चार समय सीमाओं पर एक साथ सत्यापित करती है, 15 मिनट, 30 मिनट, 1 घंटे, और सभी दिन के उजाले के लिए हरे रंग के हैं। बैक-टेस्टिंग डेटा से पता चलता है कि यह बहु-पुष्टि तंत्र 70% झूठे ब्रेक-आउट संकेतों को प्रभावी ढंग से फ़िल्टर कर सकता है।
कुंजी पैरामीटर सेटिंग्सः एसटी गुणांक 3.0, चक्र 10, जो अधिक अस्थिर बाजारों में अधिक स्थिर प्रदर्शन करता है। पारंपरिक 2.0 गुणांक की तुलना में, 3.0 लगभग 40% अमान्य संकेतों को कम करता है, हालांकि कुछ छोटे उतार-चढ़ाव को याद किया जाएगा, लेकिन बड़े रुझानों को अधिक सटीक रूप से पकड़ना होगा।
रणनीति हाइकेन एश मॉडल का समर्थन करती है, यह कोई सजावट नहीं है। प्रयोगों से पता चला है कि हाफ चार्ट का उपयोग करने से उतार-चढ़ाव की स्थिति में जीत की दर में 15-20% की वृद्धि होती है। सिद्धांत सरल हैः हाफ ने कीमतों में उतार-चढ़ाव को चिकना कर दिया है, जिससे सुपरट्रेंड के रुझान को अधिक विश्वसनीय रूप से निर्धारित किया जा सकता है।
लेकिन ध्यान देंः एचए मोड में तेजी से उलटा ट्रेडिंग में देरी होती है, जो कि मध्य-लंबी रेखा प्रवृत्ति ट्रैकिंग के लिए उपयुक्त है, दिन के भीतर छोटी रेखा संचालन के लिए उपयुक्त नहीं है। यह एक विशिष्ट सटीकता-बदलाव स्थिरता व्यापार-off है।
स्टॉप-लॉस सेटिंग्स प्रतिशत और अंक के दो मोड का समर्थन करते हैं, डिफ़ॉल्ट 1% स्टॉप-लॉस को संरक्षित माना जाता है, लेकिन मल्टी-टाइम-फ्रेम की पुष्टि के साथ, वास्तविक जोखिम काफी कम हो गया है। रणनीति में स्टॉप-लॉस ट्रैकिंग भी है, जो रुझान में अधिकतम लाभ संरक्षण प्रदान करता है।
लक्ष्य सेट T1 1 है, T2 2 है, और यह 1: 2 जोखिम-लाभ अनुपात बहुत सारे फीडबैक के साथ सत्यापित है। बहु-समय फ़्रेम फ़िल्टरिंग के साथ, यह सेट अधिकांश बाजार स्थितियों में सकारात्मक उम्मीदों को बनाए रखता है।
कोड में एक पूर्ण एपीआई जोड़ी मॉड्यूल शामिल है, जो डेल्टा जैसे प्रमुख ट्रेडिंग प्लेटफार्मों का समर्थन करता है। JSON प्रारूप में ऑर्डर डेटा में मूल्य, मात्रा, एक्सचेंज और अन्य सभी जानकारी शामिल है, जिसे सीधे प्रोग्रामेटिक ट्रेडिंग के लिए उपयोग किया जा सकता है।
मात्रा प्रबंधन फिक्स्ड नंबर और धन अनुपात के अनुसार दो मोड का समर्थन करता है, जो धन प्रबंधन के लिए अधिक उपयुक्त है। जब एक्सपोजर मोड का चयन किया जाता है, तो सिस्टम स्वचालित रूप से वर्तमान मूल्य के आधार पर इष्टतम स्थिति आकार की गणना करता है।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह मजबूत रुझानों के दौरान प्रदर्शन करता है, बहु-समय फ्रेम प्रतिध्वनि अधिकांश प्रमुख रुझानों को पकड़ने में सक्षम है। हालांकि, यह आमतौर पर क्षैतिज उतार-चढ़ाव के दौरान प्रदर्शन करता है, क्योंकि बहुत अधिक पुष्टिकरण की स्थिति सिग्नल की कमी का कारण बनती है।
इष्टतम बाजार परिवेश: मध्यम या उच्चतर स्तर पर उतार-चढ़ाव, स्पष्ट रूप से दिशात्मक रुझान की स्थिति। उच्च आवृत्ति वाले व्यापार और अस्थिर बाजार की सट्टा के लिए उपयुक्त नहीं है।
जोखिम टिपः ऐतिहासिक परिणाम भविष्य के लाभ का प्रतिनिधित्व नहीं करते हैं, रणनीति में लगातार नुकसान का जोखिम है। विभिन्न बाजार स्थितियों में प्रदर्शन में भारी अंतर है, सख्त धन प्रबंधन और जोखिम नियंत्रण की आवश्यकता है।
/*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)