آموزش اندیکاتور MACD

MACD Indicator
تصویر شاخص

آموزش کامل اندیکاتور MACD برای معامله در بازار های مالی بصورت خلاصه در قالب ویدیوی ضبط شده بهمراه نمونه اسکریپت های اندیکاتور مکدی برای استفاده در سایت تریدینگ ویو

دسترسی آنی
تضمین کیفیت
بازگشت وجه
قوانین و مزایای استفاده

خرید محصول توسط کلیه کارت های شتاب امکان پذیر است و بلافاصله پس از خرید، لینک دانلود محصول در اختیار شما قرار خواهد گرفت و هر گونه فروش در سایت های دیگر قابل پیگیری خواهد بود.

  • دسترسی به فایل محصول به صورت مادام‌العمر
  • تضمین کیفیت آموزش ها
  • فعال‌سازی آنی لینک دانلود، پس از ثبت سفارش
  • به صورت رایگان یک یا چند آموزش را دریافت می کنید.

آموزش اندیکاتور MACD

اندیکاتور MACD یکی از ابزارهای پرکاربرد برای تحلیلگران تکنیکال است. ویژگی بسیار مهم اندیکاتور مکدی سهولت کار با آن است. همین موضوع موجب شده است که تعداد زیادی از فعالان بازارهای مالی تمایل بالایی برای استفاده از این اندیکاتور داشته باشند. 

کلمه MACD مخفف عبارت Moving Average Convergence Divergence به معنای شاخص میانگین متحرک همگرایی واگرایی است. اندیکاتور مکدی که در ردیف اسیلاتورها قرار می‌گیرد، در زمینه شناخت و پیش‌بینی روندهای حاکم بر بازار نقش کلیدی را ایفا می‌کند. بنابراین اگر به عنوان یک تحلیلگر تکنیکال بتوانید اطلاعاتی که اندیکاتور مکدی تولید می‌کند را به درستی استخراج کنید، قطعا موفق خواهید شد که شانس دستیابی به سود در معاملات خود را ارتقا دهید.

بخش های تشکیل دهنده اندیکاتور مکدی (MACD)

MACD Line – Signal Line – Histogram

MACD Line - خط مکدی

مهم‌ترین جزء اندیکاتور MACD خط مکدی است. این خط اختلاف میانگین نمایی 12 روزه قیمت از 26 روزه آن را به نمایش می‌گذارد. تحلیلگران تکنیکال با تجربه به خوبی می‌دانند که خط مکدی دارای ویژگی تند و نوسانی است. 

Signal Line - خط سیگنال

خط سیگنال نیز میانگین نمایی 9 روزه از اندیکاتور مکدی است. با مشاهده خط سیگنال در نمودار اندیکاتور MACD می‌توان متوجه شد که این خط کم نوسان است و در مقایسه با خط MACD تغییرات سریعی از خود نشان نمی دهد .

Histogram - هیستوگرام

هیستوگرام MACD در قالب مجموعه‌ای از خطوط عمودی که در کنار یکدیگر قرار می‌گیرند، تفاوت بین خط مکدی و خط سیگنال را به نمایش می‌گذارد. طبیعی است که هر زمان اختلاف بین خط مکدی و سیگنال افزایش پیدا کند، هیستوگرام بزرگ می‌شود و زمانی که اختلاف بین آن دو خط کم شود، هیستوگرام نیز کوچک می‌شود و حتی در مواقعی که این دو خط یکدیگر را قطع می‌کنند، به یک خط تبدیل می‌شود.

آموزش اندیکاتور مکدی
  • فرمول محاسبه خط مک دی :

 MACD line = 12d EMA – 26d EMA

در این اندیکاتور، میانگین متحرک نمایی بر اساس قیمت بسته شدن کندل یا Close آن در دوره زمانی مشخص بدست می‌آید. آقای اپل برای محاسبه MACD line در این اندیکاتور از دو میانگین متحرک نمایی استفاده کرده است. یک میانگین متحرک نمایی با دوره زمانی 12 روزه (سریعتر) و دیگری با دوره زمانی 26 روزه (کندتر) است. البته این دوره زمانی‌ها قابل تغییر هستند، اما عموما تریدرها با همین اعداد کار می‌کنند. همانطور که گفته شد، MACD line پیرامون خط صفر یا Base line اندیکاتور مک دی نوسان می‌کند.

  • فرمول محاسبه Signal line :

همانطور که گفته شد، خط سیگنال در اندیکاتور MACD، میانگین متحرک نمایی MACD line است. دوره زمانی مورد استفاده در این میانگین متحرک عدد 9 بوده که این عدد نیز قابل تغییر است، اما عموما تریدرها از همین عدد استفاده می‌کنند.

 Signal line = 9d EMA of MACD line

