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
آشنایی با کاربرد هوش مصنوعی و یادگیری ماشین در بازارهای سرمایه
در این گزارش 29 صفحه ای که توسط بورس اوراق بهادار تهران تهیه شده است به معرفی کاربردهای هوش مصنوعی در بازارهای مالی به زبان ساده پرداخته می شود.
گزارش حاضر، از جنس گردآوری مطلب است و برای علاقه مندانی که جدیدا به این موضوع علاقه مند شده اند مفید خواهد بود.

#هوش_مصنوعی
#یادگیری_ماشینی
#معاملات_الگوریتمی

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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
15
@python4finance-tse-machinelearning.pdf
1.5 MB
دانلود گزارش آشنایی با کاربرد هوش مصنوعی و یادگیری ماشین در بازارهای سرمایه
کاری از شرکت بورس اوراق بهادار تهران

#هوش_مصنوعی
#یادگیری_ماشینی
#معاملات_الگوریتمی

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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
30
عید سعید غدیر مبارک.
ان شاء الله به مدد عنایات امیرالمومنین (ع)، شاهد نابودی رژیم خبیت صهیونی باشیم.
106
This media is not supported in your browser
VIEW IN TELEGRAM
فیلم دستگیری عامل موساد
جنگ بد است، اما دفاع، در هر مسلک و مذهبی، مقدس است. دفاع از عزت و شرف و مملکت، در مقابل بی همه چیز ترین دشمن، مقدس است.
تعجب می کنم از کسانی که به راحتی سر معامله وطن با رژیم غاصب کودک کش صحبت می کنند،

دست سربازان جان برکفی که در حال مبارزه با دشمن سفاک هستند را می بوسم.


پی نوشت: ان شاء الله روال آموزشی کانال بعد از عادی شدن شرایط ادامه پیدا خواهد کرد.
120
امام علي عليه السلام :اَلْحـَذَرَ مـِنْ عَدُوِّكَ بَعْدَ صُلْحِهِ، فَإِنَّ الْعَدُوَّ رُبَّما قارَبَ لِيَتَغَفَّلَ، فَخُذْ بِالْحَزْمِ وَاتَّهِمْ فى ذلِكَ حُسْنَ الظَّنِّ.
[مالك] از دشمن خود پس از آشتى بپرهيز چرا که دشمن [با وعده و وعید] خود را به تو نزدیک می کند تا غفلتى يابد ـ پس دور انديش باش! و به دشمن گمان خوب نبر.


قدردان زحمات نیروهای نظامی و انتظامی کشور هستیم.

ضمن تشکر از همه عزیزان، و با آرزوی ایرانی سربلند و آباد، ان شاء الله از امروز روند آموزشی کانال مجددا شروع می شود.
53
نمونه گیری در داده های سری زمانی
عموما در بازارهای مالی با داده های سری زمانی سر و کار داریم. قبلا در این پست (لینک) در خصوص انتخاب داده، نمونه گیری و بازنمونه گیری در یادگیری ماشین صحبت شد. در نمونه گیری های متقاطع رایج، نمونه ها به صورت تصادفی از هر بخش جامعه انتخاب می شدند. اما در داده های سری های زمانی، روش‌های اعتبارسنجی متقاطع (cross-validation) مناسب نیستند، چرا که منجر به آموزش روی داده‌های آینده و ارزیابی روی داده‌های گذشته می‌شوند. برای اطمینان از قابل‌مقایسه‌بودن معیارها در بین بخش‌ها (folds)، نمونه‌ها باید با فواصل زمانی مساوی انتخاب شوند. وقتی این شرط برقرار باشد، هر مجموعه آزمون بازه‌ی زمانی یکسانی را پوشش می‌دهد و اندازه مجموعه آموزش با انباشت داده‌ها از تقسیمات قبلی افزایش می‌یابد.
این نوع اعتبارسنجی متقاطع، نوعی تغییر یافته از KFold است. در تقسیم kام، k بخش اول را به‌عنوان مجموعه آموزش و بخش (k+1)ام را به‌عنوان مجموعه آزمون برمی‌گرداند.

