Yahoo finance adalah salah satu bagian dari Yahoo, yang berisi tentang informasi berkaitan dengan keuangan, dan merupakan salah satu sumber data yang sering dipakai untuk bahan rujukan para trader atau investor dalam menganalisa pasar saham. Selain saham, Yahoo finance juga berisi informasi mengenai analis pasar, harga forex, komoditi, berita-berita yang berkaitan dengan isu-isu yang sekiranya mempengaruhi pasar.
Lantas bagaimana cara mengambil dan memanfaatkan data-data Yahoo Finance ini untuk di aplikasikan kedalam metode-metode data driven investing seperti machine learning, algoritma trading, dan sebagainya ?
Beberapa waktu yang lalu, Yahoo Finance menyediakan API (aplication programming interface) untuk akses data, namun sejak 2017, layanan API di hentikan, karena banyaknya penyalahgunaan data. Yahoo Finance saat ini hanya tersedia dalam bentuk web, dan data-data yang di sajikan juga dalam bentuk web. Untuk mengambil data-data tersebut, salah satu cara adalah dengan menggunakan web crawler yang mempunyai kesulitan cukup tinggi, atau dengan cara yang lebih primitif, yaitu dengan melakukan copy secara langsung, baik dengan metode save-as atau copy paste. Tapi akan diperlukan langkah lebih lanjut agar data tersebut dapat di pakai.
Ran Arrousi, seorang developer open source, membuat library yFinance untuk bisa melakukan akses data-data yang tersedia di Yahoo Finance, secara gratis.
yFinance merupakan library python opensource yang sangat berguna untuk mengambil data-data historis dari Yahoo Finance. yFinance sangat mudah digunakan dan mempunyai granularitas data yang cukup baik. Kita bisa mendapatkan data pasar dengan periode 1 menit, hingga 3 bulan.
Pemakaian
Sebelum bisa di pakai, library yFinance harus di instalasi terlebih dulu. Instalasi library yFinance sangat mudah, apabila sudah ada python, maka cukup menggunakan pip untuk instalasi
pip install yfinance
Contoh pemakaian
Untuk contoh, data yang akan di ambil adalah data-data saham BCA dengan kode ticker BBCA. Untuk data pasar Indonesia (IDX), perlu ditambahkan akhiran “.JK”
#import library
import yfinance as yf
bbca = yf.Ticker('BBCA.JK')
Mengambil info emiten
bbca.info
Hasil :
Mengambil data dividend
bbca.dividens
Hasil :
Mengambil data financial statement
bbca.financial_statement
Hasil :
Mengambil data neraca / balance sheet
bbca.balance_sheet
Hasil :
Mengambil data harga saham dari awal pencatatan
bbca.history(period="MAX")
Hasil :
Mengambil data harga saham dengan periode tertentu
bbca.history(start="2022-01-01",end="2022-02-02")
Hasil :
Untuk data harga saham, ada beberapa opsi
period : 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max
interval : 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo
Mengambil data beberapa saham sekaligus
data = yf.download("BBNI.JK BBCA.JK", start="2022-01-01", end="2022-04-30")
print(data)
Hasil :
Beberapa contoh yang lain
# data dividends, splits
bbca.actions
# data dividend
bbca.dividends
# data stock split
bbca.splits
# data finansial
bbca.financials
bbca.quarterly_financials
# data pemegang saham
bbca.major_holders
# data neraca
bbca.balance_sheet
bbca.quarterly_balance_sheet
# data cashflow
bbca.cashflow
bbca.quarterly_cashflow
# data revenue earnings
bbca.earnings
bbca.quarterly_earnings
Untuk kode lengkap bisa di cek di github
https://github.com/wimasy/invstr/tree/main/yfinance1
Penutup
yFinance memberikan cara sederhana untuk mengambil data dari Yahoo Finance. Tapi perlu di ingat, bahwa yFinance hanya sesuai untuk keperluan pribadi saja, tidak untuk kepentingan komersial. Kelengkapan data dan ke akuratan data tidak dijamin oleh pengembang library, karena memang proyek ini dibuat tidak untuk komersial. Ada beberapa produk API komersial yang bisa dipakai apabila memang di perlukan data yang akurat dan lengkap.
Leave a Reply Cancel reply