分享

复现一个聚宽策略,年化31%,夏普比1.22,附代码

 AI量化实验室 2025-05-20 发布于北京
原创内容第892篇,专注智能量化投资、个人成长与财富自由。
复现一个聚宽策略,年化25.69%,最大回撤28.49%。
import numpy as npimport pandas as pd

#初始化函数 def initialize(context):    # 设定基准    set_benchmark('000300.XSHG')    # 用真实价格交易    set_option('use_real_price'True)    # 打开防未来函数    set_option("avoid_future_data"True)   set_slippage(FixedSlippage(0.000))    # 设置交易成本    set_order_cost(OrderCost(open_tax=0, close_tax=0, open_commission=0.0002, close_commission=0.0002, close_today_commission=0, min_commission=5), type='fund')    # 过滤一定级别的日志    log.set_level('system''error')    # 参数    g.etf_pool = [        '518880.XSHG'#黄金ETF(大宗商品)        '513100.XSHG'#纳指100(海外资产)        '159915.XSHE'#创业板100(成长股,科技股,中小盘)        '510180.XSHG'#上证180(价值股,蓝筹股,中大盘)    ]    g.m_days = 25 #动量参考天数    run_daily(trade, '9:30'#每天运行确保即时捕捉动量变化
def get_rank(etf_pool):    score_list = []    for etf in etf_pool:        df = attribute_history(etf, g.m_days, '1d', ['close'])        y = df['log'] = np.log(df.close)        x = df['num'] = np.arange(df.log.size)        slope, intercept = np.polyfit(x, y, 1)        annualized_returns = math.pow(math.exp(slope), 250) - 1        r_squared = 1 - (sum((y - (slope * x + intercept))**2) / ((len(y) - 1) * np.var(y, ddof=1)))        score = annualized_returns * r_squared        score_list.append(score)    df = pd.DataFrame(index=etf_pool, data={'score':score_list})    df = df.sort_values(by='score', ascending=False)    rank_list = list(df.index)        print(df)         record(黄金 = round(df.loc['518880.XSHG'], 2))    record(纳指 = round(df.loc['513100.XSHG'], 2))    record(成长 = round(df.loc['159915.XSHE'], 2))    record(价值 = round(df.loc['510180.XSHG'], 2))    return rank_list
# 交易def trade(context):    # 获取动量最高的一只ETF    target_num = 1        target_list = get_rank(g.etf_pool)[:target_num]    # 卖出        hold_list = list(context.portfolio.positions)    for etf in hold_list:        if etf not in target_list:            order_target_value(etf, 0)            print('卖出' + str(etf))        else:            print('继续持有' + str(etf))    # 买入    hold_list = list(context.portfolio.positions)    if len(hold_list) < target_num:        value = context.portfolio.available_cash / (target_num - len(hold_list))        for etf in target_list:            if context.portfolio.positions[etf].total_amount == 0:                order_target_value(etf, value)                print('买入' + str(etf))

在咱们平台上低代码复现:
代码+数据下载:AI量化实验室——2025量化投资的星辰大海
策略代码已经上传到星球了:
今天咱们开始获取股票数据:一共5000多支。
相比etf和可转债,股票数据是最多的。etf大约1000多支,而且很多是2019年之后成立的。而且如果按指数排重,比如像沪深300指数相关的ETF有几十支,近指数合并的话,也就是几百个指数。
吾日三省吾身

我们越来越爱回忆了
是不是因为不敢期待未来呢
你说世界好像天天在倾塌着
只能弯腰低头把梦越做越小了。

不确定的世界,不确定的未来。
人生就是这样,你永远不知道,下一秒会发生什么?
也许曲终人散,都是尘归尘,土归土。
但至少我们努力过,折腾过不是吗?

但是,不要怕,总有办法不是吗?

回看五年,不确定的时期,不确定的职业危机。
ABCZ计划没有一个成型。孩子还小。

五年过去了,相比之。 ABZ基本成型,C计划在徐徐展开。

往前再看五年,到2030年。
ABZ更加成熟,C计划成型,孩子们长大了。

不管怎么样,未来总会来。
如此而已。
但好的未来,需要你好好的布局,然后一点点地努力。
去积累,去积蓄力量。

AI量化实验室 星球,已经运行三年多,1700+会员。

aitrader代码,因子表达式引擎、遗传算法(Deap)因子挖掘引等,支持vnpy,qlib,backtrader和bt引擎,内置多个年化30%+的策略,每周五迭代一次,代码和数据在星球全部开源。

扩展  ·  历史文章   

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

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

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

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

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

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

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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约