#پایتون_مالی
#انتخاب_داده
#نمونه_گیری

#سری_زمانی
#Time_series
#Sampling


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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
25
نمونه‌گیری در داده های سری زمانی- بخش دوم
برای نمونه گیری از سری های زمانی در ماژول scikit-learn از تابع TimeSeriesSplit در کلاس model_selection استفاده می کنیم.
در مثال این پست، نمونه های مختلفی از جامعه برای آموزش و آزمون انتخاب می شود.
#code by @python4finance
import numpy as np
from sklearn.model_selection import TimeSeriesSplit
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4, 5, 6])
tscv = TimeSeriesSplit()
for i, (train_index, test_index) in enumerate(tscv.split(X)):
print(f"Fold {i}:")
print(f" Train: index={train_index}")
print(f" Test: index={test_index}")


#پایتون_مالی
#انتخاب_داده
#نمونه_گیری

#سری_زمانی
#Time_series
#Sampling


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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
18
منحنی یادگیری (Learning Curves)
در پست های قبل در خصوص بیش برازش صحبت کردیم. سوال مهمی که در یادگیری ماشین همیشه با آن مواجهیم این است که آیا متغیرهای (ویژگی ها) زیادتری را به مدل اضافه کنیم یا مدل را ساده کرده و از متغیرهای کمتری استفاده کنیم. استفاده از متغیرهای کمتر علاوه بر اینکه باعث صرفه جویی در منابع (مانند CPU و...) می شود سرعت رسیدن به نتیجه را افزایش می دهد اما باعث ایجاد اُریبی (Bias) می شود در حالی که استفاده از متغیرهای زیاد باعث بهبود عملکرد مدل در داده های آزمایشی می شود اما احتمال زیاد باعث بیش برازش (Over Fitting) می شود.
برای درک این منظور از منحنی های یادگیری استفاده می کنیم. منحنی یادگیری، یک نمودار است که نشان می‌دهد عملکرد مدل ما (مثلا دقت یا خطا) با افزایش تعداد داده‌های آموزشی چگونه تغییر می‌کند. این منحنی به ما کمک می کند تا مدلهای بهینه ای که همزمان هم اُریبی کمتری دارند و هم واریانس کمتری دارد را شناسایی کنیم.
در پست‌های آتی مثال عملی در این خصوص را بررسی خواهیم کرد.

#منحنی_یادگیری
#یادگیری_ماشین
#Learning_Curves


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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
16
این حسین کیست که عالم همه دیوانه اوست

فرا رسیدن ماه محرم را به شما و تمام عاشقان حسینی، تسلیت عرض می‌نمایم.

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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
72
معرفی کتاب «پایتون برای مالی و معاملات الگوریتمی (نگارش دوم): یادگیری ماشین، یادگیری عمیق، تحلیل های سری زمانی، مدیریت ریسک و پورتفولو با متاتریدر 5» به انگلیسی «Python for Finance and Algorithmic trading (2nd edition): Machine Learning, Deep Learning, Time series Analysis, Risk and Portfolio Management for MetaTrader


در این کتاب به صورت عملیاتی با مفاهیم مالی و مدیریت پورتفولیو و معاملات الگوریتمی آشنا می شوید. نکته بارز کتاب، سبک کاربردی آن است. همچنین در این کتاب روش های اتصال پایتون به متاتریدر و معاملات زنده توضیح داده شده است.

#معرفی_کتاب
#معاملات_الگوریتمی
#Machine_Learning
#Algorithmic_Trading

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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
21
@python4finance-Python for Finance and Algorithmic trading.pdf
6.8 MB
دانلود کتاب «پایتون برای مالی و معاملات الگوریتمی (نگارش دوم): یادگیری ماشین، یادگیری عمیق، تحلیل های سری زمانی، مدیریت ریسک و پورتفولو با متاتریدر 5» به انگلیسی «Python for Finance and Algorithmic trading (2nd edition): Machine Learning, Deep Learning, Time series Analysis, Risk and Portfolio Management for MetaTrader


