Melaksanakan MACD dalam Python

Penulis:Kebaikan, Dicipta: 2019-04-08 10:56:11, Dikemas kini:

MACD adalah penunjuk teknikal yang digunakan secara popular dalam perdagangan saham, mata wang, cryptocurrency, dll.

Asas-asas MACD

MACD digunakan dan dibincangkan dalam banyak kalangan perdagangan yang berbeza. Divergensi Convergensi Purata Bergerak (MACD) adalah penunjuk trend berikut. MACD boleh dikira dengan sangat mudah dengan mengurangkan EMA 26 tempoh dari EMA 12 tempoh. Kami sebelum ini membincangkan EMA dalam artikel kami di sini. MACD boleh digunakan dan ditafsirkan dalam beberapa cara yang berbeza untuk memberi nilai dan pandangan kepada pedagang dalam keputusan perdagangan mereka.

Strategi yang Berguna

MACD biasanya digunakan dengan menganalisis persimpangan, perbezaan, dan tempoh cerun yang curam (positif atau negatif). Bersama dengan garis MACD (dari mengurangkan EMA 12 tempoh dari EMA 16 tempoh) carta biasanya akan merangkumi garis isyarat yang digambarkan di atas MACD. Garis isyarat ini adalah EMA 9 hari MACD.

Dalam crossover bullish, sama seperti dalam Moving Averages, isyarat beli berlaku apabila MACD melintasi di atas garis isyarat. Isyarat bearish berlaku apabila MACD melintasi di bawah garis isyarat. Jika crossover berlaku dengan MACD yang miring tinggi, ini boleh menjadi tanda keadaan overbought atau oversold, bergantung kepada sama ada crossover adalah bullish atau bearish masing-masing. MACD adalah penunjuk yang hebat untuk memahami sama ada pergerakan harga kuat atau lemah. Pergerakan yang lemah mungkin akan diperbetulkan dan pergerakan yang kuat mungkin akan berterusan.

Perbezaan juga mudah difahami. Apabila MACD menubuhkan tinggi atau rendah yang menyimpang dari tinggi atau rendah dalam harga, ia menubuhkan perbezaan. Perbezaan bullish berlaku apabila MACD mempunyai dua titik rendah yang meningkat pada MACD dengan dua titik rendah yang jatuh pada harga aset. Perbezaan boleh digunakan untuk mencari trend yang berubah. Pedagang sentiasa mencari kelebihan kompetitif dan meramalkan perubahan trend boleh sangat menguntungkan. Sudah tentu, perbezaan tidak sepenuhnya boleh dipercayai dan hanya boleh digunakan sebagai maklumat tambahan, bukan satu-satunya petunjuk arah harga.

Kemiringan yang curam boleh menandakan keadaan overbought atau oversold. Dalam keadaan sedemikian, trend saham mungkin akan segera kehilangan stim dan melihat pembetulan atau pembalikan dari arah semasa.

Pelaksanaan Python

Kami mula seperti biasa dengan memilih saham dan mengumpul data. Seperti biasa, kami akan melakukan analisis kami pada AMD dan menggunakan API IEX untuk mendapatkan data. IEX sentiasa menjadi sumber data yang sangat boleh dipercayai bagi saya, tetapi anda boleh menggunakan Quandl atau mana-mana sumber data lain yang anda suka.

import pandas as pd
import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
import pyEX as p
ticker = 'AMD'
timeframe = '6m'
df = p.chartDF(ticker, timeframe)
df = df[['close']]
df.reset_index(level=0, inplace=True)
df.columns=['ds','y']
plt.plot(df.ds, df.y, label='AMD')
plt.show()

imgAMD dari akhir 2018 hingga kini (awal 2019).

exp1 = df.y.ewm(span=12, adjust=False).mean()
exp2 = df.y.ewm(span=26, adjust=False).mean()
macd = exp1-exp2
exp3 = macd.ewm(span=9, adjust=False).mean()
plt.plot(df.ds, macd, label='AMD MACD', color = '#EBD2BE')
plt.plot(df.ds, exp3, label='Signal Line', color='#E5A4CB')
plt.legend(loc='upper left')
plt.show()

Ini membolehkan kita untuk merangka MACD berbanding garis isyarat. Lihat jika anda boleh melihat crossovers bullish dan bearish!

imgMACD vs Garis Isyarat Periksa carta di bawah. Adakah anda betul? Ingat, persilangan bullish berlaku apabila MACD melintasi di atas garis isyarat dan persilangan bearish berlaku apabila MACD melintasi di bawah garis isyarat.

imgCrossover bullish diwakili dalam warna hijau, crossover bearish diwakili dalam warna merah. Contoh di atas adalah cara mudah untuk menggunakan MACD untuk mengkaji crossover. Seterusnya, mari kita mengkaji kekuatan dan memeriksa keadaan overbought atau oversold.

Kita mulakan dengan melaksanakan purata bergerak eksponensial dan MACD.

exp1 = df.y.ewm(span=12, adjust=False).mean()
exp2 = df.y.ewm(span=26, adjust=False).mean()
exp3 = df.y.ewm(span=9, adjust=False).mean()
macd = exp1-exp2
plt.plot(df.ds, df.y, label='AMD')
plt.plot(df.ds, macd, label='AMD MACD', color='orange')
plt.plot(df.ds, exp3, label='Signal Line', color='Magenta')
plt.legend(loc='upper left')
plt.show()

imgGaris biru mewakili harga saham AMD, garis oren mewakili MACD Kita boleh membesarkan garis MACD ini sedikit dengan menggambarkannya secara berasingan dari harga saham dan melihat cerun yang lebih jelas.

imgMACD dari akhir 2018 hingga kini (awal 2019). Mari kita ingat semula perbincangan kita tentang overbought dan oversold dari sebelumnya. Kita dapat melihat MACD kekal agak rata dari masa ke masa. Tetapi ada masa-masa tertentu di mana kurva MACD lebih curam daripada yang lain. Ini adalah contoh keadaan overbought atau oversold. Kami mewakili keadaan overbought kami dengan bulatan hijau dan overbought dengan bulatan merah. Anda boleh melihat bahawa tidak lama selepas MACD menunjukkan keadaan overbought atau oversold, momentum melambatkan dan harga saham bertindak balas dengan sewajarnya.

imgLingkaran hijau sepadan dengan perbezaan bullish, merah sepadan dengan perbezaan bearish Kami secara ringkas membincangkan MACD dan menerapkannya dalam Python untuk memeriksa penggunaannya dalam keadaan silang dan overbought / oversold.


Lebih lanjut