[TOC]

এই প্রবন্ধটি হলব্যবহারিক ট্রেডিংয়ের জন্য ওয়েভলেট ট্রান্সফর্মের উপর একটি জনপ্রিয় বিজ্ঞানকোডটি একটি সরলীকৃত শিক্ষণ সংস্করণ (বহু-স্তরের পচন, থ্রেশহোল্ড ডিনয়াইজিং এবং স্ট্যান্ডার্ড তরঙ্গের বিপরীত রূপান্তর পুনর্গঠনের মতো জটিল পদক্ষেপগুলি বাদ দিয়ে), শুধুমাত্র মূল ধারণাগুলি ধরে রাখা হয়েছে:ট্রেন্ড তথ্য বের করার জন্য দামের উপর বহু-স্কেল স্মুথিং করার জন্য তরঙ্গ সহগ ব্যবহার করুন।কৌশল উন্নয়ন এবং দ্রুত বৈধতার জন্য উপযুক্ত, কিন্তু একাডেমিক গবেষণা বা কাগজ প্রকাশনার জন্য নয়।
যারা ঝিহুতে প্রায়শই আর্থিক এবং পরিমাণগত বিষয়গুলি ব্রাউজ করেন তারা অবশ্যই এই দৃশ্যটি দেখেছেন:
কিছু “বিশেষজ্ঞ” বারবার বলছেন:
সে সবাইকে হতবাক করে দিল, যেন সে পরিমাণগত বাণিজ্যের মতো পারমাণবিক অস্ত্র আয়ত্ত করে ফেলেছে।
কিন্তু তুমি কি চাও যে সে তোমাকে কোডটি দেখাক?
“এটা… একটা ট্রেড সিক্রেট, আর আমি এটা প্রকাশ করতে পারব না।”
তাকে নীতিটি ব্যাখ্যা করতে বলুন।
“এটা… উন্নত গণিতের ব্যাপার, আমি তোমাকে ব্যাখ্যা করলেও তুমি বুঝতে পারবে না।”
আজ, আমরা এই “ঝিহু বিশেষজ্ঞদের দ্বারা প্রায়শই উল্লেখিত বিষয়গুলি অন্বেষণ করব, আর্থিক বাজারে তরঙ্গ রূপান্তরের ব্যবহারিক প্রয়োগগুলি পরিচয় করিয়ে দেব এবং এই প্রযুক্তি সম্পর্কে সঠিক ধারণা বিকাশে সকলকে সহায়তা করব।
কল্পনা করুন আপনি একটি গান শুনছেন, কিন্তু রেকর্ডিংয়ে ব্যাকগ্রাউন্ড নয়েজ আছে:
মূল রেকর্ডিং = মানুষের কণ্ঠস্বর + পটভূমির শব্দ + স্থির
তরঙ্গ রূপান্তর হল একটিস্মার্ট ফিল্টার:
আর্থিক বাজারে স্যুইচ করুন:
আসল দাম = প্রকৃত প্রবণতা + স্বল্পমেয়াদী ওঠানামা + এলোমেলো শব্দ
ওয়েভলেট ট্রান্সফর্ম আপনাকে সাহায্য করতে পারে:
তরঙ্গ রূপান্তরের সারমর্ম হল“বেসিস ফাংশন” (তরঙ্গ) এর একটি নির্দিষ্ট সেট ব্যবহার করে মূল সংকেতটি পচন করুন।。
কল্পনা করুন আপনি একজন ব্যক্তির চেহারা বর্ণনা করতে চান:
আর্থিক মূল্যের ক্ষেত্রে:
মূল মূল্য সিরিজ = বেসিস ফাংশন ১ × ওজন ১ + বেসিস ফাংশন ২ × ওজন ২ + … + শব্দ
বেসিস ফাংশন হল তরঙ্গ সহগের সাথে সম্পর্কিত “টেমপ্লেট”।বিভিন্ন ধরণের তরঙ্গ (হার, ডাউবেচি, মেক্সিকান হ্যাট, ইত্যাদি) বিভিন্ন ধরণের টেমপ্লেট ব্যবহার করে, ঠিক যেমন দাম পচানোর জন্য বিভিন্ন “ফিচার এক্সট্র্যাক্টর” ব্যবহার করা হয়।
তরঙ্গ রূপান্তর মূলত একটি…মাল্টিস্কেল ফিল্টার ব্যাংক:
উচ্চ-ফ্রিকোয়েন্সি ফিল্টার → দ্রুত ওঠানামা (দৈনিক শব্দ, টিক-স্তরের ওঠানামা) ক্যাপচার করে মধ্যবর্তী ফ্রিকোয়েন্সি ফিল্টার → মাঝারি-মেয়াদী প্রবণতা (কয়েক ঘন্টা থেকে কয়েক দিনের ব্যান্ড) ক্যাপচার করে। কম-ফ্রিকোয়েন্সি ফিল্টার → দীর্ঘমেয়াদী প্রবণতা (সাপ্তাহিক এবং মাসিক প্রবণতা) ক্যাপচার করুন।
কেন একে “তরঙ্গ” বলা হয়?
আর্থিক মূল্য বিশ্লেষণের জন্য সাইন ওয়েভ ব্যবহার করার সমস্যা: সাইন ওয়েভ ধরে নেয় যে সংকেতটি পর্যায়ক্রমে পুনরাবৃত্তি হচ্ছে, কিন্তু আর্থিক বাজারগুলি তা নয়! বিটিসি আজ 10% বৃদ্ধি পেতে পারে এবং আগামীকাল 8% হ্রাস পেতে পারে, কোনও চক্রাকারে নয়।
তরঙ্গের সুবিধা:স্থানীয়করণ বিশ্লেষণএটি আপনাকে বলতে পারে “২০ ডিসেম্বর, ২০২৫ তারিখে বিকাল ৩টা থেকে ৫টার মধ্যে দামের প্রবণতা মূলত ঊর্ধ্বমুখী ছিল”, “সামগ্রিক বাজার ওঠানামা করছিল” এর মতো কোনও সাধারণ উপসংহারের পরিবর্তে।
তরঙ্গ রূপান্তর হলবিপরীতমুখীএটা খুবই গুরুত্বপূর্ণ!
আসল দাম —> তরঙ্গের পচন —> ট্রেন্ড কম্পোনেন্ট + অস্থিরতা কম্পোনেন্ট + নয়েজ কম্পোনেন্ট ট্রেন্ড কম্পোনেন্ট + ভোলাটিলিটি কম্পোনেন্ট + নয়েজ কম্পোনেন্ট —> ওয়েভলেট পুনর্গঠন —> আসল দাম
রিফ্যাক্টরিং প্রক্রিয়াএটি বিভিন্ন উপাদানের পচন ঘটানোর জন্য।বেছে বেছে ফিরে একত্রিত করুন:
পুনর্গঠনের সময় শুধুমাত্র ট্রেন্ড উপাদান ব্যবহার করুন
পচনের পর, নিম্নলিখিতটি পাওয়া গেল
প্রকৃত লেনদেনে, আমরা সাধারণতশুধুমাত্র কম-ফ্রিকোয়েন্সি অংশটি পুনর্নির্মাণ করুন(ট্রেন্ড) উচ্চ-ফ্রিকোয়েন্সি উপাদানগুলি (শব্দ) সরাসরি বাতিল করা হয়। এটি তরঙ্গ “শব্দ হ্রাস” এর নীতি।
জটিল ইন্টিগ্রাল সূত্রগুলি এড়িয়ে চলুন এবং সাধারণ মানুষের ভাষায় ব্যাখ্যা করুন:
তরঙ্গ রূপান্তর = “তরঙ্গ সহগ” এর একটি সেট ব্যবহার করে মূল্য সিরিজের ওজনযুক্ত গড়
মৌলিক সূত্র:
দাম কমানো[i] = Σ(মূল মূল্য)[i-j] × তরঙ্গ সহগ[j]) / Σ(ওয়েভলেট সহগ)[j])
ফিল্টার দৃষ্টিকোণ:
মূল মূল্য একটি তরঙ্গ ফিল্টারের মাধ্যমে ফিল্টার করা হয় → বিভিন্ন ফ্রিকোয়েন্সির উপাদানগুলি “নির্বাচিত” করা হয়।
চাবিকাঠি হলতরঙ্গ সহগ নির্বাচন:
উদাহরণস্বরূপ:
ধরে নিচ্ছি আপনি Daubechies 4 তরঙ্গ ব্যবহার করছেন, সহগগুলি হল[0.483, 0.837, 0.224, -0.129]:
এই সহগের সেটটি একটি ফিল্টারকে সংজ্ঞায়িত করে:
যখন আপনি এই ফিল্টারটি পুরো মূল্য সিরিজ জুড়ে “স্লাইড” করেন তখন তরঙ্গ রূপান্তর সম্পন্ন হয়। প্রতিটি স্লাইডে গণনা জড়িত থাকে।বর্তমান সময়সীমার মধ্যে মূল্যের গড় ওজনওজন হলো তরঙ্গ সহগ।
কেন এটি সংকেতগুলিকে “পচন” করতে পারে?
কারণ এটি গাণিতিকভাবে প্রমাণিত হতে পারে:যেকোনো সংকেতকে তরঙ্গদৈর্ঘ্যের ভিত্তি ফাংশনের একটি রৈখিক সমন্বয় হিসেবে উপস্থাপন করা যেতে পারে।ঠিক যেমন RGB-এর তিনটি প্রাথমিক রঙ মিশিয়ে যেকোনো রঙ তৈরি করা যায়, তেমনি তরঙ্গমূল্যের ফাংশন একত্রিত করে যেকোনো মূল্য সিরিজ তৈরি করা যেতে পারে। বিভিন্ন তরঙ্গমূল্য বিভিন্ন ধরণের সংকেত বিশ্লেষণের জন্য উপযুক্ত বিভিন্ন “বেসিস ফাংশন লাইব্রেরি” প্রদান করে।
সিগন্যাল প্রক্রিয়াকরণ পাঠ্যপুস্তকে, তরঙ্গ রূপান্তর সাধারণত জটিল…বহু-স্তরের পচন, পুনর্গঠন, এবং থ্রেশহোল্ড ডিনয়াইজিংধাপ:
সম্পূর্ণ তরঙ্গ বিশ্লেষণ কর্মপ্রবাহ:
কিন্তুআর্থিক লেনদেনের ব্যবহারিক প্রয়োগচীনে, আমাদের এটি এত জটিল হওয়ার দরকার নেই। কারণ:
১. ট্রেডিংয়ের জন্য শুধুমাত্র ট্রেন্ডের দিকনির্দেশনা প্রয়োজন; একটি নিখুঁত পুনর্গঠনের প্রয়োজন হয় না।
একাডেমিক গবেষণার জন্য 0.01% এর কম পুনর্গঠন ত্রুটির প্রয়োজন হতে পারে, তবে ট্রেডিংয়ে, দাম বাড়বে নাকি কমবে তা নির্ধারণ করার জন্য এটি যথেষ্ট। পুনর্গঠনে 5% ত্রুটি থাকলেও, কৌশলটি এখনও লাভজনক হতে পারে যতক্ষণ না প্রবণতার দিক সঠিক থাকে।
2. রিয়েল-টাইম প্রয়োজনীয়তা গণনাকে সহজ করে তোলে।
একটি সম্পূর্ণ তরঙ্গলেখ পচনের জন্য সহগের একাধিক স্তরের পুনরাবৃত্ত গণনা প্রয়োজন, যা উচ্চ-ফ্রিকোয়েন্সি ট্রেডিংয়ে বিলম্বের কারণ হতে পারে। অন্যদিকে, সরাসরি রূপান্তর মিলিসেকেন্ডে সম্পন্ন করা যেতে পারে, যা লাইভ ট্রেডিংয়ের চাহিদা পূরণ করে।
৩. আর্থিক সংকেতের বিশেষ বৈশিষ্ট্য
আর্থিক মূল্য স্থিতিশীল সংকেত নয় এবং কঠোর চক্রাকারে পরিবর্তিত হয় না। জটিল ফ্রিকোয়েন্সি বিভাজন এখানে খুব একটা অর্থবহ নয়; সহজ ট্রেন্ড নিষ্কাশন আরও ব্যবহারিক।
অতএব, এই প্রবন্ধটিতরঙ্গ রূপান্তরের সারাংশ বের করাআর্থিক বাজারের সবচেয়ে ব্যবহারিক দিকগুলির উপর দৃষ্টি নিবদ্ধ করা:
মূল সরলীকরণ ১: শুধুমাত্র আনুমানিক সহগ ব্যবহার করুন (কম-ফ্রিকোয়েন্সি প্রবণতা)
ঐতিহ্যবাহী তরঙ্গলেপ বিভাজন → আনুমানিক সহগ + বিস্তারিত সহগ (বহু-স্তর) এই প্রয়োগ: শুধুমাত্র আনুমানিক সহগ ধরে রাখা → সরাসরি মসৃণ প্রবণতা অর্জন করা।
মূল সরলীকরণ ২: থ্রেশহোল্ডিং ডিনয়েজিং ছাড়াই সরাসরি কনভলিউশন
ঐতিহ্যবাহী তরঙ্গলেপ পচন → বিস্তারিত সহগের প্রান্তিককরণ → পুনর্গঠন এই অ্যাপ্লিকেশন: মসৃণ দাম পেতে সরাসরি কনভোলিউশন →
মূল সরলীকরণ ৩: সীমানা প্রক্রিয়াকরণ উপেক্ষা করুন
ঐতিহ্যবাহী তরঙ্গের জন্য প্রতিসম সম্প্রসারণ এবং সংকেত সীমানার পর্যায়ক্রমিক সম্প্রসারণের মতো প্রক্রিয়াকরণের প্রয়োজন হয়। এই অ্যাপ্লিকেশনটি শুধুমাত্র মধ্যম অংশের উপর দৃষ্টি নিবদ্ধ করে; সীমানা ত্রুটি গ্রহণযোগ্য।
বাস্তবায়ন পদ্ধতি: ফিল্টার কনভোলিউশন
def convolve(src, coeffs, step):
"""
核心算法:用小波系数对价格序列做加权平均
src: 价格序列 [100000, 101000, 99000, ...]
coeffs: 小波系数 [0.483, 0.837, 0.224, -0.129]
step: 采样步长(用于多层级)
"""
sum_val = 0.0 # 加权和
sum_w = 0.0 # 权重和
for i, weight in enumerate(coeffs):
idx = i * step
if idx < len(src):
sum_val += src[idx] * weight
sum_w += weight
return sum_val / sum_w # 归一化
এই ফাংশনটি…তরঙ্গ ফিল্টারের মূল অংশ:
stepপ্যারামিটারগুলি বহু-স্তরের মসৃণকরণ সক্ষম করে (স্তর 1/2/3…)।এই সরলীকরণ কেন যুক্তিসঙ্গত?
কারণ লেনদেনের অপরিহার্য প্রয়োজনীয়তা হল:শব্দের প্রবণতা খুঁজে বের করাতরঙ্গ রূপান্তরের আনুমানিক সহগগুলি নিজেই সংকেতের জন্য একটি “লো-পাস ফিল্টার”, যা কম-ফ্রিকোয়েন্সি ট্রেন্ড উপাদানগুলিকে সংরক্ষণ করে, যা আমাদের ঠিক যা প্রয়োজন।
যদিও সম্পূর্ণ তরঙ্গ বিশ্লেষণ আরও সুনির্দিষ্ট, আর্থিক ব্যবসায়ে:
ব্যবহারইনভেনটর কোয়ান্টাইজেশন (FMZ) প্ল্যাটফর্মের স্থানীয় ব্যাকটেস্টিং ইঞ্জিনতথ্য সংগ্রহ করা খুবই সুবিধাজনক!
'''backtest
start: 2025-12-17 00:00:00
end: 2025-12-23 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","fee":[0,0]}]
'''
from fmz import *
task = VCtx(__doc__)
def main():
exchange.SetCurrency("BTC_USDT")
exchange.SetContractType("swap")
records = exchange.GetRecords(PERIOD_H1, 500)
return records
records = main()
কোনও জটিল API ইন্টিগ্রেশন বা ডেটা পরিষ্কারের প্রয়োজন নেই; স্ট্যান্ডার্ডাইজড ক্যান্ডেলস্টিক ডেটা সরাসরি পাওয়া যেতে পারে। এটি আমাদের ডেটা প্রক্রিয়াকরণে আটকে থাকার পরিবর্তে সাতটি তরঙ্গের ধরণের প্রকৃত প্রভাবগুলি দ্রুত যাচাই করতে সহায়তা করে।
ক্রিপ্টোকারেন্সির দামের উপর সাতটি সাধারণ তরঙ্গের ধরণ (হার, ডাউবেচিস ৪, সিমলেট ৪, বায়োর্থোগোনাল ৩.৩, মেক্সিকান হ্যাট, মরলেট এবং ডিসক্রিট মেয়ার) এর কর্মক্ষমতা তুলনা করে, নিম্নলিখিত দৃশ্যমান প্রদর্শন প্রদান করা হয়েছে:
গাণিতিক উৎপত্তির কঠোরতার উপর নয়, বরং ব্যবহারিক ফলাফলের চাক্ষুষ তুলনার উপর জোর দেওয়া হচ্ছে।এটি ব্যবসায়ীদের একটি স্বজ্ঞাত বোধগম্যতা বিকাশে এবং তাদের কৌশল অনুসারে তরঙ্গের ধরণ বেছে নিতে সহায়তা করে।
হার তরঙ্গ হল সবচেয়ে মৌলিক ধরণের তরঙ্গ, যার মাত্র দুটি সহগ রয়েছে:[0.5, 0.5]মূলত, এটি দুটি সংলগ্ন দামের একটি সাধারণ গড়।
মূল কোড:
coeffs = [0.5, 0.5]
# 对价格序列 [100000, 101000, 99000, 102000, 98000] 处理
def smooth(prices, i):
return (prices[i] * 0.5 + prices[i-1] * 0.5) / 1.0
# 结果:[100000, 100500, 100000, 100500, 100000]
আপনি দেখতে পাচ্ছেন, হার প্রক্রিয়াকরণের পরে প্রাথমিকভাবে অত্যন্ত ওঠানামা করা দাম (৯৯,০০০ থেকে ১০২,০০০ পর্যন্ত) তুলনামূলকভাবে স্থিতিশীল হয়ে ওঠে। এটি তরঙ্গের “ডিনয়াইজিং” এর প্রভাব - স্বল্পমেয়াদী, তীব্র ওঠানামা মসৃণ করে, যা আপনাকে একটি মসৃণ দামের প্রবণতা দেখতে দেয়।