#دانلود_کتاب
#معاملات_الگوریتمی
#Machine_Learning
#Algorithmic_Trading

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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
19
2nd_edition_BOOK_AMAZON_Python_for_Finance_and_Algorithmic_Trading.zip
15.1 MB
دانلود سورس کدهای کتاب «پایتون برای مالی و معاملات الگوریتمی (نگارش دوم): یادگیری ماشین، یادگیری عمیق، تحلیل های سری زمانی، مدیریت ریسک و پورتفولو با متاتریدر 5» به انگلیسی «Python for Finance and Algorithmic trading (2nd edition): Machine Learning, Deep Learning, Time series Analysis, Risk and Portfolio Management for MetaTrader


#دانلود_سورس
#معاملات_الگوریتمی
#Machine_Learning
#Algorithmic_Trading

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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
24
سرمایه‌گذاری مبتنی بر عوامل (Factor Investing) چیست؟

سرمایه‌گذاری مبتنی بر عوامل یکی از رویکردهای مدرن در مدیریت سرمایه‌گذاری است که به‌جای انتخاب سهام بر اساس تحلیل‌های سنتی، از ویژگی‌های خاص و قابل اندازه‌گیری شرکت‌ها استفاده می‌کند. این ویژگی‌ها یا «عوامل» (Factors) می‌توانند بازدهی را در بلندمدت توضیح دهند.
عوامل رایج در این رویکرد:
ارزش (Value): خرید سهام‌هایی که نسبت قیمت به سود یا قیمت به ارزش دفتری پایینی دارند
اندازه (Size): تمرکز بر شرکت‌های کوچک‌تر که پتانسیل رشد بیشتری دارند
مومنتوم (Momentum): سرمایه‌گذاری در سهامی که عملکرد خوبی در گذشته داشته‌اند
کیفیت (Quality): انتخاب شرکت‌هایی با سودآوری پایدار، بدهی کم و مدیریت قوی
نوسان پایین (Low Volatility): سهام‌هایی با نوسان کمتر که معمولاً ریسک پایین‌تری دارند
ترکیب چند عامل می‌تواند عملکرد بهتری نسبت به استفاده از یک عامل داشته باشد. به این رویکرد «چندعاملی» (Multi-Factor Investing) گفته می‌شود.

در پست بعدی، یک مثال ساده با پایتون را با هم بررسی خواهیم کرد.

#Factor_Investing

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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
19
سرمایه‌گذاری مبتنی بر عوامل (Factor Investing) - بخش دوم
در مثال این پست اطلاعات چند نماد از Yahoo Finance دریافت می شود و سهم هایی که شاخص P/E زیر 25 دارند نمایش داده می شود. عدد ۲۵ به ما اجازه می‌دهد شرکت‌هایی با رشد بالا که هنوز ارزش‌گذاری منطقی دارند را وارد پورتفوی کنیم—مثل برخی شرکت‌های تکنولوژی که سودآورند ولی رشدشان هم چشمگیر است.
#code by @python4finance
import yfinance as yf
import pandas as pd
tickers = ['AAPL', 'MSFT', 'GOOGL', 'TSLA', 'AMZN']
data = []
for ticker in tickers:
stock = yf.Ticker(ticker)
info = stock.info
try:
pe_ratio = info['trailingPE']
price = info['currentPrice']
eps = info['trailingEps']
data.append({
'Ticker': ticker,
'Price': price,
'EPS': eps,
'P/E': pe_ratio
})
except KeyError:
print(f"Error on reading data!")
df = pd.DataFrame(data)
value_stocks = df[df['P/E'] < 25]
print("Stocks based on Value:")
print(value_stocks)


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

🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
20
رسم نمودارهای جذاب با 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