एमएसीडी ऑसिलेटर और ईएमए क्रॉसओवर रणनीति


निर्माण तिथि: 2023-09-23 15:24:12 अंत में संशोधित करें: 2023-09-23 15:24:12
कॉपी: 0 क्लिक्स: 746
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

यह रणनीति एक सरल और कुशल ट्रेडिंग रणनीति है जो ऑस्केलेटर MACD को चलती औसत ईएमए के साथ जोड़ती है। वर्तमान में यह 4 घंटे की K लाइन पर सेट है, जिसे आवश्यकता के अनुसार अन्य समय अवधि के लिए समायोजित किया जा सकता है। यह बिटकॉइन और एथेरियम में पिछले 3 वर्षों के आंकड़ों पर बेहतर प्रदर्शन करता है, जो केवल होल्डिंग रणनीति से बेहतर है। इसे अनुकूलित और संशोधित करके, इसे वायदा, स्टॉक, विदेशी मुद्रा, शेयर आदि के लिए समायोजित किया जा सकता है।

रणनीति सिद्धांत

इस रणनीति में मुख्य रूप से निम्नलिखित घटक शामिल हैंः

  1. MACD सूचकांकः मूल्य गतिशीलता में परिवर्तन को समझें

  2. ईएमए औसतः मूल्य प्रवृत्ति की दिशा का आकलन करना

  3. समय की शर्तेंः नीति के लिए समय सीमा।

  4. अधिक रिक्त विकल्पः अधिक या रिक्त दिशा चुनें।

लेन-देन के नियम इस प्रकार हैं:

  1. अधिक/खाली करना: जब समापन मूल्य ईएमए से अधिक होता है, तो एमएसीडी स्तंभ रेखा सकारात्मक होती है, और वर्तमान के लाइन पिछले दिन से अधिक होती है।

  2. खोलना / ब्लेड करनाः जब समापन मूल्य ईएमए से नीचे होता है, तो मैकड स्तंभ रेखा नकारात्मक होती है, और वर्तमान के लाइन पिछले दिन से कम होती है। खोलना / ब्लेड करना

यह रणनीति स्पष्ट रूप से प्रवृत्ति और लघु अवधि के दो बड़े लेनदेन विचारों को एकीकृत करती है, जिससे एक कुशल मात्रात्मक निर्णय लेने की प्रणाली बनती है।

श्रेष्ठता विश्लेषण

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

  1. एमएसीडी ने अल्पकालिक गतिशीलता का निर्धारण किया, ईएमए ने प्रवृत्ति की दिशा का निर्धारण किया, और सूचक घनिष्ठ रूप से मेल खाता है।

  2. नियम सरल और स्पष्ट हैं, उन्हें समझना आसान है और उन्हें लागू करना मुश्किल नहीं है।

  3. विभिन्न प्रजातियों और समय अवधि के लिए लचीला समायोजन पैरामीटर।

  4. आप केवल एकतरफा व्यापार कर सकते हैं, या आप दोतरफा व्यापार कर सकते हैं।

  5. अनावश्यक लेनदेन से बचने के लिए रणनीति के लिए समय सीमा निर्धारित करें

  6. यह एक स्थिर प्रदर्शन है और कई वर्षों से लगातार लाभदायक है।

  7. धन का प्रबंधन नियंत्रण में है, जिससे एकल नुकसान से बचा जा सकता है।

  8. मशीन लर्निंग तकनीक को अनुकूलित और उन्नत करने के लिए पेश किया जा सकता है।

जोखिम विश्लेषण

