गतिशील मूविंग औसत ट्रेडिंग रणनीति


निर्माण तिथि: 2023-12-21 11:33:50 अंत में संशोधित करें: 2023-12-21 11:33:50
कॉपी: 1 क्लिक्स: 736
1
ध्यान केंद्रित करना
1623
समर्थक

गतिशील मूविंग औसत ट्रेडिंग रणनीति

अवलोकन

यह रणनीति गतिशील चलती औसत की गणना करके और इसे ट्रेडिंग सिग्नल के रूप में उपयोग करके स्टॉक की कीमत बढ़ने पर अधिक पोजीशन देती है और स्टॉक की कीमत गिरने पर कम पोजीशन देती है। यह रणनीति गतिशीलता सूचक और चलती औसत के लाभों को जोड़ती है, जिसका उद्देश्य स्टॉक की कीमतों के मध्यकालिक रुझानों को ट्रैक करना और स्थिर लाभ प्राप्त करना है।

सिद्धांत

यह रणनीति मुख्य रूप से तीन प्रकार के हल चलती औसत पर आधारित है, जिसमें सामान्य हल चलती औसत ((HMA), भारित हल चलती औसत ((WHMA) और सूचकांक हल चलती औसत ((EHMA) शामिल हैं। कोड के अनुसार, रणनीति उपयोगकर्ताओं को तीन प्रकार के हल एमए के बीच स्विच करने की अनुमति देती है।

एचएमए की गणना करने के लिए सूत्र हैः

HMA = WMA(2*WMA(close,n/2)-WMA(close,n),sqrt(n))

इसमें, डब्ल्यूएमए एक भारित चलती औसत को दर्शाता है, और एन एक आवधिक पैरामीटर को दर्शाता है। एचएमए एसएमए की तुलना में कीमतों में बदलाव के लिए तेजी से प्रतिक्रिया करता है।

WHMA और EHMA के लिए गणना सूत्र HMA के समान है। नीति HMA को डिफ़ॉल्ट विकल्प के रूप में रखती है।

एचएमए की गणना करने के बाद, रणनीति एचएमए के मध्यवर्ती मूल्य को एक व्यापार संकेत के रूप में लेती है। जब कीमत एचएमए मध्यवर्ती रेखा को पार करती है, तो अधिक प्रवेश किया जाता है; जब कीमत एचएमए मध्यवर्ती रेखा को पार करती है, तो बाहर निकल जाती है। इस प्रकार, यह एचएमए मध्यवर्ती रेखा का उपयोग मूल्य की मध्यवर्ती प्रवृत्ति को ट्रैक करने और लाभ कमाने के लिए करता है।

लाभ

पारंपरिक चलती औसत रणनीतियों की तुलना में इस रणनीति के निम्नलिखित फायदे हैंः

  1. तेजी से प्रतिक्रिया, बेहतर प्रवृत्ति का पालन करने की क्षमता, समय पर प्रवेश और स्टॉप लॉस
  2. इस तरह के व्यापारों को रोकने के लिए, कम से कम एक बार में एक बार व्यापार करने की आवश्यकता है।
  3. Hull MA मापदंडों को अधिक व्यापक बाजार परिदृश्य के लिए लचीले ढंग से कॉन्फ़िगर करें
  4. एचएमए, डब्ल्यूएचएमए और ईएचएमए के बीच स्विच करने योग्य, व्यापक अनुप्रयोग

जोखिम

इस रणनीति के कुछ जोखिम भी हैं:

  1. ट्रेडों की आवृत्ति और स्लिप-ऑफ लागत को बढ़ाने के लिए, परिसंचरण में कई बार निष्क्रिय सिग्नल उत्पन्न करने की संभावना
  2. Hull MA मापदंडों की गलत सेटिंग से रुझान में बदलाव की संभावना कम हो सकती है और नुकसान का खतरा बढ़ सकता है
  3. गलत स्टॉक चयन, कम तरलता वाले स्टॉक का चयन, भारी उतार-चढ़ाव का सामना कर सकता है

क्या करें?

  1. Hull MA पैरामीटर को अनुकूलित करें और इष्टतम मान प्राप्त करें
  2. अन्य मापदंडों के साथ एक रुझान मोड़
  3. अच्छी तरलता वाले शेयरों का चयन करें, जिनकी औसत दैनिक कारोबार मात्रा अधिक हो

अनुकूलन दिशा

इस रणनीति को निम्नलिखित पहलुओं से भी अनुकूलित किया जा सकता हैः

  1. लेन-देन की मात्रा या अन्य संकेतकों को फ़िल्टर करके लेन-देन के संकेतों की विश्वसनीयता सुनिश्चित करना
  2. एमएसीडी, केडीजे और अन्य संकेतकों के साथ संयोजन में प्रवेश का समय निर्धारित करना, जीत की दर में सुधार करना
  3. Hull MA चक्र पैरामीटर को फिक्स्ड डिस्क रीसेट डेटा के आधार पर समायोजित करें
  4. WHMA या EHMA पर स्विच करें, किसी विशेष स्टॉक पर सबसे अच्छा प्रदर्शन करने वाले Hull वेरिएंट का परीक्षण करें
  5. बढ़ी हुई हानि को रोकने की रणनीति एकल हानि को नियंत्रित करना

संक्षेप

गतिशील चलती औसत ट्रेडिंग रणनीति में हुल एमए की त्वरित प्रतिक्रिया की क्षमता शामिल है, जो स्टॉक की कीमतों के मध्यकालिक रुझानों को प्रभावी ढंग से ट्रैक कर सकती है, उचित समय पर अधिक पोजीशन और स्टॉप लॉस आउट कर सकती है, और यह अच्छी तरह से प्रदर्शन करती है। यह रणनीति पैरामीटर सेटिंग और स्टॉक रेंज के चयन को और अधिक अनुकूलित करके अधिक स्थिर अतिरिक्त रिटर्न प्राप्त कर सकती है। यह एक आसान कार्यान्वयन और जोखिम-नियंत्रित मात्रात्मक रणनीति है।

रणनीति स्रोत कोड
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Position Investing by SirSeff', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0)
strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all'])
strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//////////////////////////////////////////////////////////////////////
// Testing Start dates
testStartYear = input(2000, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)


testPeriod() => true
// Component Code Stop
//////////////////////////////////////////////////////////////////////
//INPUT
src = input(close, title='Source')
modeSwitch = input.string('Hma', title='Hull Variation', options=['Hma', 'Thma', 'Ehma'])
length = input(55, title='Length(180-200 for floating S/R , 55 for swing entry)')
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.int(40, title='Band Transparency', step=5)

//FUNCTIONS
//HMA
HMA(_src, _length) =>
    ta.wma(2 * ta.wma(_src, _length / 2) - ta.wma(_src, _length), math.round(math.sqrt(_length)))
//EHMA    
EHMA(_src, _length) =>
    ta.ema(2 * ta.ema(_src, _length / 2) - ta.ema(_src, _length), math.round(math.sqrt(_length)))
//THMA    
THMA(_src, _length) =>
    ta.wma(ta.wma(_src, _length / 3) * 3 - ta.wma(_src, _length / 2) - ta.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, length)
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)
///< Ending Filler
fill(Fi1, Fi2, title='Band Filler', color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color=candleCol ? switchColor ? hullColor : na : na)


if HULL[0] > HULL[2] and testPeriod()
    strategy.entry('Invest', strategy.long)
if HULL[0] < HULL[2] and testPeriod()
    strategy.entry('Pause', strategy.short)