این خط نیز در بالا و پایین خط صفر اندیکاتور مک دی نوسان می‌کند. از تقاطع MACD line و Signal line، سیگنال‌های خرید و فروش بدست می‌آید که در بخش انتهایی این درس به طور کامل به بررسی آن می‌پردازیم.

  • فرمول هیستوگرام :

هیستوگرام در اندیکاتور MACD تنها نمایش گرافیکی ارتباط بین MACD line و Signal line است. هدف از ایجاد هیستوگرام، صرفا آسان کردن قرائت این اندیکاتور است.

 MACD Histogram = MACD line – Signal line

واگرایی در اندیکاتور مکدی MACD

واگرایی یا Divergence

زمانی که اندیکاتور MACD نقاط سقف و یا کفی را تشکیل می‌دهد که با نقاط سقف و کف نمودار متفاوت است یک واگرایی رخ‌داده است . یک واگرایی مثبت زمانی اتفاق می‌افتد که اندیکاتور MACD دو کف بالارونده ساخته در حالی که قیمت دو کف پایین‌رونده بسازد.

زمانی که روند طولانی‌مدت همچنان مثبت باشد، این سیگنال یک سیگنال صعودی معتبر است. برخی از معامله‌گران واگرایی‌های مثبت را – حتی زمانی که روند کلی منفی باشد – بررسی می‌کنند زیرا آن‌ها می‌توانند سیگنالی از یک تغییر روند باشند، با این وجود که این تکنیک در این حالت از اتکاپذیری کمتری برخوردار است .

زمانی که اندیکاتور MACD دو قلهٔ پایین‌رونده را بسازد – در حالی که قیمت دو قلهٔ بالارونده ساخته است – یک سیگنال نزولی صادرشده و از آن تحت عنوان واگرایی منفی (negative divergence) یاد می‌کنیم . یک واگرایی منفی که در طی یک روند نزولی بلندمدت شکل می‌گیرد به‌عنوان تأییدیه‌ای در نظر گرفته می‌شود که می‌گوید احتمال ادامهٔ روند وجود دارد.

برخی از معامله‌گران به بررسی واگرایی‌های منفی در طی روند صعودی بلندمدت می‌پردازند زیرا آن‌ها این واگرایی‌ها را نشانه‌ای از تضعیف روند می‌دانند.

هر چند، این واگرایی نسبت به واگرایی که در یک روند نزولی شکل می‌گیرد از اعتبار کمتری برخوردار است.

با وجود کمتر بودن شتاب روند در جهت پایین، تا زمان باقی ماندن اندیکاتور MACD در ناحیه منفی، شتاب‌روند به سمت پایین همچنان از شتاب روند به سمت بالا بیشتر خواهد بود. گاهی اوقات، شتاب روند به سمت پایینِ کاهنده، می‌تواند حاکی از معکوس شدن روند یا افزایش قابل‌توجه قیمت باشد.

واگرایی در اندیکاتور مکدی

کدها یا اسکریپت های شخصی سازی شده برای اندیکاتور MACD در TradingView

در این قسمت برای دوستان با تجربه تر نمونه اسکریپت هایی را قرار می دهم تا بتوانند در نرم افزار یا سایت تریدینگ ویو TradingView وارد کرده و استفاده کنند .

اسکریپت نمایش خودکار واگرایی ها در چارت تریدینگ ویو

				
					// https://wWw.Last3een.iR By AmirAhmadi

//@version=4
study(title="Divergence MACD Sign/Alert [MsF]", shorttitle = "DiverMACD_A", format=format.price, overlay=false)

//MACD setting
src = close
fast = input(12)
slow = input(26)
smooth = input(9)

osctype = input(title="Osc Type", type=input.string, defval="MACD", options=["MACD", "SIGNAL", "HISTOGRAM"])

//lbR = input(title="Pivot Lookback Right", defval=8)
//lbL = input(title="Pivot Lookback Left", defval=8)
lbR = input(title="Lookback Bars", defval=8)
lbL = lbR

//rangeUpper = input(title="Max of Lookback Range", defval=60)
//rangeLower = input(title="Min of Lookback Range", defval=5)
rangeUpper = 60
rangeLower = 5

plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=true)

bearColor = color.red
bullColor = color.navy
hiddenBullColor = color.new(color.yellow,50)
hiddenBearColor = color.new(color.yellow,50)
textColor = color.white
noneColor = color.new(color.white, 100)

fast_ma = ema(src, fast)
slow_ma = ema(src, slow)
macd = fast_ma-slow_ma
signal = ema(macd, smooth)
hist = macd - signal

osc = osctype=="MACD" ? macd : (osctype=="SIGNAL" ? signal : hist)

