Artikel terakhir membahas bagaimana Anda bisa mendapatkan informasi tentang instrumen keuangan. Selanjutnya, beberapa artikel akan dipublikasikan tentang apa yang awalnya dapat dilakukan dengan data yang diperoleh, bagaimana menganalisis dan menyusun strategi. Materi didasarkan pada publikasi dalam sumber dan kursus asing di salah satu platform online.Artikel ini akan membahas cara menghitung profitabilitas, volatilitas, dan membangun salah satu indikator utama.import pandas as pd
import yfinance as yf
import numpy as np
import matplotlib.pyplot as plt
sber = yf.download('SBER.ME','2016-01-01')
Profitabilitas
Nilai ini merupakan persentase perubahan nilai saham untuk satu hari perdagangan. Itu tidak memperhitungkan dividen dan komisi akun. Mudah untuk menghitung menggunakan fungsi pct_change () dari paket Pandas.Sebagai aturan, log profitabilitas digunakan, karena memungkinkan Anda untuk lebih memahami dan menyelidiki perubahan seiring waktu.
daily_close = sber[['Adj Close']]
daily_pct_change = daily_close.pct_change()
daily_pct_change.fillna(0, inplace=True)
print(daily_pct_change.head())
daily_log_returns = np.log(daily_close.pct_change()+1)
print(daily_log_returns.head())
Untuk mengetahui profitabilitas mingguan dan / atau bulanan dari data yang diperoleh, gunakan fungsi resample ().
monthly = sber.resample('BM').apply(lambda x: x[-1])
print(monthly.pct_change().tail())
quarter = sber.resample("4M").mean()
print(quarter.pct_change().tail())
Fungsi pct_change () nyaman digunakan, tetapi pada gilirannya menyembunyikan bagaimana nilai diperoleh. Perhitungan serupa, yang akan membantu memahami mekanisme, dapat dilakukan dengan menggunakan shift () dari paket dari paket Pandas. Harga penutupan harian dibagi dengan harga masa lalu (digeser oleh satu) dan unit dikurangkan dari nilai yang diterima. Tetapi ada satu minus kecil - nilai pertama sebagai hasilnya adalah NA.Perhitungan profitabilitas didasarkan pada rumus:
Di mana, p adalah harga, t adalah waktu instan dan r adalah profitabilitas.Selanjutnya, diagram distribusi profitabilitas dibuat dan statistik utama dihitung:
daily_pct_change = daily_close / daily_close.shift(1) - 1
print(daily_pct_change.head())

daily_pct_change.hist(bins=50)
plt.show()
print(daily_pct_change.describe())
Distribusi terlihat sangat simetris dan terdistribusi normal dengan nilai 0,00. Untuk mendapatkan nilai statistik lainnya, fungsi description () digunakan. Akibatnya, terlihat bahwa nilai rata-rata sedikit lebih besar dari nol, dan standar deviasi hampir 0,02.Pengembalian kumulatif
Pengembalian harian kumulatif berguna untuk menentukan nilai investasi selama periode waktu tertentu. Itu dapat dihitung seperti yang ditunjukkan pada kode di bawah ini.
cum_daily_return = (1 + daily_pct_change).cumprod()
print(cum_daily_return.tail())

cum_daily_return.plot(figsize=(12,8))
plt.show()
Anda dapat menghitung ulang hasil dalam periode bulanan:
cum_monthly_return = cum_daily_return.resample("M").mean()
print(cum_monthly_return.tail())
Mengetahui cara menghitung pengembalian sangat berharga saat menganalisis saham. Tetapi itu bahkan lebih berharga jika dibandingkan dengan saham lain.Ambil beberapa saham (pilihan mereka benar-benar acak) dan bangun grafik mereka.ticker = ['AFLT.ME','DSKY.ME','IRAO.ME','PIKK.ME', 'PLZL.ME','SBER.ME','ENRU.ME']
stock = yf.download(ticker,'2018-01-01')
daily_pct_change = stock['Adj Close'].pct_change()
daily_pct_change.hist(bins=50, sharex=True, figsize=(20,8))
plt.show()
Grafik lain yang bermanfaat adalah matriks pencar. Itu dapat dengan mudah dibangun menggunakan fungsi scatter_matrix (), yang merupakan bagian dari panda library. Daily_pct_change digunakan sebagai argumen dan parameter Estimasi Densitas Kernel diatur. Selain itu, Anda dapat mengatur transparansi menggunakan parameter alfa dan ukuran grafik menggunakan parameter figsize.from pandas.plotting import scatter_matrix
scatter_matrix(daily_pct_change, diagonal='kde', alpha=0.1,figsize=(20,20))
plt.show()
Itu saja untuk saat ini. Artikel selanjutnya akan membahas menghitung volatilitas, rata-rata dan menggunakan metode kuadrat terkecil.