ایم اے سی ڈی پر مبنی دوہری تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-07 17:11:52
ٹیگز:

img

جائزہ

یہ حکمت عملی ایم اے سی ڈی اشارے پر مبنی دوہری تجارتی حکمت عملی کو نافذ کرتی ہے۔ جب ایم اے سی ڈی پر گولڈن کراس ہوتا ہے تو یہ لمبا ہوسکتا ہے اور جب موت کا کراس ہوتا ہے تو مختصر ہوسکتا ہے ، کچھ غلط سگنلز کو ختم کرنے کے لئے دوسرے اشارے پر مبنی اضافی فلٹرز کے ساتھ۔

حکمت عملی کا اصول

اس حکمت عملی کا بنیادی حصہ دو طرفہ تجارت کا احساس کرنے کے لئے ایم اے سی ڈی اشارے کا استعمال کرنا ہے۔ خاص طور پر ، یہ تیز رفتار اوسط ، سست حرکت پذیر اوسط اور ایم اے سی ڈی سگنل لائن کا حساب لگاتا ہے۔ جب تیز ایم اے سست ایم اے پر عبور کرتا ہے تو ، طویل عرصے تک جانے کے لئے سنہری صلیب تیار کی جاتی ہے۔ جب تیز ایم اے سست ایم اے سے نیچے عبور کرتا ہے تو ، مختصر ہونے کے لئے موت کا صلیب تیار ہوتا ہے۔

کچھ غلط سگنلز کو فلٹر کرنے کے لئے ، حکمت عملی فلٹر کے طور پر ± 30 رینج بھی طے کرتی ہے ، تاکہ جب ایم اے سی ڈی ہسٹوگرام اس حد سے تجاوز کرے تو ہی تجارتی سگنل ٹرگر ہوجائیں۔ اس کے علاوہ ، جب پوزیشنیں بند ہوتی ہیں تو ، یہ ایم اے سی ڈی ہسٹوگرام کی سمت کا بھی فیصلہ کرتی ہے - پوزیشنیں صرف اس وقت بند ہوجاتی ہیں جب دو متواتر ہسٹوگرام باروں کی سمت بدل جاتی ہے۔

فوائد

  • MACD اشارے کو مرکزی تجارتی سگنل کے طور پر استعمال کیا جاتا ہے جو دونوں سمتوں میں قیمت کی نقل و حرکت کے لئے حساس ہے
  • اضافی فلٹرز کچھ غلط سگنل کو ختم کرنے میں مدد کرتے ہیں
  • پوزیشنوں کو بند کرنے کے لئے دو بار کی سمت کی منطق کچھ حد تک کچھ جھوٹے بریک آؤٹ سے بچتی ہے

خطرات

  • ایم اے سی ڈی اشارے میں اکثر تجارتی سگنل پیدا ہوتے ہیں ، جس کی وجہ سے تجارتی تعدد زیادہ ہوتا ہے
  • صرف ایک اشارے پر انحصار کرنے سے حکمت عملی سگنل میں تاخیر کا شکار ہوجاتی ہے
  • ہسٹوگرام کی سمت پر مبنی بندش منطق کافی سخت نہیں ہے، کچھ سگنل کو یاد کرنے کا خطرہ ہے

اصلاح کی ہدایات

  • سگنل کی تصدیق کے لئے دیگر اشارے جیسے KDJ، بولنگر بینڈ وغیرہ کے ساتھ مل کر غور کریں۔
  • ایم اے سی ڈی کی جگہ کے لیے زیادہ جدید اشارے کی تحقیق کریں، جیسے کے ڈی
  • بندش کے منطق کو بہتر بنانے کے لئے سٹاپ نقصان اور ایک تجارت کے نقصان کو کنٹرول کرنے کے لئے منافع لے کر

نتیجہ

خلاصہ یہ ہے کہ ، یہ بنیادی طور پر ایک قابل عمل دو طرفہ تجارتی حکمت عملی ہے۔ یہ ایم اے سی ڈی اشارے کے فوائد کا استعمال کرتا ہے اور سگنل کے معیار کو کنٹرول کرنے کے لئے کچھ فلٹرز بھی شامل کرتا ہے۔ تاہم ، ایم اے سی ڈی خود میں بھی کچھ مسائل ہیں۔ حکمت عملی کو زیادہ قابل اعتماد بنانے کے لئے ابھی بھی رواں تجارت میں مزید جانچ اور اصلاح کی ضرورت ہے۔ مجموعی طور پر ، یہ حکمت عملی دو طرفہ تجارتی حکمت عملیوں کی بنیاد رکھتی ہے ، اور اسے ایک طاقتور مقداری تجارتی حکمت عملی بننے کے لئے بتدریج بہتر بنایا جاسکتا ہے۔

]


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

