ট্রেন্ড ট্র্যাকিং ট্রেলিং স্টপ কৌশল একটি পরিমাণগত ট্রেডিং কৌশল যা প্রবণতা বিচার সূচক এবং ট্রেলিং স্টপ প্রক্রিয়াগুলিকে একত্রিত করে। এই কৌশলটি বর্তমান প্রবণতার দিক নির্ধারণের জন্য সুপারট্রেন্ড সূচক ব্যবহার করে এবং রিয়েল টাইমে দামের পরিবর্তনগুলি ট্র্যাক করতে একটি ট্রেলিং স্টপ লাইন ব্যবহার করে, প্রবণতা ট্র্যাকিং এবং ঝুঁকি নিয়ন্ত্রণ অর্জন করে।
কৌশলটি প্রথমে বর্তমান প্রবণতা আপ বা ডাউন কিনা তা বিচার করার জন্য সুপারট্রেন্ড সূচক গণনা করে। সুপারট্রেন্ড সূচকটি আরও সঠিকভাবে প্রবণতার দিক নির্ধারণের জন্য এটিআর সূচক এবং পিভট পয়েন্টকে অন্তর্ভুক্ত করে। যদি সুপারট্রেন্ড সূচক একটি আপট্রেন্ড বিচার করে তবে একটি ক্রয় সংকেত উত্পন্ন হয়। যদি এটি একটি ডাউনট্রেন্ড বিচার করে তবে একটি বিক্রয় সংকেত উত্পন্ন হয়।
যখন একটি ক্রয় সংকেত উত্পন্ন হয়, তখন কৌশলটি একটি দীর্ঘ অবস্থান খুলবে। একই সাথে, এটি রিয়েল টাইমে একটি ট্রেলিং স্টপ লাইন গণনা করে। এই স্টপ লাইনের গণনার পদ্ধতিটি পিভট পয়েন্ট বিয়োগ করে এটিআর সূচক মান। যতক্ষণ বর্তমান বন্ধের মূল্য এই স্টপ লাইনের চেয়ে বেশি থাকে, স্টপ লাইনটি রিয়েল টাইমে উপরে চলে যাবে এবং একটি যুক্তিসঙ্গত স্টপ লস অবস্থান বজায় রাখবে। যদি দাম স্টপ লাইনটি ভেঙে যায় তবে অবস্থানটি স্টপ লস দিয়ে বন্ধ হবে।
এই কৌশলটি অনুপযুক্ত ট্রেডিং সংকেতগুলি ফিল্টার করার জন্য ADX এবং RSI সূচকগুলিকেও অন্তর্ভুক্ত করে। কেবলমাত্র যখন ADX সেট প্রান্তিকের চেয়ে বড় এবং RSI যুক্তিসঙ্গত স্তরে থাকে তখনই সুপারট্রেন্ড সূচক থেকে সংকেতগুলি পজিশন খোলার জন্য বিশ্বাসযোগ্য হবে।
এই কৌশলটির সবচেয়ে বড় সুবিধা হ'ল এটি প্রবণতার দিকটি ভালভাবে বুঝতে পারে এবং প্রবণতা ট্র্যাকিং অর্জন করতে পারে। সুপারট্রেন্ড সূচকটি সহজ চলমান গড়ের চেয়ে আরও নির্ভুল এবং দ্রুত পালা পয়েন্টগুলি নির্ধারণ করতে পারে। একই সাথে, ট্রেলিং স্টপ প্রক্রিয়াটি লাভ লকিং সর্বাধিকীকরণ এবং কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণের জন্য স্বয়ংক্রিয়ভাবে স্টপ স্তরগুলি সামঞ্জস্য করতে পারে।
এছাড়াও, এডিএক্স এবং আরএসআই সূচকগুলি ফিল্টারিংয়ের কৌশলটিতে যুক্ত করা হয়, বাজারের উচ্চ অস্থিরতার সময় ত্রুটিগুলি এড়ানো হয়। এডিএক্স সূচক পর্যাপ্ত প্রবণতা নিশ্চিত করে এবং আরএসআই সূচক অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় দৃশ্যকল্পগুলি এড়ায়, যার ফলে লাভজনকতা উন্নত হয়।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হ'ল প্রবণতা রায় ভুল হয় এবং সুপারট্রেন্ড সূচকটি একটি ভুল সংকেত দেয়। যদিও সুপারট্রেন্ড সূচকটি সহজ চলমান গড়ের চেয়ে উন্নত, তবে জটিল বাজারের পরিস্থিতিতে ভুল বিচার হওয়া অনিবার্য। এই মুহুর্তে, ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস প্রক্রিয়াগুলির উপর নির্ভর করা প্রয়োজন।
এছাড়াও, অনুপযুক্ত কৌশল পরামিতি সেটিংগুলিও ঝুঁকি সৃষ্টি করতে পারে। উদাহরণস্বরূপ, একটি এটিআর পরামিতি যা খুব বড় হবে তা অত্যধিক আক্রমণাত্মক স্টপ-লস লাইন সমন্বয়গুলির দিকে পরিচালিত করবে। এডিএক্স এবং আরএসআই পরামিতিগুলির অনুপযুক্ত সেটিংসগুলিও ট্রেডিং সুযোগগুলি মিস করতে পারে বা ভুল ব্যবসায়ের সম্ভাবনা বাড়িয়ে তুলতে পারে। এটি সর্বোত্তম পরামিতিগুলি খুঁজে পেতে বিস্তৃত historicalতিহাসিক ব্যাকটেস্টিংয়ের প্রয়োজন।
কৌশলটি নিম্নলিখিত দিকগুলিতে আরও অনুকূলিত করা যেতে পারেঃ
মেশিন লার্নিং ভিত্তিক অভিযোজিত পরামিতি অপ্টিমাইজেশান মডিউল বাড়ানো যাতে ATR পরামিতি, ADX পরামিতি, RSI পরামিতি ইত্যাদি স্থির মানের পরিবর্তে রিয়েল-টাইম বাজারের অনুযায়ী সামঞ্জস্য করা যায়।
সিগন্যাল ফিল্টারিংয়ের জন্য আরএসআই সূচকগুলি প্রতিস্থাপনের জন্য আবেগ সূচকগুলি প্রবর্তন করুন। জটিল বাজারের পরিস্থিতিতে আরএসআই সূচকগুলি ভালভাবে সম্পাদন করে না, যখন সামাজিক আবেগ সূচকগুলি বাজারের উত্সাহকে আরও ভালভাবে নির্ধারণ করতে পারে।
অবস্থান আকার ব্যবস্থাপনা মডিউল বৃদ্ধি করুন। স্টপ লাইন এবং বর্তমান মূল্যের মধ্যে দূরত্ব অনুযায়ী, গতিশীলভাবে অবস্থান আকার সামঞ্জস্য করুন। স্টপ লাইন থেকে আরও দূরে, লাভের সম্ভাব্যতা উন্নত করার জন্য অবস্থান আকার যথাযথভাবে বৃদ্ধি করা যেতে পারে।
ট্রেন্ড ট্র্যাকিং ট্রেলিং স্টপ কৌশলটি ট্রেন্ড বিশ্লেষণ, ট্রেলিং স্টপ এবং মাল্টি-ফ্যাক্টর ফিল্টারিংয়ের মতো পদ্ধতিগুলি ব্যাপকভাবে ব্যবহার করে। ট্রেন্ডগুলি ক্যাপচার করার সময়, এটি কঠোরভাবে ঝুঁকি নিয়ন্ত্রণ করে এবং এটি আরও পরিপক্ক পরিমাণগত কৌশল। আরও জটিল বাজারের পরিবেশে এটি অভিযোজিত করার জন্য এই কৌশলটি অনুকূলিতকরণের জন্য এখনও দুর্দান্ত সম্ভাবনা রয়েছে।
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bendre ADX Sup Trend", overlay = true) /////////////////////////// // SuperTrend + Pivot Point ////////////////////////// src = input(close, title="EMA Source") PPprd = input(defval = 2, title="Pivot Point Period") AtrFactor=input(defval = 2, title = "ATR Factor") AtrPd=input(defval = 18, title = "ATR Period") StartDate = input(timestamp("1 Dec 2022"), title="Start Date") EndDate = input(timestamp("12 Jan 2023"), title="End Date") var float ph = na var float pl = na ph := ta.pivothigh(PPprd, PPprd) pl :=ta.pivotlow(PPprd, PPprd) float center = na center := center[1] // float lastpp = ph ? ph : pl ? pl : 0.0 float lastpp = na(ph) ? na(pl) ? na : pl : ph if lastpp > 0 if na(center) center := lastpp else center := (center * 2 + lastpp) / 3 Up = center - (AtrFactor * ta.atr(AtrPd)) Dn = center + (AtrFactor * ta.atr(AtrPd)) var float TUp = na var float TDown = na Trend = 0 TUp := close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up TDown := close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1) Trailingsl = Trend == 1 ? TUp : TDown // Lines linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na plot(Trailingsl, color = linecolor , linewidth = 2, title = "PP SuperTrend") bsignalSSPP = close > Trailingsl ssignalSSPP = close < Trailingsl /////// // ADX ////// lenADX = 14 th = 14 TrueRange = math.max(math.max(high-low, math.abs(high-nz(close[1]))), math.abs(low-nz(close[1]))) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? math.max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? math.max(nz(low[1])-low, 0): 0 SmoothedTrueRange = 0.0 SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/lenADX) + TrueRange SmoothedDirectionalMovementPlus = 0.0 SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/lenADX) + DirectionalMovementPlus SmoothedDirectionalMovementMinus = 0.0 SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/lenADX) + DirectionalMovementMinus DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = math.abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100 ADX = ta.sma(DX, lenADX) ////// // MA ///// lenMA = 21 srcMA = input(close, title="Source") // offsetMA = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500) offsetMA = input(0, title="Offset") outMA = ta.sma(srcMA, lenMA) // // RSI // length = input( 14 ) overSold = input( 30 ) overBought = input( 65 ) price = close vrsi = ta.rsi(price, length) // Buy - Sell Entries buy = bsignalSSPP and outMA < close and ADX > th sell = ssignalSSPP if (buy and vrsi > overBought) // .order // Tuned version strategy.entry("Buy", strategy.long) // strategy.close("Sell", "close Sell") if (sell) and (strategy.position_size > 0) // strategy.entry("Sell", strategy.short) strategy.close("Buy", "Close Buy") // if(sell and vrsi < overSold ) // strategy.entry("Sell", strategy.short) // if(buy) and (strategy.position_size > 0) // strategy.close("Sell", "close Sell")