৭২: অ্যাডাপ্টিভ হুল মুভিং মিভিং+

লেখক:চাওঝাং, তারিখঃ ২০২২-০৫-২৬ ১৭ঃ১৭ঃ৩৭
ট্যাগঃএইচএমএএটিআর

নতুন ট্রেডারদের জন্য একটি চ্যালেঞ্জিং বিষয় হল বাজার পরিস্থিতি পার্থক্য করা, বর্তমান বাজার যত তাড়াতাড়ি সম্ভব, স্বল্পতম সময়ের মধ্যে মুনাফা বাড়ানোর সর্বোত্তম সুযোগ দিচ্ছে কি না।

ইনট্রাডে, আমরা দেখেছি যে বড় ব্যাংকগুলির কিছু বড় পদক্ষেপগুলি কিছুটা সংজ্ঞায়িত করা যেতে পারে HMA 200 দ্বারা। আমি ভিজ্যুয়ালগুলিকে দামের গতিশীলতার সাথে আরও সামঞ্জস্যপূর্ণ করার কথা ভাবছি (প্রধান আন্দোলন এবং ছোট শব্দ পৃথক করে) এটি কখন শুরু হয় তার আরও স্পষ্ট লক্ষণ পেতে। সুতরাং যখন শক্তি শুরু হয় তখন এক নজরে দেখা সহজ হবে। কম বিশৃঙ্খল চার্ট সহ।

