
এই কৌশলটি একটি দ্বি-মুখী ট্রেডিং কৌশল যা ওঠানামা অনুসরণ করে। এটি স্টপ লস সেট করার জন্য গড় সত্যিকারের ওঠানামা ATR সূচক ব্যবহার করে এবং প্রবণতার দিকটি নির্ধারণ করে যেখানে দামটি স্টপ লসটি ভেঙেছে। প্রবণতার দিকটি পরিবর্তিত হলে, একটি বিপরীত অবস্থান খুলুন।
এই কৌশলটি 3 দিনের এটিআর গণনা করে। এটিআর মানটি স্টপ লেভেল হিসাবে একটি ফ্যাক্টর দ্বারা গুণিত হয়। দাম যখন স্টপ লেভেলের উপরে থাকে তখন এটিকে একটি উর্ধ্বমুখী ট্রেন্ড হিসাবে বিচার করা হয় এবং যখন দাম নীচে যায় তখন এটি স্টপ লেভেলকে প্যাচ করে; যখন দাম স্টপ লেভেলের নীচে থাকে তখন এটিকে একটি ফাঁকা ট্রেন্ড হিসাবে বিচার করা হয় এবং যখন দাম উপরে যায় তখন এটি স্টপ লেভেলকে প্যাচ করে। ট্রেন্ডটি পরিবর্তিত হলে, একটি বিপরীত অবস্থান খুলুন। ট্রেন্ডটি অপরিবর্তিত থাকলে স্টপ লেভেলটি ট্র্যাকিং অপ্টিমাইজ করা হয় এবং ট্রেন্ডটি পরিবর্তিত হলে পুনরায় সেট করা হয়।
ঝুঁকির জন্য, এটিআর ফ্যাক্টরটি যথাযথভাবে বাড়ানো যেতে পারে, স্টপ বাফার জোন বাড়ানো যেতে পারে, ট্রেডিং ফ্রিকোয়েন্সি নিয়ন্ত্রণ করা যেতে পারে, সর্বনিম্ন স্টপ লেভেল সেট করা যেতে পারে ইত্যাদি।
এই কৌশলটি সামগ্রিকভাবে একটি স্থিতিশীল দ্বি-মুখী ট্র্যাকিং স্টপ লস কৌশল। এটিআর সূচকগুলির মাধ্যমে গতিশীলভাবে স্টপ লস সেট করুন, প্রত্যাহারের ঝুঁকি নিয়ন্ত্রণ করুন। একই সাথে দ্বি-মুখী লেনদেনের মাধ্যমে লাভের সুযোগ বাড়ানো হয়েছে। আরও অপ্টিমাইজেশনের মাধ্যমে কৌশলটি আরও স্থিতিশীল, নির্ভরযোগ্য এবং প্রবণতা অনুসরণ করার ক্ষমতা আরও শক্তিশালী করা যেতে পারে।
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("BCH Swinger v1", overlay=true, commission_value = 0.25, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
/////////////////////////////////////////////////////////////
//START - SET DATE RANGE
// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2017, title = "From Year")
ToMonth = input(defval = 10, title = "To Month", minval = 1)
ToDay = input(defval = 01, title = "To Day", minval = 1)
ToYear = input(defval = 2020, title = "To Year")
startDate = time > timestamp(FromYear, FromMonth, FromDay, 1, 1)
endDate = time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
withinTimeRange = true
/////////////////////////////////////////////////////////////
//END - SET DATE RANGE
/////////////////////////////////////////////////////////////
//START - INDICATORS
length = input(3)
mult = input(1, minval = 0.01)
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? yellow : red, style=circles, linewidth=2)
/////////////////////////////////////////////////////////////
//END - INDICATORS
/////////////////////////////////////////////////////////////
//START - TRADING RULES
direction = input(defval=1, title = "Strategy Direction", minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))
condition1 = close > vstop and withinTimeRange
condition2 = close < vstop and withinTimeRange
strategy.entry("BUY", strategy.long, when = condition1)
strategy.entry("SELL", strategy.short, when = condition2)
/////////////////////////////////////////////////////////////
//END - TRADING RULES