ডাউবেচিজ ৪ (সংক্ষেপে db4) হল প্রকৌশলে সর্বাধিক ব্যবহৃত তরঙ্গপত্রগুলির মধ্যে একটি। এর সহগগুলি হল:[0.483, 0.837, 0.224, -0.129]মনে রাখবেন যে শেষ সহগ হল…ঋণাত্মক সংখ্যাএটাই এটিকে অনন্য করে তোলে।
মূল কোড:
coeffs = [0.483, 0.837, 0.224, -0.129]
# 处理第i个价格点
def smooth(prices, i):
weighted_sum = (prices[i] * 0.483 + # 当前价格
prices[i-1] * 0.837 + # 前1根,权重最大!
prices[i-2] * 0.224 + # 前2根
prices[i-3] * (-0.129)) # 前3根,负权重
weight_sum = 0.483 + 0.837 + 0.224 + (-0.129) # = 1.415
return weighted_sum / weight_sum
# 示例:smooth([100000, 101000, 99000, 102000], 3) ≈ 100251
মূল বৈশিষ্ট্য:পূর্ববর্তী ক্যান্ডেলস্টিকের ওজন (0.837) বর্তমান মূল্যের (0.483) চেয়ে বেশি! এর অর্থ হল db4 “সদ্য ঘটে যাওয়া মূল্য”-এর উপর বেশি জোর দেয় এবং ঋণাত্মক ওজন সহগ পূর্ববর্তী মূল্যের উপর “অফসেটিং” প্রভাব ফেলবে, যা মসৃণতা আরও বাড়িয়ে তুলবে।