এই অ্যাডাপ্টিভ এইচএমএ নতুন পাইন স্ক্রিপ্টের বৈশিষ্ট্য ব্যবহার করছে যা এখন বেশ কয়েকটি পাইন ফাংশনের জন্য গতিশীল দৈর্ঘ্যের আর্গুমেন্টগুলিকে সমর্থন করে। (পড়াঃhttps://www.tradingview.com/blog/en/pine...). এটি সরাসরি অন্তর্নির্মিত এইচএমএ () সমর্থন করে না, কিন্তু সৌভাগ্যবশত আমরা নির্মাণের জন্য তার wma () সূত্র ব্যবহার করতে পারি। (দ্রষ্টব্যঃ আমি তার wmas দৈর্ঘ্যের পরিবর্তে সাধারণ int ((() ব্যবহার করে এখানে ইতিমধ্যে জনপ্রিয় একটি সামান্য HMA সূত্র tweaked, কারণ আমি এটি সঠিকভাবে ম্যাচ ট্রেডিংভিউ s অন্তর্নির্মিত HMA)).

আপনি বেছে নিতে পারেন যে কোন দিকের সাথে এইচএমএ সময়টি মানিয়ে নেবে।

এই গবেষণায় আমি এটিকে দুটি বিকল্পের সাথে উপস্থাপন করছিঃ ভলিউম এবং ভল্যাটিলিটি। এটি বর্তমানে কোন পরিস্থিতিতে রয়েছে তার উপর নির্ভর করে এটি দ্রুত বা ধীর গতিতে চলবে। অর্থাৎঃ যখন ভলিউম সাধারণত কম থাকে বা ভল্যাটিলিটি রিডিং নেই, তখন দাম খুব বেশি চলবে না, তাই অভিযোজিত এমএ গতিশীলভাবে দীর্ঘায়িত করে ধীর হয়ে যাবে lookback সময়কাল, এবং বিপরীতভাবে, এবং তাই।

অ্যাডাপ্টিভের রঙের চিহ্নিতকরণ উপরে বর্ণিত পরিস্থিতির অনুরূপ। উপরন্তু, আমি এটিকে প্রবণতা-শক্তি বা পাশের / চম্পি অবস্থার পরিমাপ করতে সহায়তা করার জন্য এমএ এর ঢাল গণনার সাথেও একত্রিত করি।

এইভাবে যখন আমরা এটিকে গতিশীল সমর্থন/প্রতিরোধ হিসাবে ব্যবহার করব তখন এটি দৃশ্যত আরো নির্ভরযোগ্য হবে।

দ্বিতীয়ত, এবং আরও গুরুত্বপূর্ণ, এটি আমাদের ব্যবসায়ীদের আরও ভাল সম্ভাব্য তথ্যের সাথে সহায়তা করতে পারে যে কোনও বাণিজ্য করা উচিত কিনা। অর্থাৎঃ যদি মাঝারি সময়ে বাজারটি খুব বেশি আন্দোলন না দেয় তবে কোনও লাভও ততটাই হবে। বেশিরভাগ ক্ষেত্রে, আমরা পরে আমাদের টাকাগুলি সংরক্ষণ করা বা অন্য কোথাও স্থাপন করা ভাল।

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

সেটিংসঃ চার্জার: আপনার এইচএমএ-র কোন দিকের সাথে সংযোগ স্থাপন করা উচিত তা বেছে নিন, যাতে এটি এটির সাথে খাপ খায়। ন্যূনতম সময়কাল, সর্বোচ্চ সময়কালঃ 172 - 233 হ'ল ইনট্রা ডে এর জন্য স্ট্যাটিক এইচএমএ 200 এর তুলনায় আমার নিজস্ব সেটিং। আমি এটি খুঁজে পেয়েছি আমার ট্রেডিং স্টাইলে প্রায় কোনও জোড়ায় 15m tf এবং কিছু স্টকগুলির জন্য 15m থেকে 1H এ সেরা। এটি প্রচলিত ইএমএ 200 এর সাথেও ভালভাবে কাজ করে, কখনও কখনও যেমন তারা দামটি কোথায় যেতে হবে তা নির্ধারণে কিছুটা হাত ধরে কাজ করে। তবে আপনি অবশ্যই আরও প্রশস্ত বা সংকীর্ণ অন্যান্য ব্যাপ্তিগুলির সাথে পরীক্ষা করতে পারেন। বিশেষত যদি আপনার ইতিমধ্যে অনুসরণ করার জন্য একটি প্রতিষ্ঠিত কৌশল থাকে। যেমনটি আপনি করতে পারেনঃ একীকরণ এলাকার প্রান্তিক সীমাঃ এটি ঢাল গণনার সাথে সম্পর্কিত। সংখ্যাটি যত বড় হবে তার অর্থ আপনার এমএ এর বৃহত্তর ডিগ্রি প্রয়োজন বাজারটি সমতল (হলুদ) অঞ্চলের বাইরে সংজ্ঞায়িত করার জন্য। ফিল্টারটি হালকা করার প্রয়োজন হলে এটি দরকারী হতে পারে বা বিপরীতভাবে। পটভূমির রঙঃ বাজারের অবস্থার পার্থক্য তুলে ধরতে আরেকটি রঙ।

সতর্কতা: দুটি সতর্কতা আছে: ভলিউম ব্রেকঃ যখন ভলিউম গড়ের উপরে ভেঙে যায় এবং ভোলাটিলিটি মিটার: যখন বাজারটি সম্ভবত বড় ঝাঁকুনির সময়টি পাবে।

ব্যবহারঃ খুব খুব সুন্দর কিনুন প্রবেশ বড় আপ-সঞ্চালন ধরতে যদিঃ

  1. মূল্য MA এর উপরে। (এটা ভাল যখন মূল্য এছাড়াও MA থেকে খুব দূরে দূরত্ব নয়, অথবা আপনি দূরত্ব দোলক ব্যবহার করতে পারেন খুব সাহায্য করার জন্য)
  2. এইচএমএ-র রঙ গাঢ় সবুজ, যার মানে আপনার পছন্দের চেহারা দিয়ে এটি চার্জিং প্লাগের উপর থাকবে।
  3. আরএসআই ৫০ এর উপরে। এটা অতিরিক্ত নিশ্চিতকরণের জন্য।

পরিষ্কার বিক্রয় এন্ট্রি সংকেত উপরে হিসাবে একই, শুধু বিপরীত.

ব্যাকটেস্ট

img


/*backtest
start: 2022-04-25 00:00:00
end: 2022-05-24 23:59:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// 2020 © io72signals / Antorio Bergasdito

//@version=4
study("72s: Adaptive Hull Moving Average+", shorttitle="72s: Adaptive HMA+", overlay=true)

//Optional Inputs
charger     = input("Volatility", title="Choose which charger to adapt to:", options=["Volatility", "Volume"])
src         = input(close, title="Source:")
minLength   = input(172, title="Minimum period:")
maxLength   = input(233, title="Maximum period:")
adaptPct    = 0.03141 //input(3.141, minval = 0, maxval = 100, title="Adapting Percentage:") / 100.0

flat        = input(17, title="Consolidation area is when slope below:")

showMinor   = input(true, title="Show minor xHMA+", group="Minor Adaptive HMA+ Period")
minorMin    = input(89, title="Minimum:", group="Minor Adaptive HMA+ Period", inline="mHMA+")
minorMax    = input(121, title="Maximum:", group="Minor Adaptive HMA+ Period", inline="mHMA+")

showZone    = input(false, title="Show Adaptive HMA+ Distance Zone", group="DISTANCE ZONE")
mult        = input(2.7, title="Distance (Envelope) Multiplier", step=.1, group="DISTANCE ZONE") 

showSignals = input(true, title="Show Possible Signals", group="OTHER")
useBg       = input(true, title="Background color to differentiate movement", group="OTHER")

//Source to adapt to
highVolatility = atr(14) > atr(46)                  //Volatility Meter. Change it to match to your strat/pair/tf if needs.

rsivol  = rsi(volume,14)                            //RSI Volume Osc:
osc     = hma(rsivol,10)                            //Basically it's almost the same as: vol > ma(volume,20)
volBreak = osc > 49                                 //but smoothed using weight to filter noise or catch earlier signs.    

//Dynamics 
var float dynamicLength = avg(minLength,maxLength)
var float minorLength   = avg(minorMin,minorMax)
plugged = charger=="Volume"? volBreak : highVolatility
dynamicLength   := iff(plugged, max(minLength, dynamicLength * (1 - adaptPct)), min(maxLength, dynamicLength * (1 + adaptPct)))
minorLength     := iff(plugged, max(minorMin, minorLength * (1 - adaptPct)), min(minorMax, minorLength * (1 + adaptPct)))

//Slope calculation to determine whether market is in trend, or in consolidation or choppy, or might about to change current trend
slope_period = 34, range = 25, pi = atan(1) * 4
highestHigh = highest(slope_period), lowestLow = lowest(slope_period)
slope_range = range / (highestHigh - lowestLow) * lowestLow
calcslope(_ma)=>
    dt = (_ma[2] - _ma) / src * slope_range  
    c = sqrt(1 + dt * dt)
    xAngle = round(180 * acos(1 / c) / pi)
    maAngle = iff(dt > 0, -xAngle, xAngle)
    maAngle

//MA coloring to mark market dynamics 
dynColor(_ma,_col1a,_col1b, _col2a, _col2b, _col0) =>
    slope = calcslope(_ma)
    slope >= flat ? plugged? _col1a : _col1b :
     slope < flat and slope > -flat ? _col0 : 
     slope <= -flat ? plugged? _col2a : _col2b : _col0

//Adaptive HMA 
xhma(_src,_length) => _return = wma(2 * wma(_src, _length / 2) - wma(_src, _length), floor(sqrt(_length))) 

dynamicHMA  = xhma(src,int(dynamicLength))      //<--Batman - Our main xHMA+
minorHMA    = xhma(src,int(minorLength))        //<--Robin  - Faster minor xHMA+ (Optional). Can be use to assist for 
                                                //            faster entry, slower exit point, or pullbacks info too.

//Plot
plot(dynamicHMA, "Dynamic HMA+", dynColor(dynamicHMA, #6fbf73, #c0f5ae, #eb4d5c, #f2b1d4, color.yellow), 3)
plot(showMinor? minorHMA:na, "minor HMA+", dynColor(minorHMA, #6fbf73, #c0f5ae, #eb4d5c, #f2b1d4, color.yellow), 1)

//Backgroud coloring
notgreat = calcslope(dynamicHMA) < flat and calcslope(dynamicHMA) > -flat
bgcolor(useBg? plugged? na : notgreat? #757779: #afb4b9 : na)

// Comparative study
// staticHMA = hma(close, 200)
// plot(staticHMA,  "Static HMA")
// plotchar(dynamicLength, "dynamicLengthgth", "", location.top) //check output the calculated Dynamic Length in the Data Window.

//{ DISTANCE ZONE
// Envelope the main DynamicHMA with ATR band, just one way to approximate current price distance to MA. Other usages/methods may vary.
upperTL = dynamicHMA + mult * atr(40)        ,  lowerTL = dynamicHMA - mult * atr(40)           //<--Half distance zone
topTL = dynamicHMA + (mult*2) * atr(40)      ,  botTL = dynamicHMA - (mult*2) * atr(40)         //<--One distance zone
stopupperTL = dynamicHMA + (mult/2) * atr(40),  stoplowerTL = dynamicHMA - (mult/2) * atr(40)   //<--Half of the half. If need ie. tighter SL or trailing

// Plotting Distance Zone
plot(showZone?upperTL:na, color=color.green, transp=72)
plot(showZone?lowerTL:na, color=color.red,   transp=72)
plot(showZone?topTL:na, color=color.gray, transp=72)
plot(showZone?botTL:na, color=color.gray, transp=72)
sutl = plot(showZone?stopupperTL:na, color=color.white, transp=100)
sltl = plot(showZone?stoplowerTL:na, color=color.white, transp=100)
colZone = showZone? color.purple:color.new(color.white,100)
fill(sutl, sltl, color=colZone, transp=90)
//}

//{ SIGNALS
_slope = calcslope(dynamicHMA)

// Entry Base; When HMA+ turn to a darker color and market is out from low volatility. 
// Remember to also considering price distance to MA and strength (ie. RSI)
_upSig = _slope >=  flat and plugged
_dnSig = _slope <= -flat and plugged
buy  = _upSig and not _upSig[1] 
sell = _dnSig and not _dnSig[1] 

// Possible Exits. These only based on faster xHMA+
_upExit = _slope>=flat  and (not plugged) and close<minorHMA 
_dnExit = _slope<=-flat and (not plugged) and close>minorHMA 
fastExits  = (_upExit and not _upExit[1]) or (_dnExit and not _dnExit[1])

// Caution Sign. When Price crossed most outer distance zone. Could also be a good TP spot if your already in profit
_topWarn    = high>topTL
_botWarn    = low<botTL
warningSigns = (_topWarn and not _topWarn[1]) or (_botWarn and not _botWarn[1])

// Plot 'em up
atrPos = 0.72 * atr(5)
plotchar(showSignals and buy?  dynamicHMA-atrPos: na, color=color.green, location=location.absolute, char="⬆", size = size.tiny)
plotchar(showSignals and sell? dynamicHMA+atrPos: na, color=color.red,   location=location.absolute, char="⬇", size = size.tiny)
plotchar(showSignals and fastExits? _upExit? minorHMA+atrPos: _dnExit? minorHMA-atrPos: na: na, 
     color=_upExit?color.green:_dnExit?color.red: na, location=location.absolute, char="ⓧ", size=size.tiny)
plotchar(showSignals and warningSigns? _topWarn? high+atrPos: _botWarn? low-atrPos: na: na, 
     color=color.orange, location=location.absolute, char="⚠", size=size.tiny)
//} 

//{ ALERTS
// Previous alerts:
// alertcondition(highVolatility and not notgreat, "72s: Volatility Meter", "Market is on the move")
// alertcondition(volBreak[1] and volBreak and not notgreat, "72s: Volume Break", "Volume has just break above average")

// New Alert: 
// Delete what alert you don't need:
if buy 
    alert("Possible Buy Signal at" + tostring(close), alert.freq_once_per_bar_close)
if sell
    alert("Possible Sell Signal at" + tostring(close), alert.freq_once_per_bar_close)
    
if fastExits and _upExit
    alert("Price has just crossed down minor xHMA+ at" + tostring(close), alert.freq_once_per_bar_close)
if fastExits and _dnExit
    alert("Price has just crossed up minor xHMA+ at" + tostring(close), alert.freq_once_per_bar_close)
    
if warningSigns and _topWarn
    alert("Price has just crossed above top xHMA+ zone", alert.freq_once_per_bar_close)
if warningSigns and _botWarn
    alert("Price has just crossed below bottom xHMA+ zone", alert.freq_once_per_bar_close)
//}
    




if buy
    strategy.entry("Enter Long", strategy.long)
else if sell
    strategy.entry("Enter Short", strategy.short)

সম্পর্কিত

আরো