原创内容第947篇,专注量化投资,AGI和智能体落地、个人成长与财富自由。

看下我们的策略:

图片

后续一段时间,我们会从体系化讲量化投资的角度,来输出代码和文章:

以上两篇文章完成akshare获取日线,清洗完成后保存到csv中备用。

今天我们使用pandas来做金融时间序列分析。

昨天的代码,我们来下载真正的大类资产的ETF:

symbols = ['513100' #纳指100           ,'513500',#标普500           '510300',#沪深300,           '159915', #创业板           '518880',#黄金           '512890',# 红利低波           '159985', #豆粕           '511880',# 银华日利-货币ETF          ]for s in symbols:    print(f'获取{s}并保存到csv')    df = fetch_etf(s) # 获取纳指ETF    df.to_csv(f'../../data/{s}.csv',index=False)

图片

加载数据并绘图:import pandas as pd

import matplotlib.pyplot as pltimport numpy as np
# 设置中文字体plt.rcParams['font.sans-serif'] = ['Microsoft YaHei', 'SimHei']  # 设置支持中文的字体plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号
symbols = ['513100','513500']#,'510500','159915','510880'symbols = {'513100':'纳指100',           '513500':'标普500',           '510300':'沪深300',           '159915':'创业板',           '518880':'黄金',           #'512890':'红利低波',           #'159985':'豆粕',           '511880':'银华日利-货币ETF'          }
dfs = []for s in symbols.keys():    df = pd.read_csv(f'../../data/{s}.csv')    df['symbol'] = s    dfs.append(df)
df_all = pd.concat(dfs,axis=0)df_all

图片

全球大类资产近十年的走势,画出来一目了然,纳指和标普最好,其次是黄金。

计算年化收益:

def calculate_cagr(price_series):    """    计算复合年增长率 (CAGR)
    参数:    price_series: 价格序列 (pd.Series),索引为日期
    返回:    cagr: 复合年增长率 (小数形式)    """    # 获取第一个和最后一个价格    start_price = price_series.iloc[0]    end_price = price_series.iloc[-1]
    # 计算总天数    days = (price_series.index[-1] - price_series.index[0]).days
    # 计算年数    years = days / 365.0
    # 计算CAGR    cagr = (end_price / start_price) ** (1 / years) - 1
    return cagr
cagr = calculate_cagr(df_close)cagr

纳指年化收益18.4%,就是说你直接买入并持有,年化就是18.4%,和巴菲特的收益率差不多。

图片

计算夏普比:def calculate_sharpe_ratio(return_series, risk_free_rate=0.0, periods=252):

    """    计算年化夏普比率
    参数:    return_series: 日收益率序列 (pd.Series)    risk_free_rate: 年化无风险利率 (默认0)    periods: 年化因子 (默认252个交易日)
    返回:    sharpe_ratio: 年化夏普比率    """    # 计算平均日收益率    mean_daily_return = return_series.mean()
    # 计算日收益率标准差    std_daily_return = return_series.std()
    # 年化收益率    annualized_return = (1 + mean_daily_return) ** periods - 1
    # 年化波动率    annualized_volatility = std_daily_return * np.sqrt(periods)
    # 计算夏普比率    sharpe_ratio = (annualized_return - risk_free_rate) / annualized_volatility
    return sharpe_ratio
# 计算夏普比率(假设无风险利率为3%)sharpe = calculate_sharpe_ratio(df_close.pct_change(), risk_free_rate=0.0)sharpe

图片

最大回撤的情况:

图片

扩展  •  历史文章   

EarnMore(赚得更多)基于RL的投资组合管理框架:一致的股票表示,可定制股票池管理。(附论文+代码)

年化收益200%+的策略集 | 实时板块资金热力图 「aitrader 5.0系统代码发布」

机器学习驱动的策略开发通过流程 | 普通人阶层跃迁的可能路径?

年化30.24%,最大回撤19%,综合动量多因子评分策略再升级(python代码+数据)

三秒钟创建一个年化28%,夏普比1.25的策略(python系统已开放源代码下载)

会员专属策略可以直接下载了,多个十年年化30+%策略集|polars重构因子引擎(代码+数据下载)

6年年化收益46%,最大回撤率为16%的策略(附python代码)

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