Python4Finance
9.36K subscribers
567 photos
41 videos
152 files
758 links
کانال Python4Finance
آموزش پایتون در اقتصاد و مدیریت مالی
هر روز چند نکته را در خصوص پایتون برای مالی بیاموزیم
***
ارتباط با من
b2n.ir/y72935
***
آپارت:
aparat.com/Python4Finance
کانال چالش ها:
t.me/python4finance_challenge
Download Telegram
فایل جلسه هفتم ویدئوی وبینار مرور کتاب «يادگيري معاملات الگوريتمي - Learn Algorithmic Trading»

در جلسه هفتم در خصوص بک تست (BackTest) صحبت می کنیم. در واقع بک تست مهمترین مرحله در ارزیابی مدل است و صرفا مدلهایی که در بک تست امتیاز خوبی را به دست بیاورند وارد Paper Test می شوند.
در این فایل ویدئویی فصل نهم کتاب تقدیم می شود.
نکته: با اتمام این فصل، مباحث اصلی معاملات الگوریتمی ارائه شده است.

📌7️⃣ جلسه هفتم (بک تست)

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


پایتون برای مالی در تلگرام
https://t.me/joinchat/AAAAAFGMkouqbsb86Vfzug
6
@python4finance_BackTest.pdf
186.5 KB
اسلایدهای جلسه هفتم وبینار مرور کتاب «يادگيري معاملات الگوريتمي با پايتون- Learn Algorithmic Trading»

در این جلسه، ادامه مباحث را با موضوع بک تست در معاملات الگوریتمی ادامه خواهیم داد.

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

پایتون برای مالی در تلگرام
https://t.me/joinchat/AAAAAFGMkouqbsb86Vfzug
9
آشنایی با ماژول Alphalens ، یک ماژول بسیار خوب برای بک تست در معاملات الگوریتمی

همیشه بک تست یکی از دغدغه های اصلی مدلسازی مالی و معاملات الگورتیمی است. (اگر با مفهوم #بک_تست آشنایی ندارید این ویدئو از سلسله جلسات معاملات الگوریتمی را مشاهده نمایید.) Alphalens یک کتابخانه پایتون است که برای تحلیل عملکرد فاکتورهای مالی در معاملات الگوریتمی طراحی شده است. این کتابخانه به شما کمک می‌کند تا بفهمید آیا یک فاکتور (مثلاً یک اندیکاتور تکنیکال یا یک معیار بنیادی) می‌تواند بازدهی آینده سهام را پیش‌بینی کند یا خیر.

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

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

#Algorithmic_Trading
#Back_Test
#Alphalens

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


🆔 t.me/python4finance
🆔 ble.ir/python4finance
20
یک مثال ساده برای آشنایی با ماژول 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