TGViewer
Python4Finance Python4Finance @python4finance · 8.84K subscribers
Post #1087 5.14K
یک مثال ساده برای آشنایی با ماژول Alphalens

در مثال این پست خروجی‌های Alphalens کمک می کند تا عملکرد فاکتور تفاوت میانگین متحرک کوتاه‌مدت و بلندمدت را از جنبه‌های مختلف ارزیابی کنیم.
قبل از اجرای برنامه مطمئن شوید تمامی ماژول های نصب شده اند یا آنها را از این طریق تصب کنید:

pip install yfinance alphalens-reloaded pandas numpy matplotlib

سورس برنامه
#code by @python4finance
import yfinance as yf
import pandas as pd
import numpy as np
from alphalens.utils import get_clean_factor_and_forward_returns
from alphalens.tears import create_full_tear_sheet
import warnings
warnings.filterwarnings("ignore")

# ---------------------------------------------
# 1. دریافت داده‌های تاریخی از Yahoo Finance
# ---------------------------------------------
tickers = ["AAPL", "MSFT", "GOOG", "AMZN", "META"] # مثال: ۵ سهم بزرگ فناوری
start_date = "2020-01-01"
end_date = "2023-01-01"

# دریافت داده‌های قیمتی
data = yf.download(tickers, start=start_date, end=end_date)
prices = data["Adj Close"] # استفاده از قیمت تعدیل‌شده

# تبدیل ایندکس به DateTimeIndex و تنظیم فرکانس
prices = prices.asfreq('B').ffill() # تبدیل به فرکانس روزانه و پر کردن مقادیر خالی

# ---------------------------------------------
# 2. محاسبه فاکتور (مثال: Moving Average Crossover)
# ---------------------------------------------
def calculate_factor(prices, short_window=10, long_window=50):
"""
محاسبه فاکتور تفاوت میانگین متحرک کوتاه‌مدت و بلندمدت
"""
short_ma = prices.rolling(window=short_window).mean()
long_ma = prices.rolling(window=long_window).mean()
factor = short_ma - long_ma
return factor

factor = calculate_factor(prices)

# ---------------------------------------------
# 3. آماده‌سازی داده‌ها برای Alphalens
# ---------------------------------------------
# تبدیل فاکتور به فرمت MultiIndex (Date, Asset)
factor = factor.stack().reset_index()
factor.columns = ['date', 'asset', 'factor']
factor = factor.set_index(['date', 'asset'])['factor']

# اطمینان از هماهنگی ایندکس قیمت و فاکتور
common_index = prices.index.intersection(factor.index.get_level_values(0).unique())
prices = prices.loc[common_index]
factor = factor.loc[common_index]

# ---------------------------------------------
# 4. تحلیل عملکرد فاکتور با Alphalens
# ---------------------------------------------
# محاسبه بازده‌های آینده و پاک‌سازی داده‌ها
factor_data = get_clean_factor_and_forward_returns(
factor,
prices,
quantiles=5, # تقسیم داده به ۵ کوانتایل
periods=(1, 5, 10) # بازه‌های بازدهی (1 روز، 5 روز، 10 روز)
)

# ایجاد گزارش کامل
create_full_tear_sheet(factor_data)


#پایتون_مالی
#معاملات_الگوریتمی
#بک_تست

#Algorithmic_Trading
#Back_Test
#Alphalens

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


🆔 t.me/python4finance
🆔 ble.ir/python4finance
  • ❤ 23
More from @python4finance
  1. Oct 12, 2026بارگذاری ماژول فقط هنگام استفاده با Lazy Imports یکی از مسائلی که ما در پروژه های بزرگ با…
  2. Oct 12, 2026بررسی ویژگی های جدید پایتون 3.15 چند روز پیش یعنی 17 مهر (9 اکتبر) نسخه 3.15 پایتون منتشر…
  3. Oct 7, 2026اسلایدهای درس اقتصاد بخش عمومی در عصر اقتصاد دیجیتال و هوش مصنوعی Public Economics in the…
  4. Jul 24, 2026دانلود کتاب «AI In Finance» هوش مصنوعی دیگر فقط یک فناوری جذاب نیست بلکه امروز به یکی از م…
  5. Jul 18, 2026افزونه Ruff ، یک افزونه عالی و فوق العاده سریع برای linter و code formatter در پایتون در V…
  6. Jul 17, 2026کدام چت‌بات هوش‌مصنوعی (LLM) را انتخاب کنیم؟ یکی از سوالاتی که خیلی از عزیزان مطرح می کنند…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →