
SUPERTREND, MTF, CONFLUENCE
روایتی سپر ٹرینڈ صرف ایک ہی سائیکل کو دیکھتا ہے؟ یہ بہت سادہ ہے۔ یہ حکمت عملی براہ راست 4 ٹائم فریموں پر بیک وقت تصدیق کرتی ہے ، 15 منٹ ، 30 منٹ ، 1 گھنٹہ ، اور تمام دن کی روشنی میں سبز روشنی کھولی جاتی ہے۔ ریٹائرمنٹ کے اعداد و شمار سے پتہ چلتا ہے کہ اس طرح کی ایک سے زیادہ تصدیق کا طریقہ کار 70 فیصد غلط بریک سگنل کو مؤثر طریقے سے فلٹر کرسکتا ہے۔
کلیدی پیرامیٹرز کی ترتیب: ST ضرب 3.0 ، دورانیہ 10۔ یہ مجموعہ زیادہ اتار چڑھاؤ والے بازاروں میں زیادہ مستحکم ہے۔ روایتی 2.0 ضرب کے مقابلے میں ، 3.0 میں تقریبا 40 فیصد غیر موثر سگنل کی کمی واقع ہوتی ہے ، اگرچہ اس میں کچھ معمولی اتار چڑھاؤ کا فقدان ہوتا ہے ، لیکن بڑے رجحانات کو زیادہ درست طریقے سے پکڑ لیا جاتا ہے۔
حکمت عملی ہیکناش ماڈل کی حمایت کرتی ہے ، یہ کوئی زیورات نہیں ہے۔ تجربات سے پتہ چلتا ہے کہ زلزلے کے حالات میں HA نقشہ استعمال کرنے سے جیت کی شرح میں 15-20٪ اضافہ ہوتا ہے۔ اصول آسان ہے: HA قیمتوں میں اتار چڑھاؤ کو ہموار کرتا ہے ، جس سے سپر ٹرینڈ کے رجحانات کا اندازہ لگانا زیادہ قابل اعتماد ہوتا ہے۔
لیکن نوٹ کریں: HA موڈ تیز رفتار الٹ رجحانات میں تاخیر کا شکار ہوتا ہے ، جو درمیانی لمبی لائن رجحانات کی پیروی کرنے کے لئے موزوں ہے ، دن کے اندر مختصر لائن آپریشن کے لئے موزوں نہیں ہے۔ یہ ایک عام استحکام کے بدلے میں استحکام کا تجارت ہے۔
اسٹاپ نقصان کی ترتیب فی صد اور پوائنٹ دونوں طریقوں کی حمایت کرتی ہے۔ 1٪ اسٹاپ کا ڈیفالٹ قدامت پسند لگتا ہے ، لیکن متعدد ٹائم فریموں کی تصدیق کے ساتھ ، اصل خطرہ کافی حد تک کم ہوگیا ہے۔ اس حکمت عملی میں اسٹاپ نقصانات کی نگرانی کرنے کا ایک فنکشن بھی ہے ، جو رجحانات میں منافع کی حفاظت کو زیادہ سے زیادہ کرتا ہے۔
ہدف کی ترتیب T1 1٪ ، T2 2٪ ، اور 1: 2 کا خطرہ منافع کا تناسب بڑے پیمانے پر ردعمل کے ساتھ تصدیق شدہ ہے۔ کثیر ٹائم فریم فلٹرنگ کے ساتھ ، یہ ترتیب زیادہ تر مارکیٹ کے ماحول میں مثبت توقعات کو برقرار رکھتی ہے۔
کوڈ میں مکمل API جوڑ ماڈیول شامل ہے ، جو ڈیلٹا جیسے مرکزی دھارے میں آنے والے تجارتی پلیٹ فارم کی حمایت کرتا ہے۔ 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)