
ایک قیاس آرائیاں گڑھے کی حکمت عملی ایک رجحان کی پیروی کرنے والی ایک مقداری تجارتی حکمت عملی ہے جو SAR ہموار منحنی خطوط کو بنیادی تجارتی سگنل کے طور پر استعمال کرتی ہے ، جس میں ای ایم اے ، دباؤ کی رفتار اور اتار چڑھاؤ کے جھٹکے جیسے متعدد فلٹرز کی مدد سے SAR پیرامیٹرز کی تشکیل کی طرف سے رجحان کی تبدیلی کی نشاندہی کی جاتی ہے تاکہ کم خطرہ والے رجحانات کی پیروی کی جاسکے۔ یہ ایک ایسی حکمت عملی ہے جو درمیانی اور لمبی لائن سرمایہ کاری کے لئے بہترین موزوں ہے۔
اس حکمت عملی میں پیرا لائیو ایس اے آر کو بنیادی ٹریڈنگ سگنل اشارے کے طور پر استعمال کیا جاتا ہے۔ ایس اے آر قیمت کے رجحان کے الٹ پوائنٹس کا مؤثر انداز میں فیصلہ کرسکتا ہے ، جب ایس اے آر علامت میں تبدیلی آتی ہے تو اس کا مطلب یہ ہوتا ہے کہ رجحان الٹا ہے۔ یہ حکمت عملی عام طور پر ایس اے آر الٹ ہونے پر خریدنے یا بیچنے کا اشارہ دیتی ہے۔
اس کے علاوہ ، حکمت عملی میں ایس اے آر کو توڑنے کا آپشن بھی شامل ہے۔ یعنی ، اس وقت اشارہ کیا جاتا ہے جب قیمت SAR کی آخری قیمت کو توڑ چکی ہے ، اس سے پہلے کہ SAR مکمل طور پر الٹ نہ ہو۔ اس سے حکمت عملی کی حساسیت کو مزید آگے بڑھایا جاسکتا ہے۔
جعلی سگنلوں کو فلٹر کرنے کے لئے ، اس حکمت عملی میں ای ایم اے ، ایکسٹریکٹ موٹینس اور اتار چڑھاؤ کے جھٹکے والے تین معاون فلٹرز بھی متعارف کروائے گئے ہیں ، جو قیمت کے رجحانات اور تجارتی سگنلوں کی وشوسنییتا کی تصدیق کے لئے اکیلے یا مجموعہ میں استعمال ہوسکتے ہیں۔
آخر میں ، حکمت عملی تین رکاوٹوں کی روک تھام کی پیش کش کرتی ہے ، یعنی فکسڈ اسٹاپ ، فکسڈ اسٹاپ اور رسک ریٹرن ریٹرن اسٹاپ۔ اس سے حکمت عملی کو مختلف قسم کے تجارتی اقسام کی خصوصیات کے مطابق لچکدار بناتا ہے۔
SARs قیمتوں کے رجحانات کو درست طریقے سے سمجھنے کے قابل ہیں اور نئے قیمتوں کے رجحانات کو بروقت پکڑ سکتے ہیں ، جو درمیانی اور لمبی لائن کے رجحانات کی پیروی کرنے کے لئے موزوں ہیں۔
ایک سے زیادہ فلٹرز کی ترتیب نے جعلی توڑنے کے امکانات کو کم کیا اور سگنل کی وشوسنییتا کو بہتر بنایا۔
ترتیب آسان اور لچکدار ہے ، مختلف قسم کے لین دین کے ل custom اپنی مرضی کے مطابق پیرامیٹرز۔
اسٹاپ نقصان کے متعدد طریقے پیش کرتے ہیں ، جو خطرے سے متعلق منافع کے توازن کی تلاش میں ہیں۔
خود کار طریقے سے ٹریڈنگ کے لئے براہ راست روبوٹ سے منسلک کیا جا سکتا ہے.
غیر رجحاناتی مارکیٹوں میں ، جعلی سگنل اور غلط تجارت میں اضافہ ہوسکتا ہے۔
SAR پیرامیٹرز کی غلط ترتیب بھی سگنل فیصلے کی درستگی کو متاثر کرتی ہے۔
رجحانات کی پیروی کرنے کی حکمت عملی کے طور پر ، بڑے پیمانے پر اتار چڑھاؤ والے بازاروں میں اسٹاپ نقصان کی حد تک پہنچنا آسان ہے۔
مندرجہ بالا خطرات کے لئے ، SAR پیرامیٹرز یا فلٹر پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے ، تاکہ غیر موثر تجارت کے امکانات کو کم کیا جاسکے۔ مارکیٹ میں زیادہ اتار چڑھاؤ کو برداشت کرنے کے لئے اسٹاپ نقصان کی حد کو بھی مناسب طریقے سے نرمی دی جاسکتی ہے۔
SAR پیرامیٹرز کو بہتر بنائیں۔ آپ SAR کے قدمی اور اضافے کے پیرامیٹرز کو بہتر بنانے کے لئے تاریخی بیک اپ کے اعداد و شمار کا استعمال کرسکتے ہیں تاکہ زیادہ مستحکم اور موثر تجارتی حکمت عملی حاصل کی جاسکے۔
رجحان کا فیصلہ کرنے والے اشارے متعارف کروائیں۔ حکمت عملی میں ایم اے سی ڈی ، ڈی ایم آئی جیسے معاون فیصلہ کرنے والے اشارے شامل کریں ، تاکہ رجحان کا فیصلہ کرنے کی صلاحیت میں اضافہ ہو۔
خطرہ کی واپسی کی شرح کو بہتر بنائیں۔ فکسڈ اسٹاپ نقصان کی فیصد اور خطرہ کی واپسی کی شرح پیرامیٹرز کو ایڈجسٹ کریں تاکہ زیادہ سے زیادہ منافع حاصل کرنے کے لئے مناسب طور پر زیادہ خطرہ مول لیا جاسکے۔
غیر ملکی کرنسی کی اقسام کو شامل کریں۔ اس وقت کی حکمت عملی صرف ڈیجیٹل کرنسی کی تجارت کی حمایت کرتی ہے ، جس میں غیر ملکی کرنسی ، اجناس اور سیکیورٹیز مارکیٹ کی اقسام کی حمایت کی جاسکتی ہے۔
قیاس آرائی کا گڑھا ایک بہت ہی عملی ٹریکنگ ٹرینڈ ٹائپنگ کی حکمت عملی ہے۔ یہ حساس ہے ، سگنل کا فیصلہ قابل اعتماد ہے ، اور اسٹاپ نقصان اور اسٹاپ اسٹاپ مینجمنٹ کے ذریعہ طویل مدتی مستحکم منافع حاصل کیا جاسکتا ہے۔ مناسب پیرامیٹرز اور قواعد کی اصلاح سے حکمت عملی کی کارکردگی کو مزید بڑھایا جاسکتا ہے۔ یہ ایک اعلی کارکردگی کی مقدار کی حکمت عملی ہے جو طویل مدتی استعمال کے قابل ہے۔
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//VERSION =================================================================================================================
//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// This strategy is intended to study.
// It can also be used to signal a bot to open a deal by providing the Bot ID, email token and trading pair in the strategy settings screen.
// As currently written, this strategy uses a SAR PARABOLIC to send signal, and EMA, Squeeze Momentum, Volatility Oscilator as filter.
// There are two enter point, when SAR Flips, or Breakout Point - the last SAR Value before it Flips.
// There are tree options for exit: SAR Flips, Fixed Stop Loss ande Fixed Take Profit in % and Risk Reward tha can be set, 0.5/1, 1/1, 1/2 etc.
//Autor M4TR1X_BR
//▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
//STRATEGY ================================================================================================================
strategy(title = 'BT-SAR Ema, Squeeze, Voltatility',
shorttitle = 'SAR ESV',
overlay = true)
//▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// INPUTS =================================================================================================================
// TIME INPUTS
usefromDate = input.bool(defval = true, title = 'Start date', inline = '0', group = "Time Filters")
initialDate = input(defval = timestamp('01 Jan 2022 00:00 UTC'), title = '', inline = "0",group = 'Time Filters',tooltip="This start date is in the time zone of the exchange ")
usetoDate = input.bool(defval = true, title = 'End date', inline = '1', group = "Time Filters")
finalDate = input(defval = timestamp('31 Dec 2029 23:59 UTC'), title = '', inline = "1",group = 'Time Filters',tooltip="This end date is in the time zone of the exchange")
// TIME LOGIC
inTradeWindow = true
// SAR PARABOLIC INPUTS ==================================================================================================
string sargroup= "SAR PARABOLIC ========================================="
start = input.float(defval=0.02,title='Start',inline='',group = sargroup)
increment = input.float(defval=0.02,title='Increment',inline='',group = sargroup)
maximum = input.float(defval=0.2,title='Maximo',inline='',group = sargroup)
// SAR PARABOLIC LOGIC
out = ta.sar(start, increment, maximum)
// SAR FLIP OR BREAKOUT OPTIONS
string bkgroup ='SAR TRADE SIGNAL ====================================== '
sarTradeSignal =input.string(defval='SAR Flip',title='SAR Trade Signal', options= ['SAR Flip','SAR Breakout'],group=bkgroup, tooltip='SAR Flip: Once the parabolic SAR flips it will send a signal, SAR Breakout: Will wait the price cross last Sar Value before it flips.')
nBars = input.int(defval=4,title='Bars',group=bkgroup, tooltip ='Define the number of bars for a entry when the price cross breakout point')
float sarBreakoutPoint= ta.valuewhen((close[1] < out[1]) and (close > out),out[1],0) //Get Sar Breakout Point
bool check = (close[1] < out[1]) and (close > out) //Verify when sar flips
bool BreakoutPrice = sarTradeSignal=='SAR Breakout'? (ta.barssince(check) < nBars) and ((open < sarBreakoutPoint) and (close > sarBreakoutPoint)): (ta.barssince(check) < nBars) and (close > out)
barcolor (check? color.yellow:na,title="Signal Bar color" )
// MOVING AVERAGES INPUTS ================================================================================================
string magroup = "Moving Average ========================================"
useEma = input.bool(defval = true, title = 'Moving Average Filter',inline='', group= magroup,tooltip='This will enable or disable Exponential Moving Average Filter on Strategy')
emaType=input.string (defval='Ema',title='Type',options=['Ema','Sma'],inline='', group= magroup)
emaSource = input.source(defval=close,title=" Source",inline="", group= magroup)
emaLength = input.int(defval=100,title="Length",minval=0,inline='', group= magroup)
// MOVING AVERAGE LOGIC
float ema = emaType=='Ema'? ta.ema(emaSource,emaLength): ta.sma(emaSource,emaLength)
// VOLATILITY OSCILLATOR =================================================================================================
string vogroup = "VOLATILITY OSCILLATOR ================================="
useVltFilter=input.bool(defval=true,title="Volatility Oscillator Filter",inline='',group= vogroup,tooltip='This will enable or disable Volatility Oscillator filter on Strategy')
vltFilterLength = input.int(defval=100,title="Volatility Oscillator",inline='',group=vogroup)
vltFilterSpike = close - open
vltFilterX = ta.stdev(vltFilterSpike,vltFilterLength)
vltFilterY = ta.stdev(vltFilterSpike,vltFilterLength) * -1
// SQUEEZE MOMENTUM INPUTS ==============================================================================================
string sqzgroup = "SQUEEZE MOMENTUM ====================================="
useSqzFilter=input.bool(defval=true,title="Squeeze Momentum Filter",inline='',group= sqzgroup, tooltip='This will enable or disable Squeeze Momentum filter on Strategy')
sqzFilterlength = input.int(defval=20, title='Bollinger Bands Length',inline='',group= sqzgroup)
sqzFiltermult = input.float(defval=2.0, title='Boliinger Bands Mult',inline='',group= sqzgroup)
keltnerLength = input.int(defval=20, title='Keltner Channel Length',inline='',group= sqzgroup)
keltnerMult = input.float(defval=1.5, title='Keltner Channel Mult',inline='',group= sqzgroup)
useTrueRange = input(true, title='Use TrueRange (KC)', inline='',group= sqzgroup)
// CALCULATE BOLLINGER BANDS
sqzFilterSrc = close
basis = ta.sma(sqzFilterSrc, sqzFilterlength)
dev = keltnerMult * ta.stdev(sqzFilterSrc, sqzFilterlength)
upperBB = basis + dev
lowerBB = basis - dev
// CALCULATE KELTNER CHANNEL
sma = ta.sma(sqzFilterSrc, keltnerLength)
range_1 = useTrueRange ? ta.tr : high - low
rangema = ta.sma(range_1, keltnerLength)
upperKC = sma + rangema * keltnerMult
lowerKC = sma - rangema * keltnerMult
// CHECK IF BOLLINGER BANDS IS IN OR OUT OF KELTNER CHANNEL
sqzOn = lowerBB > lowerKC and upperBB < upperKC
sqzOff = lowerBB < lowerKC and upperBB > upperKC
noSqz = sqzOn == false and sqzOff == false
// SQUEEZE MOMENTUM LOGIC
val = ta.linreg(sqzFilterSrc - math.avg(math.avg(ta.highest(high, keltnerLength), ta.lowest(low, keltnerLength)),ta.sma(close, keltnerLength)), keltnerLength, 0)
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// TAKE PROFIT STOP LOSS INPUTS =========================================================================================
string tkpgroup='Take Profit =================================================='
tpType = input.string(defval = 'SAR Flip', title='Take Profit and Stop Loss', options=['SAR Flip','Fixed % TP/SL', 'Risk Reward TP/SL'], group=tkpgroup )
longTakeProfitPerc = input.float(defval = 1.5, title = 'Fixed TP %', minval = 0.05, step = 0.5, group=tkpgroup, tooltip = 'The percentage increase to set the take profit price target.')/100
longLossPerc = input.float(defval=1.0, title="Fixed Long SL %", minval=0.1, step=0.5, group = tkpgroup, tooltip = 'The percentage increase to set the Long Stop Loss price target.') * 0.01
//shortLossPerc = input.float(defval=1.5, title="Fixed Short SL (%)", minval=0.1, step=0.5, group = tkpgroup, tooltip = 'The percentage increase to set the Short Stop Loss price target.') * 0.01
longTakeProfitRR = input.float(defval = 1, title = 'Risk Reward TP', minval = 0.25, step = 0.25, group=tkpgroup, tooltip = 'The Risk Reward parameter.')
var plotStopLossRR = input.bool(defval=false, title='Show RR Stop Loss', group=tkpgroup)
//enableStopLossRR = input.bool(defval = false, title = 'Enable Risk Reward TP',group=tkpgroup, tooltip = 'Enable Variable Stop Loss.')
string trpgroup='Traling Profit ==============================================='
enableTrailing = input.bool(defval = false, title = 'Enable Trailing',group=trpgroup, tooltip = 'Enable or disable the trailing for take profit.')
trailingTakeProfitDeviationPerc = input.float(defval = 0.1, title = 'Trailing Take Profit Deviation %', minval = 0.01, maxval = 100, step = 0.01, group=trpgroup, tooltip = 'The step to follow the price when the take profit limit is reached.') / 100
// BOT MESSAGES
string msgroup='Alert Message For Bot ========================================='
messageEntry = input.string("", title="Strategy Entry Message",group=msgroup)
messageExit =input.string("",title="Strategy Exit Message",group=msgroup)
messageClose = input.string("", title="Strategy Close Message",group=msgroup)
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// POSITIONS =============================================================================================================
//VERIFY IF THE BUY FILTERS ARE ON OR OFF
bool emaFilterBuy = useEma? (close > ema):(close >= ema) or (close <= ema)
bool volatilityFilterBuy = useVltFilter? (vltFilterSpike > vltFilterX) : (vltFilterSpike >= 0) or (vltFilterSpike <= 0)
bool sqzFilterBuy = useSqzFilter? (val > val[1]): (val >= val[1] or val <=val[1])
bool sarflip = (close > out)
//LONG / SHORT POSITIONS LOGIC
//Var 'check' will verify if the SAR flips and if the exit price occurs it will limit in bars number a new entry on the same signal.
bool limitEntryNumbers = (ta.barssince(check) < nBars)
bool openLongPosition = sarTradeSignal == 'SAR Flip'? (sarflip and emaFilterBuy and volatilityFilterBuy and sqzFilterBuy and limitEntryNumbers) :sarTradeSignal=='SAR Breakout'? (BreakoutPrice and emaFilterBuy and volatilityFilterBuy and sqzFilterBuy): na
bool openShortPosition = na
bool closeLongPosition= tpType=='SAR Flip'? (close < out):na
bool closeShortPosition=na
// CHEK OPEN POSITONS =====================================================================================================
// open signal when not already into a position
bool validOpenLongPosition = openLongPosition and strategy.opentrades.size(strategy.opentrades - 1) <= 0
bool longIsActive = validOpenLongPosition or strategy.opentrades.size(strategy.opentrades - 1) > 0
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// TAKE PROFIT STOP LOSS CONFIG ==========================================================================================
// FIXED TAKE PROFIT IN %
float posSize = strategy.opentrades.entry_price(strategy.opentrades - 1) //Get the entry price
var float longTakeProfitPrice = na
longTakeProfitPrice := if (longIsActive)
if (openLongPosition and not (strategy.opentrades.size(strategy.opentrades - 1) > 0))
posSize * (1 + longTakeProfitPerc)
else
nz(longTakeProfitPrice[1], close * (1 + longTakeProfitPerc))
else
na
longTrailingTakeProfitStepTicks = longTakeProfitPrice * trailingTakeProfitDeviationPerc / syminfo.mintick
// FIXED STOP LOSS IN %
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)
//shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)
// TAKE PROFIT BY RISK/REWARD
// Set stop loss
tta = not (strategy.opentrades.size(strategy.opentrades - 1) > 0)
float lastb = ta.valuewhen(check and tta,ta.lowest(low,5),0) - (10 * syminfo.mintick)
// TAKE PROFIT CALCULATION
float stopLossRisk = (posSize - lastb)
float takeProfitRR = posSize + (longTakeProfitRR * stopLossRisk)
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// POSITION ORDERS =====================================================================================================
// LOGIC ===============================================================================================================
// getting into LONG position
if (openLongPosition) and (inTradeWindow)
strategy.entry(id = 'Long Entry', direction = strategy.long, alert_message=messageEntry)
//submit exit orders for trailing take profit price
if (longIsActive) and (inTradeWindow)
strategy.exit(id = 'Long Take Profit', from_entry = 'Long Entry', limit = enableTrailing ? na : tpType=='Fixed % TP/SL'? longTakeProfitPrice: tpType == 'Risk Reward TP/SL'? takeProfitRR:na, trail_price = enableTrailing ? longTakeProfitPrice : na, trail_offset = enableTrailing ? longTrailingTakeProfitStepTicks : na, stop = tpType =='Fixed % TP/SL' ? longStopPrice: tpType == 'Risk Reward TP/SL'? lastb:na) //, alert_message='{ "action": "close_at_market_price", "message_type": "bot", "bot_id": 9330698, "email_token": "392265bc-84eb-4a54-a99c-758383ff9449", "delay_seconds": 0,"pair":"USDT_{{ticker}}" }')
if (closeLongPosition)
strategy.close(id = 'Long Entry', alert_message='{ "action": "close_at_market_price", "message_type": "bot", "bot_id": 9330698, "email_token": "392265bc-84eb-4a54-a99c-758383ff9449", "delay_seconds": 0,"pair":"USDT_{{ticker}}" }')
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// PLOTS ===============================================================================================================
// TRADE WINDOW ========================================================================================================
bgcolor(color = inTradeWindow ? color.new(#089981,90):na, title = 'Time Window')
// SAR PARABOLIC
var sarColor = color.new(#00bcd4,0)
plot(out, "ParabolicSAR", color=sarColor, linewidth=1,style=plot.style_cross)
//BREAKOUT LINE
var plotBkPoint = input.bool(defval=false, title='Show Breakout Point', group=bkgroup)
plot(series = (sarTradeSignal=='SAR Breakout' and plotBkPoint == true)? sarBreakoutPoint:na, title = 'Breakout line', color =color.new(#ffeb3b,50) , linewidth = 1, style = plot.style_linebr, offset = 0)
// EMA/SMA
var emafilterColor = color.new(color.white, 0)
plot(series=useEma? ema:na, title = 'EMA Filter', color = emafilterColor, linewidth = 2, style = plot.style_line)
// ENTRY PRICE
var posColor = color.new(#2962ff, 0)
plot(series = strategy.opentrades.entry_price(strategy.opentrades - 1), title = 'Position', color = posColor, linewidth = 1, style = plot.style_linebr,offset=0)
// FIXED TAKE PROFIT
var takeProfitColor = color.new(#ba68c8, 0)
plot(series = tpType=='Fixed % TP/SL'? longTakeProfitPrice:na, title = 'Fixed TP', color = takeProfitColor, linewidth = 1, style = plot.style_linebr, offset = 0)
// FIXED STOP LOSS
var stopLossColor = color.new(#ff0000, 0)
plot(series = tpType=='Fixed % TP/SL' ? longStopPrice:na, title = 'Fixed SL', color = stopLossColor, linewidth = 1, style = plot.style_linebr, offset = 0)
// RISK REWARD TAKE PROFIT
var takeProfitRRColor = color.new(#ba68c8, 0)
plot(series=tpType == 'Risk Reward TP/SL'? takeProfitRR:na,title='Risk Reward TP',color=takeProfitRRColor,linewidth=1,style=plot.style_linebr)
// STOP LOSS RISK REWARD
plot(series = (check and plotStopLossRR)? lastb:na, title = 'Last Bottom', color =color.new(#ff0000,0), linewidth = 2, style = plot.style_linebr, offset = 0)
// ======================================================================================================================