সিমলেট ৪ হল ডাউবেচিজের একটি উন্নত সংস্করণ, যা আরও ভালো প্রতিসাম্যের লক্ষ্যে কাজ করে। সহগ:[-0.076, -0.030, 0.498, 0.804, 0.298, -0.099, -0.013, 0.032]。
মূল কোড:
coeffs = [-0.076, -0.030, 0.498, 0.804, 0.298, -0.099, -0.013, 0.032]
# 向前看8根K线
def smooth(prices, i):
weighted_sum = sum(prices[i-j] * coeffs[j] for j in range(8))
weight_sum = sum(coeffs)
return weighted_sum / weight_sum
# 平滑效果比Haar和db4都强,但反应速度更慢
মূল বৈশিষ্ট্য:৮টি ক্যান্ডেলস্টিকের একটি উইন্ডো দৈর্ঘ্য দামের দীর্ঘ “স্মৃতি” তৈরি করতে সাহায্য করে। ৮টি ক্যান্ডেলস্টিক অতিক্রম না করা পর্যন্ত একটি মসৃণ বক্ররেখায় একটি সত্যিকারের ট্রেন্ড রিভার্সাল দৃশ্যমান নাও হতে পারে।

বায়োর্থোগোনাল ৩.৩ (সংক্ষেপে bior3.3) হল সহগ সহ একটি সম্পূর্ণ প্রতিসম তরঙ্গ:[-0.066, 0.283, 0.637, 0.283, -0.066]。
মূল কোড:
coeffs = [-0.066, 0.283, 0.637, 0.283, -0.066]
# ↑ 中心↑ ↑
# 完全对称的两端
# 处理中间价格点
def smooth(prices, i):
# 实际应用:只向前看,不使用未来数据
weighted_sum = (prices[i-4] * (-0.066) + # 前4根
prices[i-3] * 0.283 + # 前3根
prices[i-2] * 0.637 + # 前2根,权重最大
prices[i-1] * 0.283 + # 前1根
prices[i] * (-0.066)) # 当前
weight_sum = sum(coeffs) # = 1.071
return weighted_sum / weight_sum
মূল বৈশিষ্ট্য:প্রতিসাম্য নিশ্চিত করে যে কোনও “ফেজ বিকৃতি” নেই - মসৃণ বক্ররেখা ব্যাখ্যাতীতভাবে বাম বা ডানে স্থানান্তরিত হবে না।

