মম্পটাম ব্রেকআউট দ্বি-নির্দেশমূলক ট্র্যাকিং কৌশল

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

img

সারসংক্ষেপ

এই কৌশলটি প্রবণতা ট্র্যাকিংয়ের জন্য শক্তিশালী প্রবণতাগুলিতে ব্রেকআউট সংকেতগুলি ক্যাপচার করার জন্য গতির সূচক এবং দ্বি-দিকনির্দেশক ট্র্যাকিং সূচকগুলিকে একত্রিত করে। দামগুলি যখন উপরে ভেঙে যায় তখন এটি দীর্ঘ হয় এবং দামগুলি যখন নীচে ভেঙে যায় তখন এটি সংক্ষিপ্ত হয়। এটি প্রবণতা ট্র্যাকিং কৌশল বিভাগের অন্তর্গত।

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

  1. হাইলো অ্যাক্টিভেটর সূচকটি সর্বোচ্চ উচ্চ এবং সর্বনিম্ন নিম্নের মধ্যপয়েন্ট ব্যবহার করে মধ্যপয়েন্টের মূল্য গণনা করে। যখন দামগুলি মধ্যপয়েন্টের উপরে ভেঙে যায়, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দামগুলি মধ্যপয়েন্টের নীচে ভেঙে যায়, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

  2. গড় দিকনির্দেশক সূচক (এডিএক্স) প্রবণতার শক্তি পরিমাপ করতে ব্যবহৃত হয়। এডিএক্স মান যত বেশি হবে, প্রবণতা তত শক্তিশালী হবে। এই কৌশলটি সিগন্যালগুলি ফিল্টার করার জন্য একটি থ্রেশহোল্ড সহ এডিএক্স ব্যবহার করে, কেবলমাত্র প্রবণতা যথেষ্ট শক্তিশালী হলে সংকেত উত্পন্ন করে।

  3. এই কৌশলটি ভুল সংকেত এড়াতে শক্তি নিশ্চিত করতে DI+ এবং DI- থ্রেশহোল্ড ব্যবহার করে।

  4. ক্রয় সংকেত তৈরি করা হয় যখন দামগুলি মধ্যপয়েন্টের উপরে ভেঙে যায়, এডিএক্স প্রান্তিকের চেয়ে বেশি এবং ডিআই + প্রান্তিকের চেয়ে বেশি। বিক্রয় সংকেত তৈরি করা হয় যখন দামগুলি মধ্যপয়েন্টের নীচে ভেঙে যায়, এডিএক্স প্রান্তিকের চেয়ে বেশি এবং ডিআই- প্রান্তিকের চেয়ে বেশি।

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

এই কৌশলটি গতি এবং প্রবণতা অনুসরণকারী সূচকগুলির সুবিধাগুলি একত্রিত করে প্রাথমিকভাবে ব্রেকআউটগুলি ক্যাপচার করতে এবং প্রবণতাগুলি ঘনিষ্ঠভাবে অনুসরণ করতে। কঠোর প্রবণতা ফিল্টার শর্তগুলিও একীকরণ এবং ব্যাপ্তি সময়কালে ভুল সংকেতগুলি এড়াতে সহায়তা করে।

একাকী গতির সূচক ব্যবহারের তুলনায়, এই কৌশলটি প্রবণতা শক্তি মূল্যায়নকে সংকেতগুলি ফিল্টার করতে এবং লাভজনকতা উন্নত করতে যুক্ত করে। খাঁটি প্রবণতা অনুসরণকারী কৌশলগুলির তুলনায়, এই কৌশলটি ব্রেকআউট সংকেতগুলির মাধ্যমে প্রবণতা আগে প্রবেশ করতে পারে।

সামগ্রিকভাবে, কৌশলটি প্রবণতা সুচারুভাবে ট্র্যাক করতে পারে, সময়মতো প্রবেশ এবং প্রস্থান করতে পারে এবং একই সাথে প্রবণতা বিপরীতকরণের ক্ষতি হ্রাস করার সময় একীকরণে আটকে থাকা এড়াতে পারে।

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

এই কৌশলটি অস্থায়ী মূল্য বিপরীত থেকে কিছু whipsaw ঝুঁকি আছে ভুল সংকেত উত্পাদন। এছাড়াও, ADX এবং DI প্রান্তিক ব্যবহার কিছু প্রাথমিক সুযোগ মিস হতে পারে।

Whipsaw ঝুঁকি কমাতে, HiLo Activator প্যারামিটার tweak breakout পরিসীমা বৃদ্ধি করতে. আরো সুযোগ ক্যাপচার করতে, সংকেত মানের খরচে ADX এবং DI থ্রেশহোল্ড কম.

ব্যবহারকারীদের পণ্য এবং বাজার পরিবেশে পার্থক্যগুলিও লক্ষ্য করা উচিত। উচ্চতর থ্রেশহোল্ডগুলি সাধারণত পণ্যগুলির জন্য আরও ভাল কাজ করে যখন কম থ্রেশহোল্ডগুলি স্টক এবং ফরেক্সের জন্য উপযুক্ত।

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

এই কৌশলটি অপ্টিমাইজ করার প্রধান উপায়গুলির মধ্যে রয়েছেঃ

  1. হাইলো অ্যাক্টিভেটর সময় এবং ট্রিগার মাত্রা সামঞ্জস্য করতে হুইপসা ঝুঁকি এবং সময়।

  2. সিগন্যালের গুণমান এবং ফ্রিকোয়েন্সি ভারসাম্য বজায় রাখতে ADX সময়কাল এবং থ্রেশহোল্ডটি tweak করুন।

  3. ডিআই+ এবং ডিআই- এর জন্য পৃথক থ্রেশহোল্ডার নির্ধারণ করুন যাতে আপট্রেন্ড এবং ডাউনট্রেন্ডের মধ্যে পার্থক্য থাকে।

  4. একক ট্রেড লস নিয়ন্ত্রণের জন্য স্টপ লস স্তরের সাথে স্টপ লস কৌশল যুক্ত করুন।

  5. সামগ্রিক স্থিতিশীলতা উন্নত করতে অন্যান্য সহায়ক সূচকগুলির সাথে একত্রিত করুন।

সিদ্ধান্ত

এই কৌশলটি শক্তিশালী প্রবণতার সময় সংকেত উত্পন্ন করার জন্য গতি এবং প্রবণতা অনুসরণকারী সূচক উভয়কেই বিবেচনা করে। এটি প্রবণতাগুলি মসৃণভাবে এবং ঘনিষ্ঠভাবে অনুসরণ করার সুবিধা রয়েছে, প্রাথমিক প্রবণতার সুযোগগুলি ক্যাপচার করার জন্য উপযুক্ত। এটি ভুল সংকেত এবং উইপসাও থেকে ক্ষতি হ্রাস করার জন্য যুক্তিসঙ্গত ঝুঁকি নিয়ন্ত্রণ ক্ষমতাও রয়েছে। প্যারামিটার টিউনিং এবং স্টপ লস সংযোজনগুলির সাথে এটি স্থিতিশীল পারফরম্যান্স অর্জন করতে পারে। বিভিন্ন পণ্য এবং বাজারে ফিট করে এমন একটি বহুমুখী প্রবণতা ট্র্যাকিং কৌশল হিসাবে এটি কোয়ান্ট ট্রেডারদের কাছ থেকে ভাল মনোযোগ এবং প্রয়োগের যোগ্য।


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


আরো