首页  

量化python库     所属分类 quant 浏览量 13
量化python库 

pandas - 数据分析核心
numpy - 数值计算基础
TA-Lib - 技术指标
import talib
# 计算MACD
macd, signal, hist = talib.MACD(data['Close'])

ta - TA-Lib的纯Python替代
import ta
# 技术指标计算
df['rsi'] = ta.momentum.RSIIndicator(df['close']).rsi()
df['bb_h'] = ta.volatility.BollingerBands(df['close']).bollinger_hband()


VectorBT - 向量化回测
速度快,支持并行计算
import vectorbt as vbt
# 简单策略回测
portfolio = vbt.Portfolio.from_holding(data['Close'])
portfolio.total_return()

Backtesting.py - 简洁回测框架
from backtesting import Backtest, Strategy
class MyStrategy(Strategy):
    def init(self):
        self.sma = self.I(talib.SMA, self.data.Close, 20)
    
    def next(self):
        if self.data.Close[-1] > self.sma[-1]:
            self.buy()


mplfinance - 专业K线图
import mplfinance as mpf
mpf.plot(data, type='candle', volume=True)

pyfolio - 绩效分析
import pyfolio as pf
# 生成详细报告
pf.create_returns_tear_sheet(returns)

Zipline - 专业级回测
from zipline import run_algorithm
from zipline.api import order, record, symbol

def initialize(context):
    context.asset = symbol('AAPL')

def handle_data(context, data):
    order(context.asset, 10)
    record(AAPL=data.current(context.asset, 'price'))


backtrader - 功能全面
import backtrader as bt

class MyStrategy(bt.Strategy):
    params = (('maperiod', 20),)
    
    def __init__(self):
        self.sma = bt.indicators.SMA(self.data, period=self.params.maperiod)
    
    def next(self):
        if self.data.close[0] > self.sma[0]:
            self.buy()



quantstats - 绩效报告
import quantstats as qs

# 生成专业报告
qs.reports.html(returns, benchmark='SPY',
                output='quantstats-tearsheet.html')


qlib - 微软AI量化平台
from qlib.contrib.data.handler import Alpha158

# 专业量化平台
handler = Alpha158(instruments='csi300', 
                   start_time='2010-01-01')



Alphalens - 因子分析
import alphalens as al

# 因子绩效分析
factor_data = al.utils.get_clean_factor_and_forward_returns(
    factor, prices, quantiles=5
)
al.tears.create_full_tear_sheet(factor_data)


plotly - 交互式图表
import plotly.graph_objects as go

# 交互式K线图
fig = go.Figure(data=[go.Candlestick(x=df.index,
                open=df['Open'], high=df['High'],
                low=df['Low'], close=df['Close'])])
fig.show()



dash - Web仪表板
import dash
from dash import dcc, html
import plotly.graph_objs as go

# 构建量化仪表板
app = dash.Dash(__name__)
app.layout = html.Div([
    dcc.Graph(id='live-graph'),
    dcc.Interval(id='graph-update', interval=1000)
])



empyrical - 绩效指标
import empyrical as ep

# 计算各种绩效指标
sharpe = ep.sharpe_ratio(returns)
max_drawdown = ep.max_drawdown(returns)
calmar = ep.calmar_ratio(returns)

ARCH - 波动率建模
from arch import arch_model
# GARCH模型
am = arch_model(returns, vol='GARCH', p=1, q=1)
res = am.fit(update_freq=5)


statsmodels - 统计模型
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.arima.model import ARIMA

# 单位根检验
result = adfuller(returns)
# ARIMA模型
model = ARIMA(returns, order=(1,1,1))


pandas-ta - 扩展技术指标

import pandas_ta as ta

# 链式调用
df.ta.rsi(length=14, append=True)
df.ta.macd(fast=12, slow=26, signal=9, append=True)

websocket-client - 实时数据

import websocket

def on_message(ws, message):
    # 处理实时数据
    print(message)

ws = websocket.WebSocketApp(
    "wss://stream.binance.com:9443/ws/btcusdt@kline_1m",
                          on_message=on_message)

机器学习与AI

scikit-learn - 基础机器学习
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import StandardScaler

# 特征工程
scaler = StandardScaler()
X_scaled = scaler.fit_transform(features)

# 分类预测
clf = RandomForestClassifier()
clf.fit(X_train, y_train)

lightgbm/xgboost - 梯度提升树
import lightgbm as lgb

# 训练模型
params = {'objective': 'binary', 'metric': 'auc'}
model = lgb.train(params, train_data, valid_sets=[val_data])

pytorch-forecasting - 深度学习预测
from pytorch_forecasting import TemporalFusionTransformer

# 时间序列预测
tft = TemporalFusionTransformer.from_dataset(
    training, learning_rate=0.03
)



finrl - 强化学习量化
from finrl import config
from finrl.finrl_meta.env_stock_trading import StockTradingEnv

# 强化学习环境
env = StockTradingEnv(df=df, **env_kwargs)


AI量化组合
pytorch/tensorflow
pytorch-forecasting
scikit-learn
xgboost/lightgbm

上一篇     下一篇
量化投资十八问

quantstats 简介及使用例子

QLib核心概念和术语

Flask request 对象用法