Hull Moving Average ক্রসওভার কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০৩-২২ 14:57:10
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি হাল মুভিং এভারেজের (এইচএমএ) ক্রসওভার সংকেতগুলির উপর ভিত্তি করে। হাল মুভিং এভারেজ হ'ল অ্যালান হাল দ্বারা বিকাশিত একটি প্রযুক্তিগত সূচক, যার লক্ষ্য traditionalতিহ্যবাহী চলমান গড়ের বিলম্ব হ্রাস করা। কৌশলটি বিভিন্ন সময়ের সাথে দুটি এইচএমএ ব্যবহার করে। যখন স্বল্প-অবধি এইচএমএ দীর্ঘ-অবধি এইচএমএ অতিক্রম করে তখন একটি ক্রয় সংকেত উত্পন্ন হয় এবং বিপরীতটি ঘটে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

নীতি

  1. Hull Moving Average (HMA) হিসাব করা

এইচএমএ নিম্নরূপ গণনা করা হয়ঃ

  • প্রথমত, ইনপুট প্যারামিটারের অর্ধেকের একটি সময়ের সাথে দামের ওজনযুক্ত চলমান গড় (ডাব্লুএমএ) গণনা করুন দৈর্ঘ্য
  • তারপরে, longth এর একটি সময়ের সাথে পূর্ববর্তী WMA এর WMA গণনা করুন
  • সূত্রটি ব্যবহার করুনঃ HMA = 2 * WMA ((দৈর্ঘ্য/2) - WMA ((দৈর্ঘ্য)
  • চূড়ান্ত এইচএমএ পেতে longth এর বর্গমূলের একটি সময়ের সাথে উপরের ফলাফলের ডাব্লুএমএ গণনা করুন
  1. ট্রেডিং সিগন্যাল তৈরি করা
  • যখন বন্ধের মূল্য এইচএমএ এর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত তৈরি করা হয়
  • যখন বন্ধের মূল্য এইচএমএ এর নীচে ক্রস করে, তখন একটি বিক্রয় সংকেত তৈরি করা হয়
  1. সিগন্যালের উপর ভিত্তি করে ট্রেডিং সম্পাদন
  • ক্রয় সংকেতঃ একটি দীর্ঘ অবস্থান খুলুন
  • বিক্রয় সংকেতঃ শর্ট পজিশন খুলুন

সুবিধা

  1. সাধারণ চলমান গড় এবং ওজনযুক্ত চলমান গড়ের তুলনায়, হুল চলমান গড়ের কম বিলম্ব রয়েছে, তাই এটি মূল্য পরিবর্তনের প্রতি দ্রুত প্রতিক্রিয়া জানাতে পারে, কৌশলটির প্রতিক্রিয়াশীলতা উন্নত করে।

  2. সিগন্যাল তৈরির জন্য বিভিন্ন সময়সীমার দুটি এইচএমএ ক্রসওভার ব্যবহার করে প্রচুর শব্দ এবং মিথ্যা সংকেত কার্যকরভাবে ফিল্টার করা যায়, যা সংকেতগুলির নির্ভরযোগ্যতা বাড়ায়।

  3. এইচএমএগুলির সময়কালের পরামিতিগুলি সামঞ্জস্য করে, কৌশলটি বিভিন্ন বাজার এবং ট্রেডিং সরঞ্জামগুলির সাথে মানিয়ে নেওয়া যেতে পারে।

ঝুঁকি

  1. হুল মুভিং এভারেজ একটি বিলম্বিত সূচক, যা প্রবণতা বিপরীতের প্রাথমিক পর্যায়ে মিথ্যা সংকেত তৈরি করতে পারে।

  2. অনুপযুক্ত প্যারামিটার নির্বাচন কৌশল কর্মক্ষমতা খারাপ হতে পারে। যদি সময়কাল খুব দীর্ঘ হয়, কৌশল প্রতিক্রিয়া ধীর হবে; যদি সময়কাল খুব ছোট হয়, এটি অত্যধিক মিথ্যা সংকেত হতে পারে।

  3. একক সূচকের উপর ভিত্তি করে সমস্ত কৌশলগুলির মতো, এই কৌশলটি পার্শ্ববর্তী বাজারে ভাল সম্পাদন করতে পারে না, আরও মিথ্যা সংকেত তৈরি করে এবং ব্যবসায় হারাতে পারে।

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

  1. এইচএমএ ক্রসওভার সিগন্যালের বৈধতা আরও নিশ্চিত করার জন্য ফিল্টার হিসাবে অন্যান্য প্রযুক্তিগত সূচক বা মৌলিক কারণ যেমন ট্রেডিং ভলিউম, প্রবণতা সূচক ইত্যাদি প্রবর্তন বিবেচনা করুন।

  2. প্যারামিটার অপ্টিমাইজেশনের জন্য, জেনেটিক অ্যালগরিদম এবং গ্রিড অনুসন্ধানের মতো পদ্ধতি ব্যবহার করা যেতে পারে যা বর্তমান বাজারে সবচেয়ে উপযুক্ত historicalতিহাসিক ডেটাতে সর্বোত্তম প্যারামিটার সংমিশ্রণ খুঁজে পেতে পারে।

  3. প্রতিটি ট্রেডের ঝুঁকি এবং রিটার্ন নিয়ন্ত্রণের জন্য স্টপ-লস এবং লাভ নেওয়ার প্রক্রিয়া কৌশলটিতে অন্তর্ভুক্ত করুন।

  4. বাজারের প্রবণতা বিবেচনা করুন। বাজারের প্রবণতা বিচার করার জন্য সূচক প্রবর্তন করে, কেউ ট্রেডিং বাজারে ট্রেড করতে পারে এবং পার্শ্ববর্তী বাজারগুলি এড়াতে পারে।

সংক্ষিপ্তসার

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


/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Basic Hull Ma Pack tinkered by InSilico 
strategy("RKTD BETA - Hull Suite by InSilico", overlay=true)

//INPUT
src = input(close, title="Source")
modeSwitch = input("Ehma", title="Hull Variation", options=["Hma", "Thma", "Ehma"])
length = input(200, title="Length(180-200 for floating S/R , 55 for swing entry)")
lengthMult = input(1.0, title="Length multiplier (Used to view higher timeframes with straight band)")

useHtf = input(false, title="Show Hull MA from X timeframe? (good for scalping)")
htf = input("240", title="Higher timeframe", type=input.resolution)

switchColor = input(true, "Color Hull according to trend?")
candleCol = input(false,title="Color candles based on Hull's Trend?")
visualSwitch  = input(true, title="Show as a Band?")
thicknesSwitch = input(1, title="Line Thickness")
transpSwitch = input(40, title="Band Transparency",step=5)

// Alert Messages
longAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "long", "orderType": "market", "close":true}'
shortAlertMessage = '{"base": "BTC", "quote": "USDT", "price": ' + tostring(close) + ', "action": "short", "orderType": "market", "close":true}'

//FUNCTIONS
//HMA
HMA(_src, _length) =>  wma(2 * wma(_src, _length / 2) - wma(_src, _length), round(sqrt(_length)))
//EHMA    
EHMA(_src, _length) =>  ema(2 * ema(_src, _length / 2) - ema(_src, _length), round(sqrt(_length)))
//THMA    
THMA(_src, _length) =>  wma(wma(_src,_length / 3) * 3 - wma(_src, _length / 2) - wma(_src, _length), _length)
    
//SWITCH
Mode(modeSwitch, src, len) =>
      modeSwitch == "Hma"  ? HMA(src, len) :
      modeSwitch == "Ehma" ? EHMA(src, len) : 
      modeSwitch == "Thma" ? THMA(src, len/2) : na

//OUT
_hull = Mode(modeSwitch, src, int(length * lengthMult))
HULL = useHtf ? security(syminfo.ticker, htf, _hull) : _hull
MHULL = HULL[0]
SHULL = HULL[2]

//COLOR
hullColor = switchColor ? (HULL > HULL[2] ? #00ff00 : #ff0000) : #ff9800

//PLOT
///< Frame
Fi1 = plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(visualSwitch ? SHULL : na, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
alertcondition(crossover(MHULL, SHULL), title="Hull trending up.", message="Hull trending up.")
alertcondition(crossover(SHULL, MHULL), title="Hull trending down.", message="Hull trending down.")
///< Ending Filler
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)

// Define Buy and Sell Conditions based on crossovers
buyCondition = crossover(MHULL, SHULL)
sellCondition = crossunder(MHULL, SHULL)

// Plotting the Hull Moving Average (HMA)
plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch)
plot(SHULL, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=transpSwitch)
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)

// Execute Strategy based on Buy and Sell Conditions
strategy.entry("Buy", strategy.long, when=buyCondition, alert_message=longAlertMessage)
strategy.entry("Sell", strategy.short, when=sellCondition, alert_message=shortAlertMessage)

// Additional elements like bar coloring remain unchanged
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)


আরো