মেক্সিকান হ্যাট (যাকে রিকার ওয়েভলেটও বলা হয়) সহগ:[-0.1, 0.0, 0.4, 0.8, 0.4, 0.0, -0.1]এটি মেক্সিকান সোম্বেরোর মতো আকৃতির।
মূল কোড:
coeffs = [-0.1, 0.0, 0.4, 0.8, 0.4, 0.0, -0.1]
# 负值 零 正值 最大 正值 零 负值
# ↓ ↓
# "惩罚"两端,增强拐点检测能力
def smooth(prices, i):
weighted_sum = (prices[i-6] * (-0.1) + # 左3,负权重
prices[i-5] * 0.0 + # 左2
prices[i-4] * 0.4 + # 左1
prices[i-3] * 0.8 + # 中心,权重最大
prices[i-2] * 0.4 + # 右1
prices[i-1] * 0.0 + # 右2
prices[i] * (-0.1)) # 右3,负权重
weight_sum = sum(coeffs)
return weighted_sum / weight_sum
মূল বৈশিষ্ট্য:এর “মাঝখানে বড়, উভয় প্রান্তে ঋণাত্মক” গঠন এটিকে সনাক্তকরণে বিশেষভাবে ভালো করে তোলে।বাঁক বিন্দু- সেই গুরুত্বপূর্ণ মুহূর্ত যখন দাম ঊর্ধ্বমুখী প্রবণতা থেকে নিম্নমুখী প্রবণতায় (অথবা বিপরীত) ফিরে আসে। ঋণাত্মক ওজন সহগ দূরবর্তী দামগুলিকে “দণ্ড” দেয়, দ্রুত প্রবণতা পরিবর্তনগুলি ধরে রাখে।

