এটি একটি দৈনিক ব্যবধান সুইং ট্রেডিং কৌশল যা এটিআর স্টপ ব্যবহার করে গতির কৌশলগুলির উপর ভিত্তি করে। এটি স্থিতিশীল থেকে কোরি হং দ্বারা তৈরি করা হয়েছিল।
কৌশলটি গতির সূচক ব্যবহার করে প্রবণতার দিকনির্দেশনা নির্ধারণ করে এবং ATR এর ভিত্তিতে স্টপ লস লাইনগুলি নির্ধারণ করে কম-ক্রয়-উচ্চ-বিক্রয় সুইং ট্রেডিং বাস্তবায়নের জন্য।
কোড প্রথমে ব্যাকটেস্টিং সময় পরিসীমা সেট করে।
তারপর সূচক বিভাগে, নিম্নলিখিত সূচকগুলি গণনা করা হয়ঃ
প্রবণতা মূল্যায়নের মূল যুক্তি হল:
যদি ক্লোজ আগের ডাউনসাইড স্টপ লস লাইনের চেয়ে বেশি হয়, তাহলে এটিকে আপট্রেন্ড হিসেবে বিবেচনা করা হয়; যদি ক্লোজ আগের আপসাইড স্টপ লস লাইনের চেয়ে কম হয়, তাহলে এটিকে ডাউনট্রেন্ড হিসেবে বিবেচনা করা হয়।
যখন ট্রেন্ড পরিবর্তন হয়, স্টপ লস লাইন অবস্থান সামঞ্জস্য করুন।
বিশেষ করে, একটি আপট্রেন্ডে, স্টপ লস লাইনটি পূর্ববর্তী বারের সর্বোচ্চ মূল্য বিয়োগ করে ATR মানের উপর সেট করা হয়; একটি ডাউনট্রেন্ডে, স্টপ লস লাইনটি পূর্ববর্তী বারের সর্বনিম্ন মূল্য বিয়োগ করে ATR মানের উপর সেট করা হয়।
এটি স্টপ লস অনুসরণ করে প্রবণতা উপলব্ধি করে।
ট্রেডিং নিয়ম বিভাগে, যখন দাম স্টপ লস লাইন অতিক্রম করে তখন লং/শর্ট পজিশন খুলুন।
এই কৌশলটির সুবিধাঃ
এছাড়াও কিছু ঝুঁকি আছেঃ
কিছু অপ্টিমাইজেশনঃ
এই কৌশলটি অপ্টিমাইজ করার জন্য কিছু দিকনির্দেশঃ
সর্বোত্তম খুঁজে পেতে বিভিন্ন এটিআর পরামিতি পরীক্ষা করুন। একাধিক পরামিতি সেট ব্যাকটেস্ট করুন এবং রিটার্ন / ঝুঁকি অনুপাত মূল্যায়ন করুন।
ATR এর উপরে অস্থিরতা মেট্রিক্স একত্রিত করে স্টপ লস অপ্টিমাইজ করুন। অস্থিরতা মেট্রিক্স যুক্ত করুন, অস্থিরতা বৃদ্ধির সময়কালে স্টপ লসকে সঠিকভাবে শিথিল করুন।
প্রবণতা ফিল্টার যোগ করুন, যখন বাজারে অস্থিরতা থাকে তখন ট্রেড এড়াতে। প্রবণতা বিচার সূচক যোগ করুন, শুধুমাত্র প্রবণতা পরিষ্কার হলে ট্রেড করুন।
অ্যাকাউন্ট ব্যবহারের অনুপাত, পরপর স্টপ লস টাইম ইত্যাদির উপর ভিত্তি করে অবস্থানের আকার সামঞ্জস্য করুন।
ওভারনাইট গ্যাপ ঝুঁকি নিয়ন্ত্রণ যোগ করুন। ওভারনাইট গ্যাপ ঝুঁকি এড়ানোর জন্য বাজারের বন্ধ হওয়ার আগে সক্রিয়ভাবে ক্ষতি কাটা।
একটি মৌলিক দৈনিক সুইং ট্রেডিং কৌশল হিসাবে, সামগ্রিক যুক্তি পরিষ্কার। এটি গতি কৌশলগুলির সাথে প্রবণতা বিচার করে এবং ATR ব্যবহার করে স্টপ লস অনুসরণ করে, কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে।
অপ্টিমাইজেশান জন্য এখনও বড় জায়গা, কৌশল আরো বাস্তব করতে প্রবণতা রায়, স্টপ লস পদ্ধতি, অবস্থান আকার ইত্যাদি দিক থেকে উন্নত করা যেতে পারে। সামগ্রিকভাবে এই কৌশল পরিমাণগত ট্রেডিং জন্য একটি কঠিন কাঠামো প্রদান করে।
/*backtest start: 2023-01-29 00:00:00 end: 2024-02-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("BTC Swinger", 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 = 2010, title = "From Year") ToMonth = input(defval = 12, title = "To Month", minval = 1) ToDay = input(defval = 31, 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