
ট্রেন্ড ট্র্যাকিং মোবাইল স্টপ কৌশলটি একটি পরিমাণগত ট্রেডিং কৌশল যা প্রবণতা নির্ধারণের সূচক এবং মোবাইল স্টপ মেকানিজমকে একত্রিত করে। এই কৌশলটি বর্তমান প্রবণতার দিকনির্দেশের জন্য সুপার ট্রেন্ডিং সূচক ব্যবহার করে এবং প্রবণতা ট্র্যাকিং এবং ঝুঁকি নিয়ন্ত্রণের জন্য রিয়েল-টাইমে মূল্য পরিবর্তনের জন্য মোবাইল স্টপ লাইন ব্যবহার করে।
এই কৌশলটি প্রথমে একটি সুপার ট্রেন্ডিং সূচক গণনা করে, যা নির্ধারণ করে যে এটি বর্তমানে একটি উত্থান বা পতনের প্রবণতা রয়েছে। সুপার ট্রেন্ডিং সূচকটি এটিআর সূচক এবং কেন্দ্রীয় পয়েন্টের সাথে মিলিত হয়, যা প্রবণতার দিকটি আরও সঠিকভাবে নির্ধারণ করতে পারে। যদি সুপার ট্রেন্ডিং সূচকটি একটি উত্থান হিসাবে বিচার করা হয় তবে এটি একটি কেনার সংকেত উত্পন্ন করে; যদি এটি একটি পতনের প্রবণতা হিসাবে বিচার করা হয় তবে এটি একটি বিক্রয় সংকেত উত্পন্ন করে।
যখন একটি ক্রয় সংকেত উত্পন্ন হয়, তখন কৌশলটি আরও পজিশন খুলবে; একই সাথে, এটি রিয়েল-টাইমে একটি চলমান স্টপ-লাইন গণনা করবে, যার স্টপ-লাইনটি কেন্দ্রীয় বিন্দু থেকে এটিআর সূচকের মানকে বাদ দিয়ে গণনা করা হয়। যতক্ষণ না বর্তমান ক্লোজ-আপ মূল্যটি স্টপ-লাইনের উপরে থাকে, ততক্ষণ স্টপ-লাইনটি রিয়েল-টাইমে সরানো হবে এবং সর্বদা যুক্তিসঙ্গত স্টপ-অবস্থানে থাকবে। যদি দামটি স্টপ-লাইনটি অতিক্রম করে তবে পজিশনটি বন্ধ হয়ে যায়।
এই কৌশলটি একই সময়ে ADX এবং RSI সূচকগুলির সাথে মিলিত হয় যাতে অপ্রয়োজনীয় ট্রেডিং সংকেতগুলি ফিল্টার করা যায়। ADX যখন সেট থ্রেশহোল্ডের চেয়ে বড় হয় এবং RSI যুক্তিসঙ্গত পর্যায়ে থাকে তখনই সুপারট্রেন্ডিং সূচকের সংকেতটি গ্রহণ করে পজিশন খোলার জন্য।
এই কৌশলটির সবচেয়ে বড় সুবিধা হ’ল প্রবণতার দিকটি খুব ভালভাবে ধরে রাখা এবং প্রবণতা অনুসরণ করা। সুপার ট্রেন্ডিং সূচকটি সরল চলমান গড়ের চেয়ে বেশি নির্ভুল এবং দ্রুত টার্নপয়েন্ট নির্ধারণ করতে পারে। একই সাথে, চলমান স্টপ লস প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে স্টপ লসটি সামঞ্জস্য করতে পারে, সর্বাধিক মুনাফা লক করতে পারে এবং ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করতে পারে।
এছাড়াও, এই কৌশলটি এডিএক্স এবং আরএসআই সূচকগুলিকে ফিল্টার করার জন্য অন্তর্ভুক্ত করে, যা বাজারের উচ্চতর অস্থিরতার সময়কালে ভুল লেনদেন এড়াতে পারে। এডিএক্স সূচকগুলি যথেষ্ট প্রবণতা নিশ্চিত করে এবং আরএসআই সূচকগুলি ওভার-বিক্রয় ওভার-বিক্রয় এড়াতে পারে, যার ফলে মুনাফার সম্ভাবনা বৃদ্ধি পায়।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হ’ল প্রবণতাটি ভুলভাবে বিচার করা এবং সুপারট্রেন্ডিং সূচকটি ভুল সংকেত দেওয়ার সম্ভাবনা। যদিও সুপারট্রেন্ডিং সূচকটি সরল চলমান গড়ের চেয়ে আরও ভাল, জটিল পরিস্থিতিতে ভুল বিচার করা অনিবার্য। এই ক্ষেত্রে ক্ষতি নিয়ন্ত্রণের জন্য স্টপ মেশিনের উপর নির্ভর করা প্রয়োজন।
এছাড়াও, কৌশলগত প্যারামিটারগুলি ভুলভাবে সেট করাও কিছু ঝুঁকি নিয়ে আসে। উদাহরণস্বরূপ, এটিআর প্যারামিটারগুলি সম্মেলনের পরে থামার লাইনটি অত্যধিক তীব্রতার সাথে সামঞ্জস্য করতে পারে; এডিএক্স এবং আরএসআইয়ের প্যারামিটারগুলিও মিস করা ট্রেডিংয়ের সুযোগ বা ভুল ব্যবসায়ের সম্ভাবনা বাড়িয়ে তুলতে পারে। এর জন্য প্রচুর historicalতিহাসিক ব্যাকআপের মাধ্যমে সর্বোত্তম প্যারামিটারগুলি সন্ধান করা প্রয়োজন।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে আরও উন্নত করা যেতে পারেঃ
অন্যান্য প্রবণতা নির্ণয়কারী সূচক যেমন ডিএমআই, কেডিজে ইত্যাদির সাথে সুপার ট্রেন্ডিং সূচকের সংমিশ্রণ চেষ্টা করে, একটি বহু-ফ্যাক্টর প্রবণতা নির্ণয় সিস্টেম তৈরি করে, যা বিচার সঠিকতা বাড়িয়ে তুলতে পারে।
মেশিন লার্নিং-ভিত্তিক স্বনির্ধারিত প্যারামিটার অপ্টিমাইজেশান মডিউল যুক্ত করা হয়েছে, যাতে এটিআর প্যারামিটার, এডিএক্স প্যারামিটার, আরএসআই প্যারামিটার ইত্যাদি রিয়েল-টাইম মার্কেটের উপর ভিত্তি করে সামঞ্জস্য করা যায়, কেবলমাত্র নির্দিষ্ট মানের পরিবর্তে।
সংকেতগুলি ফিল্টার করার জন্য আবেগ সূচক ইত্যাদির মতো বিকল্প আরএসআই সূচকগুলি প্রবর্তন করা হয়েছে। আরএসআই সূচকগুলি জটিল পরিস্থিতির বিচার করার জন্য আদর্শ নয়, এবং সামাজিক আবেগ সূচকগুলি বাজার উত্তাপের আরও ভাল বিচার করতে পারে।
পজিশন ম্যানেজমেন্ট মডিউল যুক্ত করুন, স্টপ লিনের বর্তমান মূল্যের দূরত্বের সাথে সম্পর্কিত পজিশন আকারকে গতিশীলভাবে সামঞ্জস্য করুন। স্টপ লিনের থেকে যত বেশি দূরত্বে, আপনি যথাযথভাবে পজিশন বাড়িয়ে লাভের জায়গা বাড়িয়ে তুলতে পারেন।
প্রবণতা ট্র্যাকিং মোবাইল স্টপ কৌশলটি প্রবণতা বিশ্লেষণ, মোবাইল স্টপ এবং মাল্টি ফ্যাক্টর ফিল্টারিংয়ের মতো পদ্ধতিগুলি ব্যবহার করে, প্রবণতা ক্যাপচার করার সাথে সাথে ঝুঁকি কঠোরভাবে নিয়ন্ত্রণ করে, এটি একটি পরিপক্ক পরিমাণগত কৌশল। এই কৌশলটি অপ্টিমাইজ করার জন্য অনেক জায়গা রয়েছে এবং এটি আরও জটিল বাজার পরিবেশের সাথে খাপ খাইয়ে নেওয়ার জন্য আরও গবেষণা এবং উন্নতি করার যোগ্য।
/*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")