
ট্রেন্ড ট্র্যাকিং স্টপ লস রিভার্স কৌশলটি একটি কৌশল যা প্রবণতা সনাক্ত করতে প্যারাবলিক এসএআর সূচক ব্যবহার করে এবং প্রবণতা বিপরীত হওয়ার সময় একটি বিপরীত অবস্থানে প্রবেশ করে। এই কৌশলটি একই সাথে ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস এবং স্টপ স্টপ মেশিনারিজমকে একত্রিত করে।
এই কৌশলটি বর্তমান বাজার প্রবণতা নির্ধারণের জন্য Parabolic SAR সূচক ব্যবহার করে। Parabolic SAR full name is Parabolic Stop and Reverse, যার অর্থ হল প্যারাবোলিক স্টপ লস রিভার্স । এর সূচক লাইনগুলি দামের চার্টের উপর প্যারাবোলিক লাইনের একটি সিরিজের মতো, প্যারাবোলিক লাইন পয়েন্টগুলি সম্ভাব্য বিপরীত পয়েন্টের প্রতিনিধিত্ব করে।
যখন SAR পয়েন্টটি নীচে যায় এবং দামের নীচে থাকে, তখন এটি একটি মুদ্রাস্ফীতির প্রবণতা প্রতিনিধিত্ব করে; যখন SAR পয়েন্টটি উপরে যায় এবং দামের উপরে থাকে, তখন এটি একটি পতনশীল প্রবণতা প্রতিনিধিত্ব করে। এই কৌশলটি SAR পয়েন্টের অবস্থান থেকে বর্তমান প্রবণতার দিকনির্দেশের বিচার করে।
বিশেষ করে, যখন SAR পয়েন্ট ট্রেন্ডিং হয় এবং দামের উপরে থাকে, তখন কৌশলটি খালি হয়; যখন SAR পয়েন্ট ট্রেন্ডিং হয় এবং দামের নীচে থাকে, তখন কৌশলটি একটি পল্টি-পজিশন করে। অর্থাৎ, যখন SAR পয়েন্ট ট্রেন্ডিং বিপরীত দেখায়, তখন বিপরীত অবস্থানে প্রবেশ করুন।
এছাড়াও, এই কৌশলটি একটি স্টপ-লস এবং স্টপ-অফ ব্যবস্থাও সেট করে। অতিরিক্ত সময়ে, ক্ষতি সীমাবদ্ধ করার জন্য একটি স্টপ-লস মূল্য সেট করা সম্ভব। একই সাথে, একটি স্টপ-অফ মূল্য সেট করা সম্ভব, যখন দাম নির্দিষ্ট লক্ষ্য লাভের পরে প্লেইন করা হয়। খালি জায়গাও অনুরূপ ব্যবস্থা।
ট্রেন্ড ইন্ডিকেটর এবং স্টপ-অফ/স্টপ-অফ ব্যবস্থার সাথে যুক্ত এই কৌশলটির প্রধান সুবিধাগুলি হলঃ
এই কৌশলটির কিছু ঝুঁকি রয়েছে যা সম্পর্কে সতর্ক থাকা দরকারঃ
এই ঝুঁকির জন্য, প্যারামিটার অপ্টিমাইজেশান বা অন্যান্য সূচক ফিল্টারিংয়ের সাথে কাজ করে সমাধান করা যেতে পারে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
এই ট্রেন্ড ট্র্যাকিং স্টপ লস রিভার্স কৌশলটি সামগ্রিকভাবে একটি ক্লাসিক ট্রেডিং কৌশল ধারণা। এটি ট্রেন্ড রিভার্স সনাক্তকরণের কাজ করে এবং স্টপ লস এবং স্টপ স্টপিংয়ের মাধ্যমে ঝুঁকি নিয়ন্ত্রণে সহায়তা করে। অপ্টিমাইজেশনের মাধ্যমে এটি একটি কার্যকর কৌশল ধারণা হতে পারে।
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Parabolic SAR Strategy", overlay=true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := min(AF + increment, maximum)
else
if low < EP
EP := low
AF := min(AF + increment, maximum)
if uptrend
SAR := min(SAR, low[1])
if bar_index > 1
SAR := min(SAR, low[2])
else
SAR := max(SAR, high[1])
if bar_index > 1
SAR := max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
if barstate.isconfirmed
if uptrend
strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE")
strategy.cancel("ParLE")
else
strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE")
strategy.cancel("ParSE")
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//Stop Loss Inputs
use_short_stop_loss = input(false, title="Short Stop Loss", group="Stop Loss and Take Profit", inline="Short_SL")
short_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval=5, group="Stop Loss and Take Profit", inline="Short_SL") * 0.01
use_long_stop_loss = input(false, title="Long Stop Loss", group="Stop Loss and Take Profit", inline="Long_SL")
long_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval=5, group="Stop Loss and Take Profit", inline="Long_SL") * 0.01
//Take Profit Inputs
use_short_take_profit = input(false, title="Short Take Profit", group="Stop Loss and Take Profit", inline="Short_TP")
short_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval = 20, group="Stop Loss and Take Profit", inline="Short_TP") * .01
use_long_take_profit = input(false, title="Long Take Profit", group="Stop Loss and Take Profit", inline="Long_TP")
long_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval = 20, group="Stop Loss and Take Profit", inline="Long_TP") * .01
longStopPrice = strategy.position_avg_price * (1 - long_stop_loss)
shortStopPrice = strategy.position_avg_price * (1 + short_stop_loss)
longLimitPrice = strategy.position_avg_price * (1 + long_take_profit)
shortLimitPrice = strategy.position_avg_price * (1 - short_take_profit)
if (strategy.position_size > 0.0)
if (use_long_stop_loss and not use_long_take_profit)
strategy.exit("Long", stop = longStopPrice)
if (use_long_take_profit and not use_long_stop_loss)
strategy.exit("Long", limit = longLimitPrice)
if (use_long_take_profit and use_long_stop_loss)
strategy.exit("Long", stop = longStopPrice, limit=longLimitPrice)
if (strategy.position_size < 0.0)
if (use_short_stop_loss and not use_short_take_profit)
strategy.exit("Short", stop = shortStopPrice)
if (use_short_take_profit and not use_short_stop_loss)
strategy.exit("Short", limit = shortLimitPrice)
if (use_short_take_profit and use_short_stop_loss)
strategy.exit("Short", stop = shortStopPrice, limit = shortLimitPrice)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)