Mengimplementasikan MACD di Python

Penulis:Kebaikan, Dibuat: 2019-04-08 10:56:11, Diperbarui:

MACD adalah indikator teknis yang banyak digunakan dalam perdagangan saham, mata uang, cryptocurrency, dll.

Dasar-dasar MACD

MACD digunakan dan didiskusikan di banyak lingkaran perdagangan yang berbeda. Moving Average Convergence Divergence (MACD) adalah indikator trend berikut. MACD dapat dihitung dengan sangat sederhana dengan mengurangi EMA 26 periode dari EMA 12 periode. Kami sebelumnya membahas EMA dalam artikel kami di sini. MACD dapat digunakan dan ditafsirkan dalam beberapa cara yang berbeda untuk memberikan nilai potensial pedagang dan wawasan tentang keputusan perdagangan mereka.

Strategi yang Berguna

MACD biasanya digunakan dengan menganalisis crossover, divergensi, dan periode kemiringan curam (positif atau negatif). Bersama dengan garis MACD (dari mengurangi EMA 12 periode dari EMA 16 periode) grafik biasanya akan mencakup garis sinyal yang digambarkan di atas MACD.

Dalam crossover bullish, sama seperti dalam Moving Averages, sinyal beli terjadi ketika MACD melintasi di atas garis sinyal. Sinyal bearish terjadi ketika MACD melintasi di bawah garis sinyal. Jika crossover terjadi dengan MACD miring tinggi, ini bisa menjadi tanda kondisi overbought atau oversold, tergantung pada apakah crossover masing-masing bullish atau bearish. MACD adalah indikator yang bagus untuk memahami apakah pergerakan harga kuat atau lemah. Gerakan yang lemah kemungkinan akan diperbaiki dan gerakan yang kuat kemungkinan akan berlanjut.

Divergensi juga mudah dipahami. Ketika MACD menetapkan tinggi atau rendah yang menyimpang dari tinggi atau rendah dalam harga, ia menetapkan divergensi. Divergensi bullish terjadi ketika MACD memiliki dua titik rendah yang meningkat pada MACD dengan dua titik rendah yang jatuh pada harga aset. Divergensi dapat digunakan untuk menemukan tren yang berubah. Pedagang selalu mencari keunggulan kompetitif dan memprediksi perubahan tren dapat sangat menguntungkan. Tentu saja, divergensi tidak sepenuhnya dapat diandalkan dan hanya harus digunakan sebagai informasi tambahan, bukan satu-satunya indikasi arah harga.

Kemiringan yang curam dapat menandakan situasi overbought atau oversold. Dalam situasi seperti itu, tren saham kemungkinan akan segera kehilangan tenaga dan melihat koreksi atau pembalikan dari arah saat ini.

Implementasi Python

Kami mulai seperti biasa dengan memilih saham dan mengumpulkan data. Seperti biasa, kami akan melakukan analisis kami pada AMD dan menggunakan API IEX untuk mengambil data. IEX selalu menjadi sumber data yang sangat dapat diandalkan bagi saya, tetapi Anda dapat menggunakan Quandl atau sumber data lainnya yang Anda sukai.

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 saat ini (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 memungkinkan kita untuk memetakan MACD vs garis sinyal. Lihat apakah Anda dapat melihat crossover bullish dan bearish!

imgMACD vs Garis Sinyal Periksa grafik di bawah ini. Apakah Anda benar? Ingat, crossover bullish terjadi ketika MACD melintasi di atas garis sinyal dan crossover bearish terjadi ketika MACD melintasi di bawah garis sinyal.

imgCrossover bullish diwakili dengan warna hijau, crossover bearish diwakili dengan warna merah. Contoh di atas adalah cara sederhana untuk menggunakan MACD untuk mempelajari crossover. Selanjutnya, mari kita mempelajari kekuatan dan memeriksa kondisi overbought atau oversold.

Kita mulai dengan menerapkan rata-rata 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 oranye mewakili MACD Kita bisa membesarkan garis MACD ini sedikit dengan menggambarnya terpisah dari harga saham dan melihat lereng yang curam lebih jelas.

imgMACD dari akhir 2018 hingga saat ini (awal 2019). Mari kita ingat kembali pembahasan kita tentang overbought dan oversold dari sebelumnya. Kita dapat melihat MACD tetap cukup datar dari waktu ke waktu. Tapi ada saat-saat tertentu di mana kurva MACD lebih curam daripada yang lain. Ini adalah contoh kondisi overbought atau oversold. Kami mewakili kondisi overbought kami dengan lingkaran hijau dan overbought dengan lingkaran merah. Anda dapat melihat bahwa segera setelah MACD menunjukkan kondisi overbought atau oversold momentum melambat dan harga saham bereaksi sesuai.

imgLingkaran hijau sesuai dengan divergensi bullish, merah sesuai dengan divergensi bearish Kami secara singkat membahas MACD dan menerapkannya di Python untuk memeriksa penggunaannya dalam kondisi crossover dan overbought/oversold.


Lebih banyak