Python4Finance
9.34K subscribers
569 photos
41 videos
152 files
762 links
کانال Python4Finance
آموزش پایتون در اقتصاد و مدیریت مالی
هر روز چند نکته را در خصوص پایتون برای مالی بیاموزیم
***
ارتباط با من
b2n.ir/y72935
***
آپارت:
aparat.com/Python4Finance
کانال چالش ها:
t.iss.one/python4finance_challenge
Download Telegram
رسم نمودارهای جذاب با Pygal
یکی از جذابیت های پایتون، وجود کتابخانه های متنوعی است که هر کدام ویژگی های جالبی را ایجاد می کنند. کتابخانه Pygal به شما امکان ایجاد نمودارهای متنوعی را می دهد که می توانید آنها را به صورت پویا در قالب فایل های Svg ذخیره نمایید. نکته جالب دیگر پشتیبانی این کتابخانه از زبان فارسی است.
در مثال این پست، اطلاعات مربوط به 5 سهم از یاهو فراخوانی شده و بر اساس روش سرمایه‌گذاری مبتنی بر عوامل (Factor Investing) نمایش داده می شوند.
سورس برنامه در پست بعدی ارسال می شود.

#نمودار
#pygal
#Factor_Investing

پایتون برای مالی

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
21
رسم نمودارهای جذاب با Pygal- بخش دوم

#code by @python4finance
import yfinance as yf
import pandas as pd
import numpy as np
import pygal
from IPython.display import SVG

tickers = ['AAPL', 'MSFT', 'GOOGL', 'TSLA', 'AMZN']
factors = ['Value (P/E)', 'Momentum (6M)', 'Quality (ROE)']

data = []
for ticker in tickers:
stock = yf.Ticker(ticker)
info = stock.info
hist = stock.history(period='6mo')

try:
pe = info['trailingPE']
roe = info['returnOnEquity']
momentum = (hist['Close'].iloc[-1] - hist['Close'].iloc[0]) / hist['Close'].iloc[0]
data.append({'Ticker': ticker, 'P/E': pe, 'Momentum': momentum, 'ROE': roe})
except:
print(f"Error on reading data")

df = pd.DataFrame(data)

# Normalizing
for col in ['P/E', 'Momentum', 'ROE']:
col_norm = col + '_norm'
values = df[col].values
values = np.nan_to_num(values, nan=np.nanmean(values))
df[col_norm] = (values - np.min(values)) / (np.max(values) - np.min(values))

radar_chart = pygal.Radar(fill=True)
radar_chart.title = 'Factor Investing مقایسه سهام مختلف بر اساس'
radar_chart.x_labels = factors

for i, row in df.iterrows():
radar_chart.add(row['Ticker'], [1 - row['P/E_norm'], row['Momentum_norm'], row['ROE_norm']])

radar_chart.render_to_file('multi_factor_radar.svg')
SVG(filename='multi_factor_radar.svg')


#نمودار
#pygal

پایتون برای مالی

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
15