এই কৌশলটির নাম
ঐতিহ্যবাহী প্যারাবোলিক এসএআর এর ত্বরণ ফ্যাক্টর স্থির থাকে এবং বর্ধিত অস্থিরতার সাথে মানিয়ে নিতে পারে না। এই কৌশলটি এটিআর মান প্রসারিত হওয়ার সাথে সাথে এসএআর কার্ভটি দ্রুততর চুক্তি করে তোলে, যাতে অস্থিরতা বাড়ার সাথে সাথে স্টপগুলি ঝুঁকিগুলি কার্যকরভাবে নিয়ন্ত্রণ করতে দামের চারপাশে দ্রুততর টানতে পারে।
বিশেষত, মূল্যের প্রবণতা নির্ধারণের পরে, প্যারাবোলিক এসএআর ট্রেইলিং স্টপ কার্ভটি প্লট করার জন্য এটিআর মানের উপর ভিত্তি করে একটি অভিযোজিত ত্বরণ ফ্যাক্টর গণনা করা হয়। যখন দামগুলি স্টপ স্তরটি লঙ্ঘন করে, তখন স্টপ লস ট্রিগার হয়।
এই কৌশলটির সুবিধা হল বাজারের অস্থিরতার উপর ভিত্তি করে ঐতিহ্যবাহী প্যারাবোলিক এসএআর স্টপগুলিকে গতিশীল করা। তবে এটিআর পরামিতিগুলির অপ্টিমাইজেশনের প্রয়োজন, এবং স্টপ লাইনটি অকাল লঙ্ঘনের ঝুঁকিতে থাকতে পারে।
সাধারণভাবে, লাভ রক্ষা এবং ঝুঁকি সীমাবদ্ধ করার জন্য অভিযোজিত স্টপগুলি গুরুত্বপূর্ণ। ট্রেডারদের বাজারের অবস্থার উপর ভিত্তি করে উপযুক্ত স্টপ সূচকগুলি নির্বাচন করা উচিত এবং স্টপ লস কৌশলগুলির উপযোগিতা সর্বাধিক করার জন্য পরামিতিগুলি পরীক্ষা এবং অনুকূলিতকরণ করা উচিত।
/*backtest start: 2023-08-13 00:00:00 end: 2023-09-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="ATR Parabolic SAR Strategy [QuantNomad]", shorttitle="ATR PSAR Strategy [QN]", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) atr_length = input(14) start = input(0.02) increment = input(0.02) maximum = input(0.2) entry_bars = input(1, title = "Entry on Nth trend bar") atr = atr(atr_length) atr := na(atr) ? tr : atr psar = 0.0 // PSAR af = 0.0 // Acceleration Factor trend_dir = 0 // Current direction of PSAR ep = 0.0 // Extreme point trend_bars = 0 sar_long_to_short = trend_dir[1] == 1 and close <= psar[1] // PSAR switches from long to short sar_short_to_long = trend_dir[1] == -1 and close >= psar[1] // PSAR switches from short to long trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long // Calculate trend direction trend_dir := barstate.isfirst[1] and close[1] > open[1] ? 1 : barstate.isfirst[1] and close[1] <= open[1] ? -1 : sar_long_to_short ? -1 : sar_short_to_long ? 1 : nz(trend_dir[1]) trend_bars := sar_long_to_short ? -1 : sar_short_to_long ? 1 : trend_dir == 1 ? nz(trend_bars[1]) + 1 : trend_dir == -1 ? nz(trend_bars[1]) - 1 : nz(trend_bars[1]) // Calculate Acceleration Factor af := trend_change ? start : (trend_dir == 1 and high > ep[1]) or (trend_dir == -1 and low < ep[1]) ? min(maximum, af[1] + increment) : af[1] // Calculate extreme point ep := trend_change and trend_dir == 1 ? high : trend_change and trend_dir == -1 ? low : trend_dir == 1 ? max(ep[1], high) : min(ep[1], low) // Calculate PSAR psar := barstate.isfirst[1] and close[1] > open[1] ? low[1] : barstate.isfirst[1] and close[1] <= open[1] ? high[1] : trend_change ? ep[1] : trend_dir == 1 ? psar[1] + af * atr : psar[1] - af * atr plot(psar, style=plot.style_cross, color=trend_dir == 1 ? color.green : color.red, linewidth = 2) // Strategy strategy.entry("Long", true, when = trend_bars == entry_bars) strategy.entry("Short", false, when = trend_bars == -entry_bars)