মোরলেট তরঙ্গ একটি গাউসীয় (স্বাভাবিক) বন্টনের উপর ভিত্তি করে তৈরি, যার সহগগুলি হল:[0.0625, 0.25, 0.375, 0.25, 0.0625]。
মূল কোড:
coeffs = [0.0625, 0.25, 0.375, 0.25, 0.0625]
# ↓ ↓ ↓中心 ↓ ↓
# 远端 近端 最高 近端 远端
# 完美的高斯钟形曲线
def smooth(prices, i):
weighted_sum = (prices[i-4] * 0.0625 + # 左2,6.25%
prices[i-3] * 0.25 + # 左1,25%
prices[i-2] * 0.375 + # 中心,37.5%
prices[i-1] * 0.25 + # 右1,25%
prices[i] * 0.0625) # 右2,6.25%
# 权重和正好 = 1.0,无需除法
return weighted_sum
মূল বৈশিষ্ট্য:সকল তরঙ্গের মধ্যে এটি সবচেয়ে “মৃদু”, এর কোন ঋণাত্মক ওজন নেই এবং সমস্ত মূল্য গণনার সাথে আলতো করে অন্তর্ভুক্ত করা হয়েছে। ফলস্বরূপ বক্ররেখা অত্যন্ত মসৃণ, কিন্তু খরচ ধীর প্রতিক্রিয়া - হঠাৎ মূল্য পরিবর্তনগুলি বেশ কয়েকটি ক্যান্ডেলস্টিক পরে প্রতিফলিত নাও হতে পারে।

