社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

年化105%,回撤25.5%掘金量化终端复现星球策略(python代码下载)

七年实现财富自由 • 4 周前 • 51 次点击  
原创内容第832篇,专注智能量化投资、个人成长与财富自由。
星球里有同学使用掘金量化终端,复现了我的一个策略(年化105%,回撤25.5%):
代码也附上了
部分代码:

def trend_score(closeperiod=25):
    """
    向量化计算趋势评分:年化收益率 × R平方
    :param close: 收盘价序列(np.arraypd.Series
    :param period: 计算窗口长度,默认25
    :return趋势评分数组,长度与输入相同,前period-1位为NaN
    """
    if len(close) < period:
        return np.full_like(closenp.nan)

    y = np.log(close)
    windows = np.lib.stride_tricks.sliding_window_view(ywindow_shape=period)
    x = np.arange(period)

    预计算固定值
    n = period
    sum_x = x.sum()
    sum_x2 = (x ** 2).sum()
    denominator = n * sum_x2 - sum_x ** 2

    滑动窗口统计量
    sum_y = windows.sum(axis=1)
    sum_xy = (windows * x).sum(axis=1)

    回归系数
    slope = (n * sum_xy - sum_x * sum_y) / denominator
    intercept = (sum_y - slope * sum_x) / n

    年化收益率
    annualized_returns = np.exp(slope * 250) - 1

    # R平方计算
    y_pred = slope[:, None] * x + intercept[:, None]
    residuals = windows - y_pred
    ss_res = np.sum(residuals ** 2axis=1)

    sum_y2 = np.sum(windows ** 2axis=1)
    ss_tot = sum_y2 - (sum_y ** 2) / n
    r_squared = - (ss_res / ss_tot)
    r_squared = np.nan_to_num(r_squarednan=0.0)  处理零方差情况

    综合评分
    score = annualized_returns * r_squared

    对齐原始序列长度
    full_score = np.full_like(ynp.nan)
    full_score = pd.Series( index=close.index,dtype='float64')
    full_score[period - 1:] = score
    return full_score


def roc(se: pd.SeriesN):
    return se / se.shift(N) - 1

def ma(Xd):
    X.ffill(inplace=True)
    y = X.rolling(window=d).mean()
    return y

定义因子计算函数
def calculate_factor(symbol,data):
    """
    计算单个标的的因子值。
    :param symbol: 标的代码
    :param end_time: 结束时间
    :return因子值
    """
这样的复现非常有意义,非常感谢。
因为咱们的回测系统都是自研的,尽管所有代码都给到大家,但偶尔会有同学担心说与成熟平台的运行结果会不会不差别?
这种复现是非常有价值的,也赠送的积分,再次感谢分享~。
代码下载地址:AI量化实验室——2025量化投资的星辰大海
OpenBB 与 ZVT
昨天的文章,咱们介绍了openbb:年化220%,最大回撤13%,这个策略如何做到的?过拟合还是超级运气?| OpenBB: 开源投资利器(python代码下载)
openbb主要提供的是海外的数据源,国内其实也有一个不错的框架就是zvt。
你可以直接pip安装,我是直接使用的源代码,安装依赖之后:
from zvt.domain import *
Stock.record_data(provider="em")
df = Stock.query_data(provider="em"index='code')
print(df)

Stock1dHfqKdata.record_data(code='000338'provider='em')
df = Stock1dHfqKdata.query_data(code='000338'provider='em')
print(df)
一行代码直接获取股票列表:
另外一行代码直接增量更新日线数据:
数据以sqlite数据库保存于本地:
支持多个数据源,也支持QMT。
还有一个数据可视化的简单的dash界面:
吾日三省吾身
2025年Q1快结束了,新年计划里的一些内容进行了优化。
结果导向做事情效率更高,就是说用中学。
如果你只说要学英语,或者要阅读,这时候列一个计划,往往是低效的,因为没有目的性。
你先想清楚,学英语要解决什么问题?是考试,还是沟通,或者旅游等等。阅读也一样,有目标感的成长计划,往往更加务实。
人到中年,减少非必要社交。
专注做好事情,思考,自己的成长。
朋友提供的更多是情绪价值。
凡事发生都是想教会你一些事情”,让你成为更好的自己。
代码和数据下载:AI量化实验室——2025量化投资的星辰大海

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

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

扩展  •  历史文章   

EarnMore(赚得更多)基于RL的投资组合管理框架:一致的股票表示,可定制股票池管理。(附论文+代码)
deap系统重构,再新增一个新的因子,年化39.1%,卡玛提升至2.76(附python代码)

aitrader_v4.6代码发布,支持duckdb|股票全量数据(python代码+数据)

年化19.66%,回撤12%的稳健策略|manus的启发:基于大模型多智能体的智能投研系统(python代码+数据)

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

年化18%-39.3%的策略集 | backtrader通过xtquant连接qmt实战

另外一个星球,专注AGI通用智能及智能体应用开发

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/180284
 
51 次点击