//Created by user ChrisMoody updated 4-10-2014
//Regular MACD Indicator with Histogram that plots 4 Colors Based on Direction Above and Below the Zero Line
//Update allows Check Box Options, Show MacD & Signal Line, Show Change In color of MacD Line based on cross of Signal Line.
//Show Dots at Cross of MacD and Signal Line, Histogram can show 4 colors or 1, Turn on and off Histogram.
//Special Thanks to that incredible person in Tech Support whoem I won't say you r name so you don't get bombarded with emails
//Note the feature Tech Support showed me on how to set the default timeframe of the indicator to the chart Timeframe, but also allow you to choose a different timeframe.
//By the way I fully disclose that I completely STOLE the Dots at the MAcd Cross from "TheLark"

strategy("MACD Strategy", overlay=false)
// study(title="CM_MacD_Ult_MTF", shorttitle="CM_Ult_MacD_MTF")
source = close
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?")

res = useCurrentRes ? timeframe.period : resCustom

fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)

macd = fastMA - slowMA
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



// strategy.entry("Long", strategy.long, 1, when = shouldPlaceLong) 
       
// strategy.close("Long", shouldExitLong)
    

// strategy.entry("Short", strategy.short, 1, when = shouldPlaceShort) 
       
// strategy.close("Short", shouldExitShort)
    
    
isWithinZeroMacd = outHist < 30 and outHist > -30 

delta = hist
// shouldExitShort = false//crossover(delta, 0)    
// shouldExitLong = false//crossunder(delta, 0)

// if(crossover(delta, 0))// and not isWithinZeroMacd)
//     strategy.entry("Long", strategy.long, comment="Long")

// if (crossunder(delta, 0))// and not isWithinZeroMacd)
//     strategy.entry("Short", strategy.short, comment="Short")
    
shouldPlaceLong = crossover(delta, 0)
    
strategy.entry("Long", strategy.long, 1, when = shouldPlaceLong) 

shouldExitLong = not histA_IsUp and histA_IsDown

shouldExitShort = not histA_IsUp and not histA_IsDown and not histB_IsDown and histB_IsUp

shouldPlaceShort = crossunder(delta, 0)
strategy.entry("Short", strategy.short, 1, when = shouldPlaceShort) 
       
// plot_color = gray
plot_color = if(hist_colorChange)
	if(histA_IsUp)
	    aqua
	else
		if(histA_IsDown)
			//need to sell
// 			if(not isWithinZeroMacd)
// 			shouldExitLong = true
			    //   strategy.entry("Short", strategy.short, comment="Short")
			
			blue
		else
			if(histB_IsDown)
				red 
			else
				if(histB_IsUp)
					//need to buy
				// 	if(not isWithinZeroMacd)
				// 	shouldExitShort = true
					   // strategy.entry("Long", strategy.long, comment="Long")
					    
					    
					maroon
				else
					yellow
else
	gray


// 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 ? orange : orange : 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)
plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)

// plot( isWithinZeroMacd ? outHist : na, title="CheckSmallHistBars", style=circles, linewidth=4, color=black)

hline(0, '0 Line',  linewidth=2, color=white)




strategy.close("Short", shouldExitShort)
strategy.close("Long", shouldExitLong)

// fastLength = input(12)
// slowlength = input(26)
// MACDLength = input(9)

// MACD = ema(close, fastLength) - ema(close, slowlength)
// aMACD = ema(MACD, MACDLength)
// delta = MACD - aMACD


// if (crossover(delta, 0))
   // strategy.entry("MacdLE", strategy.long, comment="MacdLE")

//if last two macd bars are higher than current, close long position

// if (crossunder(delta, 0))
   // strategy.entry("MacdSE", strategy.short, comment="MacdSE")

//if last two macd bars are higher than current, close long position

// plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

مزید