एमएसीडी डबल मूविंग एवरेज ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-18 12:25:13
टैगः

img

अवलोकन

इस रणनीति का नामएमएसीडी डबल मूविंग एवरेज ट्रैकिंग रणनीतियह व्यापार संकेतों के रूप में दोहरी चलती औसत के एमएसीडी सूचक के स्वर्ण क्रॉस और मृत्यु क्रॉस का उपयोग करता है, जो पिछले दिन की सबसे कम कीमत के साथ संयुक्त है।

रणनीति तर्क

  1. तेजी से ईएमए ((करीब,5), धीमी ईएमए ((करीब,8) और संकेत एसएमए ((एमएसीडी,3) की गणना करें
  2. लंबे संकेत को परिभाषित करें: जब तेज एमए धीमे एमए से ऊपर जाता है
  3. शॉर्ट सिग्नल को परिभाषित करें: जब तेज एमए धीमी एमए से नीचे जाता है या समापन मूल्य पिछले दिन की सबसे कम कीमत से कम होता है
  4. स्थिति का आकार प्रारंभिक पूंजी 2000 अमरीकी डालर से विभाजित है।
  5. स्टॉप लॉस के रूप में लंबी स्थिति को बंद करने के लिए लघु संकेत का उपयोग करें

लाभ विश्लेषण

  1. ओवरबॉट और ओवरसोल्ड जोन निर्धारित करने के लिए एमएसीडी संकेतक का उपयोग करें, दोहरे एमए के साथ ट्रेडिंग सिग्नल बनाने के लिए, झूठे ब्रेकआउट से बचें
  2. अल्पकालिक रुझानों को ट्रैक करें, समय पर स्टॉप लॉस करें
  3. स्थिति के आकार का गतिशील समायोजन अत्यधिक बड़े एकल नुकसान से बचाता है

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

  1. एमएसीडी संकेतक में देरी का प्रभाव है, अल्पकालिक अवसरों को याद कर सकता है
  2. डबल एमए ट्रेडिंग सिग्नल से झूठे सिग्नल उत्पन्न हो सकते हैं
  3. स्टॉप हानि बिंदु बहुत आक्रामक है, उच्च आवृत्ति के साथ बाहर रोका जा रहा है

अनुकूलन दिशाएँ

  1. संकेतक संवेदनशीलता में सुधार के लिए एमएसीडी मापदंडों के संयोजन का अनुकूलन करें
  2. बाजार समेकन से झूठे संकेतों से बचने के लिए रुझान निर्णय जोड़ें
  3. बाजार की अस्थिरता का आकलन करने के लिए अस्थिरता सूचकांक के साथ संयोजन, स्टॉप लॉस बिंदु को समायोजित करें

सारांश

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


/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-13 02:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// macd/cam v1 strategizing Chris Moody Macd indicator https://www.tradingview.com/script/OQx7vju0-MacD-Custom-Indicator-Multiple-Time-Frame-All-Available-Options/
// macd/cam v2 changing to macd 5,8,3
// macd/cam v2.1 
//      Sell when lower than previous day low. 
//      Initial capital of $2k. Buy/sell quantity of initial capital / close price
//      Quitar short action
//      Note: custom 1-week resolution seems to put AMD at 80% profitable

strategy(title="MACD/CAM 2.1", shorttitle="MACD/CAM 2.1") //
source = close
//get inputs from options
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")
venderLowerPrev = input(true,title="Vender cuando closing price < previous day low?")

res = useCurrentRes ? timeframe.period : resCustom

fastLength = input(5, minval=1), slowLength=input(8,minval=1)
signalLength=input(3,minval=1)

// find exponential moving average of price as x and fastLength var as y
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)

macd = fastMA - slowMA
// simple moving average
signal = sma(macd, signalLength)
hist = macd - signal

outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)

histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0

//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal

plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime

circleYPosition = outSignal
 
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)

circleCondition = sd and cross(outMacD, outSignal)

// Determine long and short conditions
longCondition  = circleCondition and macd_color == lime

redCircle = circleCondition and macd_color == red
redCirclePrevLow = redCircle or low<low[1]
shortCondition = redCircle
if (venderLowerPrev)
    shortCondition = redCirclePrevLow

strategy.initial_capital = 20000
// Set quantity to initial capital / closing price
cantidad = strategy.initial_capital/close

// Submit orders
strategy.entry(id="long", long=true, qty=cantidad, when=longCondition)
strategy.close(id="long", when=shortCondition)
plot(circleCondition ? circleYPosition : na, title="Cross", style=cross, linewidth=10, color=macd_color)
// hline(0, '0 Line', linestyle=solid, linewidth=2, color=white)

अधिक