Strategi Trading EMA Cross Dengan Python Dan Streamlit
Disclaimer: not financial advice
Salah satu strategi trading yang paling simpel dan populer adalah Exponential Moving Average (EMA cross). Dengan bantuan python dan Streamlit, kita bisa aplikasikan strategi ini dengan membuat sebuah aplikasi web. Kita perlu mengolah data yang kita punya untuk menghitung EMA.
Jadi selain belajar tentang strategi trading, kita juga akan belajar contoh manipulasi data yang sederhana. Di studi kasus ini, kita akan membuat suatu aplikasi yang berguna dengan python dan streamlit, terutama untuk teman-teman yang ingin belajar trading saham atau forex. 🚀
WARNING: Tapi ingat, tidak ada strategi yang sempurna dan trading itu perlu sangat berhati-hati. Perlu money management, testing dan pengalaman yang banyak untuk bisa profit konsisten. Sebagian besar orang yang mencoba trading akhirnya gagal. Jadi semoga dengan program yang kita buat ini, kita jadi bisa lebih hati-hati sebelum mulai trading dan jangan percaya dengan claim yang bisa ngasi keuntungan yang pasti.
Artikel ini adalah lanjutan dari postingan pertama tentang python dan Streamlit.
Langsung ke kodingan!
Kode lengkap bisa dilihat di:
Sekarang kita bahas beberapa komponen penting di dalam kode tersebut.
Input untuk periode EMA
ema1 = st.sidebar.text_input('EMA 1', 20)
ema2 = st.sidebar.text_input('EMA 2', 50)
Di sini kita akan tampilkan 2 EMA jadi kita bisa ambil 2 user input dari sidebar untuk periode EMA. Persilangan kedua EMA ini akan menentukan apakah kita buy atau sell.
Menghitung EMA
1
2
3
4
5
def get_ema(ticker_data, period):
ema = ticker_data['Close'].ewm(span=period).mean()
column_name = 'ema_' + str(period)
ticker_data[column_name] = ema
return ticker_data
Kita bisa dapetin EMA dengan gampang berkat function pandas dataframe ewm()
dan mean()
di line 2.
Menggambar garis EMA di candlestick chart
1
2
3
4
5
6
7
8
9
10
def add_ema_trace(candle_fig, timestamp, ema, trace_name, color):
candle_fig.add_trace(
go.Scatter(
x=timestamp,
y=ema,
name=trace_name,
line=dict(color=color)
)
)
return candle_fig
Function di atas berasumsi kita udah punya candlestick chart untuk diisi di parameter. Candlestick chart ini akan diberi dekorasi sesuai kebutuhan kita.
Setiap kali kita mau gambar garis EMA, kita bisa pakai function add_trace()
di line 2. Di dalamnya bisa kita tambahkan bermacam-macam jenis element chart, misalnya Plotly Scatter.
Hasil akhir
Setelah semua kodingan selesai dan aplikasi dijalankan dengan streamlit run
, hasilnya akan seperti ini:
Selamat bereksperimen!