
এই কৌশলটি গতিশীল সূচক এবং দ্বি-মুখী ট্র্যাকিং সূচকগুলির সাথে মিলিত, একটি শক্তিশালী প্রবণতার মধ্যে বিরতি সংকেত ক্যাপচার করে এবং প্রবণতা অনুসরণ করে। যখন দাম উর্ধ্বমুখী হয় এবং যখন দাম নীচের দিকে যায় তখন এটি খালি থাকে, এটি প্রবণতা অনুসরণকারী কৌশলগুলির মধ্যে রয়েছে।
হিলো অ্যাক্টিভেটর সূচক ব্যবহার করে মধ্যবর্তী মূল্য গণনা করা হয়। এই সূচকটি সর্বোচ্চ এবং সর্বনিম্ন মূল্যের মধ্যবর্তী স্থানকে মধ্যবর্তী মূল্য হিসাবে গ্রহণ করে। যখন দাম বৃদ্ধি পায় তখন মধ্যবর্তী মূল্য ভেঙে একটি কেনার সংকেত উত্পন্ন হয় এবং যখন দাম কমে যায় তখন মধ্যবর্তী মূল্য ভেঙে একটি বিক্রয় সংকেত উত্পন্ন হয়।
গড় প্রবণতা সূচক ADX প্রবণতা শক্তি নির্ণয় করার জন্য ব্যবহৃত হয়। ADX এর মান যত বেশি, প্রবণতা তত শক্তিশালী। এই কৌশলটি একটি নির্দিষ্ট থ্রেশহোল্ডের ADX ব্যবহার করে সংকেতগুলি ফিল্টার করার জন্য কাজ করে, যখন প্রবণতা যথেষ্ট শক্তিশালী হয় তখনই সংকেত তৈরি করে।
মাল্টি-ডাইরেক্টরি নির্দেশক ডিআই+ এবং ডিআই- যথাক্রমে মাল্টি-হেড শক্তি এবং খালি হেড শক্তি নির্দেশ করে। এই কৌশলটি একই সাথে একটি নির্দিষ্ট থ্রেশহোল্ডের ডিআই+ এবং ডিআই-এর সাথে মিলিত হয় যাতে মাল্টি-হেড এবং খালি হেডের শক্তি নিশ্চিত করা যায় এবং ভুল সংকেতগুলি এড়ানো যায়।
যখন দাম মধ্যবর্তী মূল্যকে অতিক্রম করে, ADX হ্রাসের চেয়ে বেশি এবং DI + হ্রাসের চেয়ে বেশি, তখন একটি কেনার সংকেত তৈরি হয়; যখন দাম মধ্যবর্তী মূল্যকে অতিক্রম করে, ADX হ্রাসের চেয়ে বেশি এবং DI- হ্রাসের চেয়ে বেশি, তখন একটি বিক্রয় সংকেত তৈরি হয়।
এই কৌশলটি গতিশীলতার সূচক এবং প্রবণতা সূচকগুলির সুবিধাগুলি একত্রিত করে, প্রবণতার বিকাশের প্রথম দিকে দামের বিঘ্নগুলিকে ক্যাপচার করতে সক্ষম হয়, যার ফলে প্রবণতাটি কঠোরভাবে চালিত হয়। একই সাথে, প্রবণতা ফিল্টারিংয়ের শর্তগুলি কঠোরভাবে সংহত করা হয়, যা কনসোলিডেশন বাজার এবং ঝড়ের বাজারগুলির ভুল সংকেত এড়াতে সহায়তা করে।
একক গতিশীলতা সূচক ব্যবহারের তুলনায়, এই কৌশলটি সংকেত তৈরি করার সময় প্রবণতা শক্তির বিচার যুক্ত করে, ভুল সংকেত হ্রাস করতে পারে এবং মুনাফা অর্জনের সম্ভাবনা বাড়িয়ে তুলতে পারে। প্রবণতা ট্র্যাকিং সূচক ব্যবহারের তুলনায়, এই কৌশলটি বিরতি দিয়ে সংকেত তৈরি করে, যা প্রবণতার আগে প্রবেশ করতে পারে।
সামগ্রিকভাবে, কৌশলটি প্রবণতা অনুসরণ করতে, সময়মতো প্রবেশ এবং প্রস্থান করতে এবং ময়লা এড়াতে সহায়তা করে; একই সাথে প্রবণতা বিপরীত হওয়ার ক্ষতি হ্রাস করতে পারে।
এই কৌশলটির একটি নির্দিষ্ট whipsaw ঝুঁকি রয়েছে, যেহেতু দামের একটি নির্দিষ্ট পরিমাণে পুনর্নির্মাণ হতে পারে যা বিপরীত সংকেত তৈরি করে। এছাড়াও, ADX এবং DI ব্যবহার করে ফিল্টারিং শর্তগুলি সেট করার ফলে কিছু প্রাথমিক অপারেশন সুযোগ মিস হতে পারে।
হুইপসাউয়ের ঝুঁকি হ্রাস করার জন্য, হাইলো অ্যাক্টিভেটরের প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা যেতে পারে, যা বিপর্যয়কে বাড়িয়ে তোলে। আরও সুযোগ অর্জনের জন্য, এডিএক্স এবং ডিআইয়ের থ্রেশহোল্ড প্রয়োজনীয়তা হ্রাস করা যেতে পারে, তবে সংকেতের গুণমানকে ভারসাম্য দেওয়া দরকার।
এছাড়াও, ব্যবহারকারীদের বিভিন্ন জাত এবং বাজারের পরিবেশের মধ্যে প্যারামিটার সেটিংয়ের পার্থক্যের দিকে মনোযোগ দেওয়া দরকার। সাধারণভাবে, পণ্যদ্রব্যের জন্য উচ্চতর থ্রেশহোল্ড সেট করা প্রয়োজন; স্টক এবং ফরেক্সের জন্য নিম্নতর থ্রেশহোল্ড ব্যবহার করা যেতে পারে।
এই কৌশলটি প্যারামিটার সেটিংগুলিকে সামঞ্জস্য করে অপ্টিমাইজ করা যেতে পারে। প্রধান অপ্টিমাইজেশনের দিকগুলি হলঃ
হিলো অ্যাক্টিভেটর চক্র এবং ট্রিগার ভলিউম সামঞ্জস্য করুন, whipsaw ঝুঁকি এবং প্রবেশের সময়কে ভারসাম্য করুন।
ADX চক্র এবং থ্রেশহোল্ড প্রয়োজনীয়তা সামঞ্জস্য করুন, সংকেত গুণমান এবং প্রবেশের ফ্রিকোয়েন্সি ভারসাম্য।
একাধিক মাথা এবং খালি মাথা ডিআই এর থ্রেশহোল্ডগুলি সংশোধন করুন, যাতে একাধিক মাথা এবং খালি মাথা পরিবেশের পার্থক্যগুলি পৃথক করা যায়।
স্টপ লস কৌশল যুক্ত করুন, একক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস পয়েন্ট সেট করুন
অন্যান্য সহায়ক সূচকগুলির সাথে মিলিতভাবে, কৌশলটির সামগ্রিক স্থিতিশীলতা বাড়ানোর জন্য অপ্টিমাইজ করা হয়েছে।
এই কৌশলটি শক্তিশালী প্রবণতাগুলির মধ্যে ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করার জন্য গতিশীল সূচক এবং প্রবণতা সূচকগুলিকে সমন্বিত করে। এটির ধারাবাহিকতা, প্রবণতা-নিবিড়তার বৈশিষ্ট্য রয়েছে, যা প্রবণতার প্রাথমিক সুযোগগুলি ধরার জন্য উপযুক্ত। একই সাথে, এটির কিছু ঝুঁকি নিয়ন্ত্রণের ক্ষমতা রয়েছে, যা ভুল সংকেত এবং হুইপসো দ্বারা সৃষ্ট ক্ষতি হ্রাস করতে পারে। প্যারামিটার সমন্বয় এবং স্টপ লস কৌশল যুক্ত করে, এই কৌশলটি ধারাবাহিকভাবে স্থিতিশীল পারফরম্যান্স অর্জন করতে পারে। এটি একটি বহুমুখী প্রবণতা ট্র্যাকিং কৌশল, বিভিন্ন জাত এবং বাজারের পরিবেশের জন্য উপযুক্ত, এটি ব্যবসায়ীদের মূল গবেষণা এবং প্রয়োগের জন্য মূল্যবান।
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("HiLo Activator with ADX", shorttitle="HASB_ADX", overlay=true)
// Parameters for the HiLo Activator
length_ha = input(14, title="HiLo Activator Period")
offset_ha = input(0, title="Offset")
trigger_ha = input(1, title="Trigger for Buy/Sell")
// Parameters for ADX
adx_length = input(14, title="ADX Period", minval=1)
adx_threshold = input(25, title="ADX Threshold")
di_threshold = input(50, title="DI Threshold")
// Parameter for choosing the number of candles for backtest
backtest_candles = input(1000, title="Number of Candles for Backtest", minval=1)
// Function to get backtest data
getBacktestData() =>
var float data = na
if bar_index >= backtest_candles
data := security(syminfo.tickerid, "D", close[backtest_candles])
data
// HiLo Activator calculations
ha = (highest(high, length_ha) + lowest(low, length_ha)) / 2
// ADX calculations
trh = high - high[1]
trl = low[1] - low
tr = max(trh, trl)
atr = sma(tr, adx_length)
plus_dm = high - high[1] > low[1] - low ? max(high - high[1], 0) : 0
minus_dm = low[1] - low > high - high[1] ? max(low[1] - low, 0) : 0
smoothed_plus_dm = sma(plus_dm, adx_length)
smoothed_minus_dm = sma(minus_dm, adx_length)
di_plus = 100 * (smoothed_plus_dm / atr)
di_minus = 100 * (smoothed_minus_dm / atr)
dx = 100 * abs(di_plus - di_minus) / (di_plus + di_minus)
adx = sma(dx, adx_length)
// Buy and Sell signals based on HiLo Activator and ADX
signalLong = crossover(close, ha) and adx > adx_threshold and di_plus > di_threshold
signalShort = crossunder(close, ha) and adx > adx_threshold and di_minus > di_threshold
// Plot HiLo Activator and ADX
plot(ha, color=color.blue, title="HiLo Activator")
plot(offset_ha, color=color.red, style=plot.style_histogram, title="Offset")
plot(adx, color=color.purple, title="ADX")
// Backtest strategy
strategy.entry("Buy", strategy.long, when = signalLong)
strategy.entry("Sell", strategy.short, when = signalShort)
strategy.close("Buy", when = signalShort)
strategy.close("Sell", when = signalLong)
// Accuracy percentage
var accuracy = 0.0
var totalTrades = 0
var winningTrades = 0
if (signalLong or signalShort)
totalTrades := totalTrades + 1
if (signalLong and (not na(signalLong[1]) and (not signalLong[1])))
winningTrades := winningTrades + 1
if (signalShort and (not na(signalShort[1]) and (not signalShort[1])))
winningTrades := winningTrades + 1
accuracy := totalTrades > 0 ? (winningTrades / totalTrades) * 100 : 0
// Plot accuracy percentage on the chart
plot(accuracy, title="Accuracy Percentage", color=color.purple, style=plot.style_histogram)