ডিসক্রিট মেয়ার তরঙ্গ হল সবচেয়ে জটিল তরঙ্গ, যার সহগ রয়েছে:[-0.015, -0.025, 0.0, 0.28, 0.52, 0.28, 0.0, -0.025, -0.015]。
মূল কোড:
coeffs = [-0.015, -0.025, 0.0, 0.28, 0.52, 0.28, 0.0, -0.025, -0.015]
# ↑ ↑ ↑ ↑中心↑ ↑ ↑ ↑
# 完全对称,中心权重超过50%
def smooth(prices, i):
# 向前看9根K线
weighted_sum = sum(prices[i-j] * coeffs[j] for j in range(9))
weight_sum = sum(coeffs) # = 1.0
return weighted_sum
# 注意:第4根之前的K线权重是0.52,超过50%!
# 实际上在告诉你"4根K线之前的中期趋势"
মূল বৈশিষ্ট্য:এর সহগ সর্বাধিক (9), ঐতিহাসিক তথ্য দীর্ঘতম এবং মসৃণকরণের প্রভাব সবচেয়ে শক্তিশালী। এটি “সাপ্তাহিক প্রবণতা” বের করার জন্য উপযুক্ত, তবে এতে বিশাল বিলম্ব রয়েছে - এমনকি যদি দাম 10% কমে যায়, তবুও এর বক্ররেখা “ক্রমবর্ধমান” দেখাতে পারে।

