এই কৌশলটি হুল মুভিং এভারেজের (এইচএমএ) ক্রসওভার সংকেতগুলির উপর ভিত্তি করে। এটি যখন দুটি HMA লাইন বিভিন্ন সময়ের সাথে একে অপরকে অতিক্রম করে তখন এটি ট্রেডিং সংকেত উত্পন্ন করে। এইচএমএ একটি উন্নত চলমান গড় সূচক যা ওয়েটেড মুভিং এভারেজ (ডাব্লুএমএ) এর বিশেষ সংমিশ্রণের মাধ্যমে বিলম্বকে হ্রাস করে, দ্রুত এবং মসৃণ বাজার প্রবণতা সংকেত সরবরাহ করে।
এই কৌশলটির মূল বিষয় হ'ল বিভিন্ন সময়কালের এইচএমএ ক্রসওভার ব্যবহার করে বাজারের প্রবণতা বিপরীত পয়েন্টগুলি ক্যাপচার করা। এইচএমএ গণনাতে তিনটি ধাপ জড়িতঃ প্রথমে অর্ধ-অবধি ডাব্লুএমএ গণনা করা, তারপরে পুরো সময়ের ডাব্লুএমএ গণনা করা এবং অবশেষে প্রথম দুটি ডাব্লুএমএর একটি বিশেষ সংমিশ্রণ ব্যবহার করে মূল সময়ের বর্গমূলের সমান সময়ের সাথে অন্য ডাব্লুএমএ গণনা করা। দ্রুত এইচএমএ (ডিফল্ট 9 সময়কাল) ধীর এইচএমএ (ডিফল্ট 16 সময়কাল) এর উপরে ক্রস করার সময় ক্রয় সংকেত উত্পন্ন হয় এবং দ্রুত এইচএমএ ধীর এইচএমএর নীচে ক্রস করার সময় বিক্রয় সংকেত।
এটি এইচএমএ ক্রসওভারের উপর ভিত্তি করে একটি পরিমাণগত ট্রেডিং কৌশল, যা ঐতিহ্যগত চলমান গড়ের বিলম্ব হ্রাস করে আরও সময়োচিত ট্রেডিং সংকেত সরবরাহ করে। কৌশল নকশা সংক্ষিপ্ত, বুঝতে এবং বাস্তবায়ন করা সহজ, তবে ব্যবহারিক অ্যাপ্লিকেশনগুলিতে বাজারের পরিবেশের অভিযোজনযোগ্যতা এবং ঝুঁকি ব্যবস্থাপনার প্রতি মনোযোগ প্রয়োজন। ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে, এই কৌশলটির একটি শক্তিশালী ট্রেডিং সিস্টেমে পরিণত হওয়ার সম্ভাবনা রয়েছে।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Hull Moving Average Crossover", overlay=true) fastLength = input.int(9, "Fast HMA Length", minval=1) slowLength = input.int(16, "Slow HMA Length", minval=1) hma(src, length) => wma1 = ta.wma(src, length / 2) wma2 = ta.wma(src, length) ta.wma(2 * wma1 - wma2, math.floor(math.sqrt(length))) fastHMA = hma(close, fastLength) slowHMA = hma(close, slowLength) plot(fastHMA, color=color.blue, title="Fast HMA") plot(slowHMA, color=color.red, title="Slow HMA") longCondition = ta.crossover(fastHMA, slowHMA) shortCondition = ta.crossunder(fastHMA, slowHMA) if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)