//plot(osc, title="macd", linewidth=2, color=color.aqua)
//plot(macd, title="macd", linewidth=2, color=color.aqua)
plot(osc, color=color.aqua)
//plot(hist, style=plot.style_histogram)

plFound = na(pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(pivothigh(osc, lbL, lbR)) ? false : true

_inRange(cond) =>
    bars = barssince(cond == true)
    rangeLower <= bars and bars <= rangeUpper

//------------------------------------------------------------------------------
// Regular Bullish

// Osc: Higher Low
oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Lower Low
priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)

bullCond = plotBull and priceLL and oscHL and plFound

plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish",
	 linewidth=2,
	 color=(bullCond ? bullColor : noneColor),
	 transp=0
	 )

plotshape(
	 bullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bullish Label",
	 text="D",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Hidden Bullish

// Osc: Lower Low
oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

// Price: Higher Low
priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)

hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound

plot(
	 plFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish",
	 linewidth=2,
	 color=(hiddenBullCond ? hiddenBullColor : noneColor),
	 transp=0
	 )

plotshape(
	 hiddenBullCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bullish Label",
	 text="H",
	 style=shape.labelup,
	 location=location.absolute,
	 color=bullColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Regular Bearish

// Osc: Lower High
oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Higher High
priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)

bearCond = plotBear and priceHH and oscLH and phFound

plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish",
	 linewidth=2,
	 color=(bearCond ? bearColor : noneColor),
	 transp=0
	 )

plotshape(
	 bearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Regular Bearish Label",
	 text="D",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// Hidden Bearish

// Osc: Higher High
oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

// Price: Lower High
priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)

hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound

plot(
	 phFound ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish",
	 linewidth=2,
	 color=(hiddenBearCond ? hiddenBearColor : noneColor),
	 transp=0
	 )

plotshape(
	 hiddenBearCond ? osc[lbR] : na,
	 offset=-lbR,
	 title="Hidden Bearish Label",
	 text="H",
	 style=shape.labeldown,
	 location=location.absolute,
	 color=bearColor,
	 textcolor=textColor,
	 transp=0
	 )

//------------------------------------------------------------------------------
// ALERT

alertcondition(bullCond or hiddenBullCond, title="bull_alert", message="↑ {{interval}} Bullish sign appered!! by MACD divergence")
alertcondition(bearCond or hiddenBearCond, title="bear_alert", message="↓ {{interval}} Bearish sign appered!! by MACD divergence")


				
			
اسکریپت اندیکاتور مکدی

اسکریپت اندیکاتور مکدی برای تشخیص نقاط ورود و خروج در معاملات

				
					// https://wWw.Last3een.iR By AmirAhmadi

//@version=5
strategy("Range Strat - MACD/RSI", 
     overlay=true,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=10, precision=2, initial_capital=1000,
     pyramiding=2,
     commission_value=0.05)

//Backtest date range
StartDate = input.time(timestamp("13 Jun 2022"), title="Start Date")
EndDate = input.time(timestamp("13 Jun 2024"), title="Start Date")
inDateRange = (time >= StartDate) and (time < EndDate)

// RSI Input Settings
rsisrc = input(title="RSI Source", defval=open, group="RSI Settings")
length = input(title="Length", defval=14, group="RSI Settings" )
overSold = input(title="Over Sold Threshold", defval=55, group="RSI Settings" )
overBought = input(title="Over Bought Threshold", defval=50, group="RSI Settings" )

// Calculating RSI
vrsi = ta.rsi(rsisrc, length)
RSIunder = (vrsi <= overSold)
RSIover = (vrsi >= overBought)

// MACD Input Settings
macdsrc = input(title="MACD Source", defval=open, group="MACD Settings")
fast_length = input(title="Fast Length", defval=12, group="MACD Settings")
slow_length = input(title="Slow Length", defval=26, group="MACD Settings")
signal_length = input.int(title="Signal Smoothing",  minval = 1, maxval = 50, defval = 9, group="MACD Settings")
sma_source = input.string(title="Oscillator MA Type",  defval="EMA", options=["SMA", "EMA"], group="MACD Settings")
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"], group="MACD Settings")