সাত ধরণের তরঙ্গপাত পর্যালোচনা করার পর, আপনার একটি প্যাটার্ন লক্ষ্য করা উচিত ছিল:
আরও সহগ = আরও দেখুন = শক্তিশালী মসৃণকরণ = বৃহত্তর বিলম্বিতা
হর (২টি সহগ) → শুধুমাত্র ১ বার দেখুন → প্রায় মসৃণ নয় ডাউবেচিজ ৪ (৪ টুকরা) → আগে ৩টি দেখুন → সামান্য মসৃণ মেক্সিকান টুপি (৭) → ৬টি আগে দেখুন → মাঝারি স্মুথিং ডিসক্রিট মেয়ার (9) → 8 বার দেখার আগে → ভারী স্মুথিং
নেতিবাচক ওজনের প্রভাব হল সংবেদনশীলতা বৃদ্ধি করা এবং পরিবর্তনগুলি সনাক্ত করা সহজ করে তোলা।
হর/মরলেট (ঋণাত্মক ওজন নেই) → মৃদু এবং মসৃণ, অসংবেদনশীল মেক্সিকান টুপি (উভয় প্রান্তে ঋণাত্মক) → ইনফ্লেকশন পয়েন্টের প্রতি সংবেদনশীল ডাউবেচিজ ৪ (ঋণাত্মক) → ট্রেন্ড পরিবর্তনের প্রতি সংবেদনশীল
প্রতিসাম্যের ভূমিকা = কোনও বিকৃতি না হওয়া = মূল আকৃতি বজায় রাখা
অসামঞ্জস্য (ডাউবেচিস) → বাম/ডানে স্থানান্তরিত হতে পারে প্রতিসাম্য (বায়োর্থোগোনাল/মেয়ার) → কেন্দ্রীয় অবস্থান বজায় রাখা
ওয়েভলেট ট্রান্সফর্ম পুনরাবৃত্তভাবে প্রয়োগ করা যেতে পারে, যেমন নেস্টিং পুতুল। প্রথম প্রয়োগটিকে বলা হয় স্তর 1, স্তর 1 এর ফলাফলে এটি আবার প্রয়োগ করাকে বলা হয় স্তর 2, ইত্যাদি।
বিভিন্ন স্তরে দেখা সময়ের স্কেল:
ধরে নিচ্ছি আমরা BTC ট্রেডিংয়ের জন্য ১-ঘন্টা ক্যান্ডেলস্টিক চার্ট ব্যবহার করি:
স্তর ১ → ২-৪ ঘন্টা ধরে স্বল্পমেয়াদী ওঠানামা পর্যবেক্ষণ করুন লেভেল ২ → ৪-৮ ঘন্টা ধরে ট্রেন্ড পর্যবেক্ষণ করুন স্তর ৩ → ১-২ দিন ধরে মধ্যমেয়াদী প্রবণতা পর্যবেক্ষণ করুন (সাধারণত ব্যবহৃত কৌশল) স্তর ৪ → ২-৪ দিনের মূল্য পরিসীমা পর্যবেক্ষণ করুন স্তর ৫ → ৪-৮ দিনের প্রধান প্রবণতাগুলি পর্যবেক্ষণ করুন
প্রকৃত ফলাফলের তুলনা:
মূল বিটিসি মূল্য (১-ঘণ্টার চার্ট):99500, 99800, 99200, 100200, 99800, 100500, 100100, ...
লেভেল ১ প্রসেসিং: ৯৯৬০০, ৯৯৬৫০, ৯৯৫০০, ৯৯৯০০, ৯৯৯৫০, ১০০২০০, ১০০২৫০, … (সামান্য মসৃণ করা হয়েছে, কিন্তু ওঠানামা এখনও দৃশ্যমান)
লেভেল ৩ প্রসেসিং: ৯৯৬২০, ৯৯৬৫০, ৯৯৭০০, ৯৯৮০০, ৯৯৯৫০, ১০০১০০, ১০০২০০, … (মসৃণ করা হয়েছে, একটি মধ্যমেয়াদী প্রবণতা নির্দেশ করে)
লেভেল ৫ প্রক্রিয়াকরণ: ৯৯৬৩০, ৯৯৬৪০, ৯৯৬৬০, ৯৯৭০০, ৯৯৭৬০, ৯৯৮৪০, ৯৯৯৩০, … (অত্যন্ত মসৃণ, শুধুমাত্র সাধারণ দিক দেখাচ্ছে)

