দ্বি-মুখী অস্থিরতা গ্রাস কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৩-১১-২১ ১২ঃ০৪ঃ১৯
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি একটি দ্বৈত-দিকের ট্রেডিং কৌশল যা অস্থিরতা ট্র্যাক করে। এটি স্টপ লস সেট করতে গড় সত্য পরিসীমা (এটিআর) সূচক ব্যবহার করে এবং স্টপ লস স্তরটি ভেঙে যাওয়ার দামের উপর ভিত্তি করে প্রবণতা দিক নির্ধারণ করে। প্রবণতা দিক পরিবর্তন হলে এটি বিপরীত অবস্থানগুলি খোলে।

কৌশলগত যুক্তি

কৌশলটি অস্থিরতা গণনা করতে 3-দিনের এটিআর ব্যবহার করে। একটি সহগ দ্বারা গুণিত এটিআর মানটি স্টপ লস স্তর হিসাবে ব্যবহৃত হয়। যখন দাম স্টপ লস স্তরের উপরে থাকে, তখন এটি একটি আপট্রেন্ড হিসাবে বিচার করে এবং দাম স্টপ লস স্তরের নীচে পড়লে দীর্ঘ অবস্থানগুলি বন্ধ করে। যখন দাম স্টপ লস স্তরের নীচে থাকে, তখন এটি একটি ডাউনট্রেন্ড হিসাবে বিচার করে এবং দাম স্টপ লস স্তরের উপরে উঠলে শর্ট অবস্থানগুলি বন্ধ করে। এটি প্রবণতা পরিবর্তনের সময় বিপরীত অবস্থানগুলি খোলে। প্রবণতা পরিবর্তনের সময় স্টপ লস স্তরটি অনুকূলিত হয় এবং প্রবণতা পরিবর্তনের সময় পুনরায় সেট করা হয়।

সুবিধা বিশ্লেষণ

  • বাজারের অস্থিরতা গতিশীলভাবে ট্র্যাক করতে এবং স্টপ লস হওয়ার সম্ভাবনা হ্রাস করতে এটিআর ব্যবহার করে
  • বাজারের ওঠানামা থেকে দ্বি-মুখী বাণিজ্য লাভ
  • ট্রেন্ড পরিবর্তনের প্রথম দিকে বিপরীত পজিশন খুলে উচ্চতর জয়ের হার

ঝুঁকি বিশ্লেষণ

  • ATR-এর বিলম্বের কারণে স্টপ লস ব্যর্থ হতে পারে
  • লং পজিশনের জন্য গ্যাপ ঝুঁকি আছে
  • ঘন ঘন ছোট মুনাফা অর্জন করতে পারে

ঝুঁকি হ্রাস করার জন্যঃ বৃহত্তর স্টপ স্তরের জন্য এটিআর সহগ বাড়ানো, ব্যবসায়ের ফ্রিকোয়েন্সি সীমাবদ্ধ করা, সর্বনিম্ন লাভের স্তর নির্ধারণ করা ইত্যাদি।

অপ্টিমাইজেশান নির্দেশাবলী

  • প্রবণতা পরিবর্তনের সংকেতগুলির জন্য অন্যান্য সূচকগুলি একত্রিত করুন
  • ATR পরামিতি অপ্টিমাইজ করুন
  • লেনদেনের আকার নিয়ন্ত্রণ যোগ করুন

সংক্ষিপ্তসার

এটি একটি সামগ্রিকভাবে স্থিতিশীল দ্বৈত-দিকের ট্রেলিং স্টপ কৌশল। এটিআর ড্রডাউনগুলি নিয়ন্ত্রণ করতে গতিশীল স্টপ স্তর সেট করে। দ্বৈত-দিকের ট্রেডিং লাভের সম্ভাবনাও বাড়ায়। আরও অপ্টিমাইজেশন কৌশলটিকে আরও শক্তিশালী করতে পারে, প্রবণতা অনুসরণ করার ক্ষমতা বাড়িয়ে তুলতে পারে।


/*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

আরো