हालांकि इस रणनीति के कई फायदे हैं, लेकिन इसके कुछ जोखिम भी हैं:

  1. पैरामीटर अनुकूलन की व्यापक सीमा है, और अति-अनुकूलन का खतरा है।

  2. स्टॉप लॉस स्टॉप सेट नहीं किया गया है, नुकसान के विस्तार का खतरा है।

  3. हालांकि, इस मामले में, यह एक झूठी सफलता है, जो कि लेनदेन की मात्रा को ध्यान में नहीं रखती है।

  4. प्रवृत्ति के मोड़ को पहचानने में देरी, नुकसान से पूरी तरह से बचने के लिए नहीं।

  5. बाजार में बदलाव के कारण प्रभाव कम हो सकता है।

  6. केवल ऐतिहासिक डेटा के आधार पर, मॉडल की स्थिरता पर ध्यान दें।

  7. लेन-देन की उच्च आवृत्ति, लेन-देन की लागत अधिक हो सकती है।

  8. आय की वापसी के अनुपात पर ध्यान दें, ताकि वक्र बहुत मोटा न हो।

अनुकूलन दिशा

उपरोक्त विश्लेषण के आधार पर, इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः

  1. और यह भी कि वे अपने व्यापार को कैसे प्रभावित कर सकते हैं।

  2. स्टॉप लॉस स्टॉप सेट करें और एकल लाभ को नियंत्रित करें।

  3. विभिन्न समय अवधि के पैरामीटर के प्रभाव का मूल्यांकन करना।

  4. मशीन लर्निंग टेक्नोलॉजी को लागू करना और गतिशीलता को अनुकूलित करना।

  5. मल्टी मार्केट वेरिफिकेशन, बेहतर स्थिरता

  6. स्थिति आकार को समायोजित करें और व्यापार की आवृत्ति को कम करें।

  7. धन प्रबंधन रणनीति का अनुकूलन करना

  8. परीक्षण मूल्य अंतर अनुबंधों की आवृत्ति बढ़ाएं

  9. अनुवर्ती परीक्षणों को लगातार किया जाता है ताकि ओवरफिटिंग को रोका जा सके।

संक्षेप

समग्र रूप से, यह रणनीति MACD और ईएमए संकेतकों के साथ संयोजन में एक सरल और कुशल मात्रात्मक रणनीति बनाती है। लेकिन किसी भी रणनीति को लगातार अनुकूलित और सत्यापित करने की आवश्यकता होती है ताकि यह बाजार की परिस्थितियों में परिवर्तन के लिए अनुकूल और स्थिर रह सके। ट्रेडिंग रणनीतियों को लगातार विकसित और अद्यतन करने की आवश्यकता होती है।

रणनीति स्रोत कोड
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21

//@version=4
strategy("My Script", overlay=true)

//heiking ashi calculation
UseHAcandles    = input(false, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

//timecondition
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
 //monday and session 
 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//ema data  -- moving average
len = input(9, minval=1, title="Length")
src = input(hl2, title="Source")
out = ema(src, len)
//plot(out, title="EMA", color=color.blue)

//histogram
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


//main variables to apply conditions are going to be out(moving avg) and hist(macd)

long = haClose > out and haClose > haClose[1] and out > out[1] and hist> 0 and hist[1] < 0 and time_cond
short = haClose < out and haClose < haClose[1] and out < out[1] and hist < 0 and hist[1] > 0 and time_cond

//limit to 1 entry
var longOpeneda = false
var shortOpeneda = false
var int timeOfBuya = na



longCondition= long and not longOpeneda 

if longCondition
    longOpeneda := true
    timeOfBuya := time


longExitSignala = short
exitLongCondition = longOpeneda[1] and longExitSignala

if exitLongCondition
    longOpeneda := false
    timeOfBuya := na


plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="BUY", text="BUY", textcolor=color.white)
plotshape(exitLongCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="SELL", text="SELL", textcolor=color.white)

//automatization

longEntry= input(true)
shortEntry=input(false)

if(longEntry)
    strategy.entry("long",strategy.long,when=longCondition)
    strategy.close("long",when=exitLongCondition)

if(shortEntry)
    strategy.entry("short",strategy.short,when=exitLongCondition)
    strategy.close("short",when=longCondition)