নির্বাচনের নীতিটি সহজ: আপনার ধারণ সময়ের উপর ভিত্তি করে সংশ্লিষ্ট স্তরটি ব্যবহার করুন।
১৫ মিনিটের স্ক্যাল্পিং → লেভেল ১-২
ইন্ট্রাডে ট্রেডিং → লেভেল ২-৩
কয়েকদিন সুইং করুন → লেভেল ৩-৪
দীর্ঘমেয়াদী প্রবণতা বিশ্লেষণ → স্তর 4-5
ট্রেডিংয়ে তরঙ্গ রূপান্তরের প্রয়োগ খুবই সরাসরি: ট্রেন্ডের দিক নির্ধারণের জন্য এটি তৈরি করা মসৃণ মূল্য বক্ররেখা ব্যবহার করুন এবং ট্রেন্ড পরিবর্তনের সময় ট্রেড করুন। বিশেষ করে, যদি মসৃণ সমাপনী মূল্য আগেরটির চেয়ে বেশি হয়, তাহলে এটি একটি ঊর্ধ্বমুখী প্রবণতা নির্দেশ করে, তাই দীর্ঘ সময় ধরে এগিয়ে যান; যদি মসৃণ সমাপনী মূল্য আগেরটির চেয়ে কম হয়, তাহলে এটি একটি নিম্নমুখী প্রবণতা নির্দেশ করে, তাই অবস্থান বন্ধ করুন অথবা সংক্ষিপ্ত করুন। এই যুক্তি কার্যকর কারণ তরঙ্গগুলি স্বল্পমেয়াদী এলোমেলো ওঠানামা ফিল্টার করে, “উপরে” বা “নিচে” থাকাকে প্রকৃত প্রবণতা পরিবর্তনের উচ্চ সম্ভাবনা হিসাবে রাখে, শব্দের কারণে সৃষ্ট মিথ্যা সংকেতের পরিবর্তে।
# 执行小波变换
transformed = transformer.transform_ohlc(df)
# 获取最近两根K线的平滑收盘价
w_close_current = transformed['w_close'].values[-1] # 当前平滑收盘价
w_close_prev = transformed['w_close'].values[-2] # 前一根平滑收盘价
# 判断趋势方向
signal = 0
if w_close_current > w_close_prev:
signal = 1 # 平滑价格向上 → 做多
elif w_close_current < w_close_prev:
signal = -1 # 平滑价格向下 → 做空
# 获取账户信息
account = exchange.GetAccount()
ticker = exchange.GetTicker()
if not account or not ticker:
Log("[Warning] Failed to get account/ticker info")
Sleep(5000)
continue
current_price = ticker['Last']
Log(f"[Price] 原始: {df['Close'].values[-1]:.2f}, "
f"平滑当前: {w_close_current:.2f}, 平滑前值: {w_close_prev:.2f}")
Log(f"[Trend] {'↑ 向上' if signal == 1 else '↓ 向下' if signal == -1 else '→ 横盘'}")
# 执行交易逻辑
if signal == 1 and position != 1:
# 平滑价格向上 → 做多
Log(f"[信号] 趋势向上,开多 @ {current_price:.2f}")
if position == -1:
# 先平空仓
exchange.SetDirection("closesell")
exchange.Buy(current_price, 1)
Log(f"[平仓] 平空仓")
# 开多仓
exchange.SetDirection("buy")
exchange.Buy(current_price, 1)
Log(f"[开仓] 开多仓")
position = 1
elif signal == -1 and position != -1:
# 平滑价格向下 → 做空
Log(f"[信号] 趋势向下,开空 @ {current_price:.2f}")
if position == 1:
# 先平多仓
exchange.SetDirection("closebuy")
exchange.Sell(current_price, 1)
Log(f"[平仓] 平多仓")
# 开空仓
exchange.SetDirection("sell")
exchange.Sell(current_price, 1)
Log(f"[开仓] 开空仓")
position = -1
else:
Log(f"[持仓] 当前{'多头' if position == 1 else '空头' if position == -1 else '空仓'},无需操作")

অবশ্যই, বাস্তবে, এটি এত সহজ নয়। আপনি একসাথে একাধিক স্তরের তরঙ্গ ব্যবহার করতে পারেন, যেমন স্তর 2 স্বল্পমেয়াদী প্রবণতা দেখায় এবং স্তর 4 দীর্ঘমেয়াদী প্রবণতা দেখায়। শুধুমাত্র তখনই একটি অবস্থান খুলুন যখন উভয়ই একই দিকে অগ্রসর হয়, যা উল্লেখযোগ্যভাবে মিথ্যা সংকেত হ্রাস করে। আপনি অন্যান্য ফিল্টারিং শর্তও যোগ করতে পারেন, যেমন বর্ধিত ট্রেডিং ভলিউম, পর্যাপ্ত উচ্চ অস্থিরতা, অথবা একটি মূল স্তরের উপরে মূল্য ব্রেকআউট প্রয়োজন; এগুলি সবই জয়ের হার উন্নত করতে পারে। স্টপ-লস অর্ডারের জন্য, আপনি তরঙ্গ-মসৃণ মূল্যের ওঠানামা পরিসর ব্যবহার করে গতিশীলভাবে সেট করতে পারেন; উদাহরণস্বরূপ, যদি দাম মসৃণ মূল্যের নীচে পড়ে যায় তবে স্টপ-লস ATR এর 2 গুণ কম। পজিশন ম্যানেজমেন্টে, প্রবণতা যত স্পষ্ট হবে (মসৃণ মূল্যের ঢাল যত বেশি হবে), পজিশনের আকার তত ভারী হবে; য