// Calculating MACD
fast_ma = sma_source == "SMA" ? ta.sma(macdsrc, fast_length) : ta.ema(macdsrc, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(macdsrc, slow_length) : ta.ema(macdsrc, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
delta = macd - signal

MACDcrossover = ta.crossover(delta, 0)
MACDcrossunder = ta.crossunder(delta, 0)

// Stop Loss Input Settings
longLossPerc = input(title="Long Stop Loss (%)", defval=15, group="Stop Loss Settings") * 0.01
shortLossPerc = input(title="Short Stop Loss (%)", defval=15, group="Stop Loss Settings") * 0.01

// Calculating Stop Loss
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)

// Strategy Entry
if (not na(vrsi))
	if (inDateRange and MACDcrossover and RSIunder)
		strategy.entry("LONG", strategy.long, comment="LONG")
	if (inDateRange and MACDcrossunder and RSIover)
		strategy.entry("SHORT", strategy.short, comment="SHORT")

// Submit exit orders based on calculated stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="LONG STOP", stop=longStopPrice)
if (strategy.position_size < 0)
    strategy.exit(id="SHORT STOP", stop=shortStopPrice)
				
			
اسکریپت سیگنال ورود و خروج با مکدی

اسکریپت استراتژی اندیکاتور مکدی در ترکیب با SMA 200

				
					// https://wWw.Last3een.iR By AmirAhmadi

//@version=2
strategy("MACD + SMA 200 Strategy (by ChartArt)", shorttitle="CA_-_MACD_SMA_strategy", overlay=true)

// ChartArt's MACD + SMA 200 Strategy
//
// Version 1.0
// Idea by ChartArt on November 30, 2015.
//
// Here is a combination of the MACD with the
// slow moving average SMA 200 as a strategy.
//
// This strategy goes long if the MACD histogram
// and the MACD momentum are both above zero and
// the fast MACD moving average is above the
// slow MACD moving average. As additional long filter
// the recent price has to be above the SMA 200.
// If the inverse logic is true, the strategy
// goes short. For the worst case there is a
// max intraday equity loss of 50% filter.


// Input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")
veryslowLength=input(200,minval=1, title="Very slow moving average")
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Moving Averages?")
switch3=input(true, title="Enable Background Color?")

// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)
veryslowMA = sma(source, veryslowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal

// Colors
MAtrendcolor = change(veryslowMA) > 0 ? green : red
trendcolor = fastMA > slowMA and change(veryslowMA) > 0 and close > slowMA ? green : fastMA < slowMA and change(veryslowMA) < 0 and close < slowMA ? red : blue
bartrendcolor = close > fastMA and close > slowMA and close > veryslowMA and change(slowMA) > 0 ? green : close < fastMA and close < slowMA and close < veryslowMA and change(slowMA) < 0 ? red : blue
backgroundcolor = slowMA > veryslowMA and crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA ? green : slowMA < veryslowMA and crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA ? red : na
bgcolor(switch3?backgroundcolor:na,transp=80)
barcolor(switch1?bartrendcolor:na)

// Output
F=plot(switch2?fastMA:na,color=trendcolor)
S=plot(switch2?slowMA:na,color=trendcolor,linewidth=2)
V=plot(switch2?veryslowMA:na,color=MAtrendcolor,linewidth=4)
fill(F,V,color=gray)

// Strategy
buyprice = low
sellprice = high
cancelLong = slowMA < veryslowMA
cancelShort = slowMA > veryslowMA

if (cancelLong)
    strategy.cancel("MACDLE")

if crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA 
    strategy.entry("MACDLE", strategy.long, stop=buyprice, comment="Bullish")

if (cancelShort)
    strategy.cancel("MACDSE")

if crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA 
    strategy.entry("MACDSE", strategy.short, stop=sellprice, comment="Bearish")

maxIdLossPcnt = input(50, "Max Intraday Loss(%)", type=float)
strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)
				
			
اسکریپت ترکیب macd و sma200
دیدگاهتان را با ما درمیان بگذارید
تعداد دیدگاه : 0
امتیاز کلی : 0.0
پیشنهاد شده توسط : 0 کاربر
بر اساس 0 دیدگاه
0
0
0
0
0

هیچ دیدگاهی برای این محصول نوشته نشده است.

لطفا پیش از ارسال نظر، خلاصه قوانین زیر را مطالعه کنید:

فارسی بنویسید و از کیبورد فارسی استفاده کنید. بهتر است از فضای خالی (Space) بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

نظرات خود را براساس تجربه و استفاده‌ی عملی و با دقت به نکات فنی ارسال کنید؛ بدون تعصب به محصول خاص، مزایا و معایب را بازگو کنید و بهتر است از ارسال نظرات چندکلمه‌‌ای خودداری کنید.
اولین کسی باشید که دیدگاهی می نویسد “آموزش اندیکاتور MACD”

نشانی ایمیل شما منتشر نخواهد شد.

رایگان

تعداد دانشجو : 0
تاریخ انتشار: 18 شهریور 1401آخرین بروزرسانی: 26 شهریور 1401تعداد بازدید: 34
مدرس

امیر محمد احمدی فر

امتیازی ثبت نشده است