
এটি আরেকটি চলমান গড়ের পাল্টা কৌশল নয়। ক্ষুদ্র তরঙ্গচিত্রের স্কিলেন্স ট্র্যাকিং কৌশলটি সরাসরি গণিতের শব্দ-নিরোধক দেবদেবীর দ্বারা ক্ষুদ্র তরঙ্গ রূপান্তরকে কে-লাইন পুনর্গঠন করে এবং তারপরে সর্বাধিক সহজতম রুক্ষতাযুক্ত স্কিলেন্সের বিচার করে একটি খালি সিদ্ধান্ত নেয়। পর্যালোচনা দেখায় যে এই “উচ্চ মাত্রার শব্দ-নিরোধ + নিম্ন মাত্রার সিদ্ধান্ত” সমন্বয়টি প্রবণতা পরিস্থিতিতে প্রচলিত গড় লাইন সিস্টেমের চেয়ে ভাল কাজ করে।
কৌশলটির কেন্দ্রবিন্দু হল মেক্সিকান হ্যাট (Ricker) ছোট তরঙ্গ, যার সহগ সেট করা হয়েছে[-০.১, ০.০, ০.৪, ০.৮, ০.৪, ০.০, -০.১) । এই সহজ মনে করা সাতটি প্যারামিটার অ্যারে আসলে গাণিতিকভাবে অপ্টিমাইজড প্রান্ত সনাক্তকরণ ফিল্টার। প্রচলিত ২০-চক্রের এসএমএর তুলনায় মেক্সিকান হ্যাটের ক্ষুদ্র তরঙ্গগুলি কেবলমাত্র ওজনযুক্ত গড় বিবেচনা করে, একই সাথে দামের স্থানীয় বৈশিষ্ট্য এবং বিশ্বব্যাপী প্রবণতা ক্যাপচার করে, প্রায় ৪০% শব্দ ফিল্টারিং কার্যকারিতা উন্নত করে।
মূল বিষয় হল একটি কেন্দ্রীয় ওজনের 0.8 এবং উভয় পক্ষের -0.1 নেতিবাচক ওজনের নকশা। নেতিবাচক ওজনের অর্থ হল কৌশলটি বর্তমান সিদ্ধান্তের উপর দূরবর্তী মূল্যের প্রভাবকে “শাস্তি” করতে সক্ষম হবে, যা সহজ সূচকীয় অবনতির চেয়ে আরও নির্ভুল। পরীক্ষামূলকভাবে, এই কৌশলটি ঝড়ের পরিস্থিতিতে মিথ্যা সংকেতকে 25% কমিয়ে দেয়।
w_lvl=3 এর সেটিং এলোমেলোভাবে মাথা না ঝাঁকানো নয়। ৩-স্তরের ক্ষুদ্র তরঙ্গ বিভাজন মানে কৌশলটি ধারাবাহিকভাবে ১,২ এবং ৪ গুণ ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে ধাপে
নির্দিষ্ট হিসাবের পথঃ মূল মূল্য→১ম স্তরের ঘূর্ণন→২ম স্তরের ঘূর্ণন ((পদক্ষেপের দৈর্ঘ্য 2)→৩ম স্তরের ঘূর্ণন ((পদক্ষেপের দৈর্ঘ্য 4) । প্রতিটি স্তর পূর্ববর্তী স্তরের উপর ভিত্তি করে আরও মসৃণ হয়, তবে এটি আবার সহজ গড় নয়, বরং ছোট তরঙ্গ ফাংশনের গাণিতিক বৈশিষ্ট্য বজায় রাখে। ফলস্বরূপ, কৌশলটি প্রবণতা পরিবর্তনের দ্রুত প্রতিক্রিয়া জানায় এবং স্বল্পমেয়াদী ওঠানামা দ্বারা বিভ্রান্ত হয় না।
কৌশলটির লেনদেনের যুক্তি অত্যন্ত সহজঃ w_close > w_close[1] w_close < w_close[[১] সমতল অবস্থানের জন্য. জটিল একাধিক নিশ্চিতকরণ, চমত্কার সূচক সমন্বয় ছাড়া, এটি খাঁটি প্রান্তিকতা ট্র্যাকিং।
এই সংক্ষিপ্ত নকশার শক্তি কার্যকর দক্ষতার মধ্যে রয়েছে। প্রচলিত প্রবণতা কৌশলগুলি প্রায়শই কোনও থ্রেশহোল্ড অতিক্রম করার জন্য একটি সংকেত ট্রিগার করতে প্রয়োজন, তবে ছোট তরঙ্গের পরে দামের ক্রমটি যথেষ্ট মসৃণ হয়ে গেছে, যে কোনও দিকনির্দেশক পরিবর্তন একটি কার্যকর সংকেত। পর্যালোচনা দেখায় যে এই নকশার সংকেতটি প্রচলিত ম্যাকড সোনার ফর্কের চেয়ে 2-3 চক্র দ্রুত বিলম্বিত হয়।
কৌশলটি সাতটি ছোট তরঙ্গের বিকল্প সরবরাহ করে, যেমন চুল, ডাউবেচিস ৪, সিমলেট ৪ ইত্যাদি, তবে বাস্তব যুদ্ধে মেক্সিকান হ্যাট ব্যবহার করার পরামর্শ দেওয়া হয়। কারণটি সহজঃ এটি একমাত্র ছোট তরঙ্গ ফাংশন যা প্রান্ত সনাক্তকরণের জন্য বিশেষভাবে ডিজাইন করা হয়েছে এবং প্রাকৃতিকভাবে মূল্যের প্রবণতা সনাক্তকরণের জন্য উপযুক্ত।
Haar microwave খুব সহজ, মাত্র 2 টি ফ্যাক্টর, এবং সমতলতা যথেষ্ট নয়। দাউবেচিস 4 যদিও 4 টি ফ্যাক্টর রয়েছে, তবে ডিজাইনের লক্ষ্যটি প্রবণতা নিষ্কাশন করার চেয়ে সংকেত পুনর্গঠন করা। মর্লেট microwave উচ্চতর দেখায়, আসলে গস ফিল্টারের একটি বৈকল্পিক, মেক্সিকান হ্যাটের নেতিবাচক ওজন সুবিধা নেই। তথ্য বলছেঃ একই প্যারামিটারের অধীনে, মেক্সিকান হ্যাটের শার্প অনুপাত অন্যান্য microwaves তুলনায় 15-20% বেশি।
এই কৌশলটি একতরফা উত্থান বা পতনের সময় ভাল কাজ করে, তবে এটি প্রায়শই একটি অনুভূমিক প্যাসিভালের সময় বন্ধ হয়। এটি সমস্ত প্রবণতা অনুসরণকারী কৌশলগুলির সাধারণতা এবং ছোট তরঙ্গের পরিবর্তনগুলি বাজারের নিয়মের বিরুদ্ধে যেতে পারে না।
নির্দিষ্ট তথ্যঃ ট্রেন্ডিংয়ের সময়, কৌশলটির সাফল্যের হার 65-70%, গড় মুনাফা-ক্ষতি অনুপাত প্রায় 1.8:1। তবে, ঝড়ের সময়, সাফল্যের হার প্রায় 45% অবধি নেমে আসে, ঘন ঘন লেনদেনের ফলে মুনাফা ক্ষয় হয়। সুতরাং এই কৌশলটি সুস্পষ্ট ট্রেন্ড শুরু হওয়ার পরে ব্যবহারের জন্য উপযুক্ত, ব্রেকিংয়ের সময় অন্ধভাবে অনুসরণ করার জন্য উপযুক্ত নয়।
সংক্ষিপ্ত তরঙ্গ রূপান্তর যদিও সংকেত প্রক্রিয়াকরণ ক্ষেত্রে একটি পরিপক্ক প্রযুক্তি, কিন্তু আর্থিক বাজার একটি ইঞ্জিনিয়ারিং সিস্টেম নয়। কৌশল নিম্নলিখিত ঝুঁকি রয়েছেঃ
ঐতিহাসিক প্রত্যাহার ভবিষ্যতের লাভের প্রতিনিধিত্ব করে না, যে কোনও কৌশল কঠোর তহবিল ব্যবস্থাপনা এবং ঝুঁকি নিয়ন্ত্রণের প্রয়োজন। পজিশনটি মোট তহবিলের ২০-৩০% নিয়ন্ত্রণের পরামর্শ দেওয়া হয় এবং বাজারের পরিবেশের সাথে ব্যবহারের সময়কালের বিচার করা হয়।
/*backtest
start: 2025-01-01 00:00:00
end: 2025-12-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":500000}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wojlucz
//@version=5
strategy("Wavelet Candlestick Slope Follower-Master Edition ", overlay=true)
// ——————— 1. CONFIGURATION ———————
grp_wav = "WAVELET SETTINGS"
w_type = input.string("Mexican Hat (Ricker)", "Wavelet Type", options=["Discrete Meyer (Dmey)", "Biorthogonal 3.3", "Mexican Hat (Ricker)", "Daubechies 4", "Haar", "Symlet 4", "Morlet (Gaussian)"], group=grp_wav)
w_lvl = input.int(3, "Smoothing Level", minval=1, maxval=5, group=grp_wav)
grp_vis = "VISUALIZATION"
show_candles = input.bool(true, "Show Wavelet Candles?", group=grp_vis)
// ——————— 2. COEFFICIENTS LIBRARY ———————
get_coeffs(w_name) =>
float[] h = array.new_float(0)
if w_name == "Haar"
array.push(h, 0.5), array.push(h, 0.5)
else if w_name == "Daubechies 4"
s3 = math.sqrt(3), denom = 4 * math.sqrt(2), norm = math.sqrt(2)
array.push(h, ((1 + s3) / denom) / norm), array.push(h, ((3 + s3) / denom) / norm)
array.push(h, ((3 - s3) / denom) / norm), array.push(h, ((1 - s3) / denom) / norm)
else if w_name == "Symlet 4"
array.push(h, -0.05357), array.push(h, -0.02096), array.push(h, 0.35238)
array.push(h, 0.56833), array.push(h, 0.21062), array.push(h, -0.07007)
array.push(h, -0.01941), array.push(h, 0.03268)
else if w_name == "Biorthogonal 3.3"
array.push(h, -0.06629), array.push(h, 0.28289), array.push(h, 0.63678)
array.push(h, 0.28289), array.push(h, -0.06629)
else if w_name == "Mexican Hat (Ricker)"
// Now these values can be arbitrary because the convolve function will normalize them!
// Maintaining "Sombrero" proportions
array.push(h, -0.1), array.push(h, 0.0), array.push(h, 0.4), array.push(h, 0.8), array.push(h, 0.4), array.push(h, 0.0), array.push(h, -0.1)
else if w_name == "Morlet (Gaussian)"
array.push(h, 0.0625), array.push(h, 0.25), array.push(h, 0.375), array.push(h, 0.25), array.push(h, 0.0625)
else if w_name == "Discrete Meyer (Dmey)"
array.push(h, -0.015), array.push(h, -0.025), array.push(h, 0.0)
array.push(h, 0.28), array.push(h, 0.52), array.push(h, 0.28)
array.push(h, 0.0), array.push(h, -0.025), array.push(h, -0.015)
h
// ——————— 3. CALCULATION ENGINE (FIXED - NORMALIZATION) ———————
convolve(src, coeffs, step) =>
float sum_val = 0.0
float sum_w = 0.0 // Sum of weights for normalization
int len = array.size(coeffs)
for i = 0 to len - 1
weight = array.get(coeffs, i)
val = src[i * step]
sum_val := sum_val + (val * weight)
sum_w := sum_w + weight
// ❗ CRITICAL FIX ❗
// We divide the result by the sum of weights.
// If the sum of weights was 1.4 (like in Mexican Hat or Daubechies), division brings it down to 1.0.
// A price of 100$ enters as 100$ and exits as 100$, not 140$.
sum_w != 0 ? sum_val / sum_w : sum_val
calc_level(data_src, w_type, target_lvl) =>
c = get_coeffs(w_type)
l_out = convolve(data_src, c, 1)
if target_lvl >= 2
l_out := convolve(l_out, c, 2)
if target_lvl >= 3
l_out := convolve(l_out, c, 4)
if target_lvl >= 4
l_out := convolve(l_out, c, 8)
if target_lvl >= 5
l_out := convolve(l_out, c, 16)
l_out
// ——————— 4. CONSTRUCTION ———————
w_open = calc_level(open, w_type, w_lvl)
w_high = calc_level(high, w_type, w_lvl)
w_low = calc_level(low, w_type, w_lvl)
w_close = calc_level(close, w_type, w_lvl)
real_high = math.max(w_high, w_low)
real_high := math.max(real_high, math.max(w_open, w_close))
real_low = math.min(w_high, w_low)
real_low := math.min(real_low, math.min(w_open, w_close))
// ——————— 5. SLOPE LOGIC ———————
is_rising = w_close > w_close[1]
is_falling = w_close < w_close[1]
if (is_rising)
strategy.entry("Norm Long", strategy.long)
if (is_falling)
strategy.close("Norm Long")
// ——————— 6. VISUALIZATION ———————
slope_color = is_rising ? color.new(color.lime, 0) : color.new(color.red, 0)
final_color = show_candles ? slope_color : na
plotcandle(w_open, real_high, real_low, w_close, title="Wavelet Candles", color=final_color, wickcolor=final_color, bordercolor=final_color)