社区所有版块导航
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

策略的年化又创新高,近两年达290%,在qmt及掘金平台均有复现代码,交叉验证没有未来函数(python策略代码下载)

七年实现财富自由 • 昨天 • 11 次点击  
原创内容第859篇,专注智能量化投资、个人成长与财富自由。

vnpy新版的alpha模块挺好的

咱们之前也是参考qlib的因子表达式,设计了自己的因子库。

不过我们是基于pandas来做的,vnpy这一版是根据polors,rust的库,性能更好。而且的alpha158复现了。同时拆出了最经典的线性,梯度提升树以及深度模型。值得分析一下。

核心代码我实现了一下,并用直接读我本地的csv:

import polars as plfrom datetime import datetimefrom pathlib import Pathfrom alpha.dataset.utility import DataProxyfrom assets import loggerfrom loguru import loggerdef calculate_by_expression(df: pl.DataFrame, expression: str) -> pl.DataFrame:    from alpha.dataset.ts_function import (  # noqa        ts_delay,        ts_min, ts_max,        ts_argmax, ts_argmin,        ts_rank, ts_sum,        ts_mean, ts_std,        ts_slope, ts_quantile,        ts_rsquare, ts_resi,        ts_corr,        ts_less, ts_greater,        ts_log, ts_abs    )    # Extract feature objects to local space    d: dict = locals()    for column in df.columns:        # Filter index columns        if column in {"date""symbol"}:            continue        # Cache feature df        column_df = df[["date""symbol", column]]        d[column] = DataProxy(column_df)    # Use eval to execute calculation    other: DataProxy = eval(expression, {}, d)    # Return result DataFrame    return other.dfdef load_df_from_csvs(folder_path: Path, symbols: list[str], start: datetime | str,                      end: datetime | str):    dfs: list = []    for s in symbols:        # Check if file exists        file_path: Path = folder_path.joinpath(f"{s}.csv")        if not file_path.exists():            logger.error(f"File {file_path} does not exist")            continue        # Open file        df: pl.DataFrame = pl.read_csv(file_path,dtypes={'date': pl.Utf8})        print(df)        # Filter by date range        df = df.filter((pl.col("date") >= start) & (pl.col("date") <= end))        # Specify data types        df = df.with_columns(            pl.col("open").cast(pl.Float32),            pl.col("high").cast(pl.Float32),            pl.col("low").cast(pl.Float32),            pl.col("close").cast(pl.Float32),            pl.col("volume").cast(pl.Float32),        )        # Check for empty data        if


    
 df.is_empty():            continue        dfs.append(df)    # Concatenate results    result_df: pl.DataFrame = pl.concat(dfs)    return result_dffrom config import DATA_DIR_QUOTESdf = load_df_from_csvs(DATA_DIR_QUOTES, symbols=['510300.SH','159915.SZ'],start='20100101',end='20250417')print(df)result = calculate_by_expression(df, 'close/ts_delay(close,5)-1')#df = result.to_pandas()#df.sort_values(by='date', ascending=True, inplace=True)print(result)

计算还是比较优雅的,

def ts_delay(feature: DataProxy, window: int) -> DataProxy:    """Get the value from a fixed time in the past"""    df: pl.DataFrame = feature.df.select(        pl.col("date"),        pl.col("symbol"),        pl.col("data").shift(window).over("symbol")    )    return DataProxy(df)

over比groupby更优雅,类似大数据里的patition。

网站上策略计算已经更新:

有同学的策略达到290%了。

http://ailabx.com/mall可查看。

市场这么震荡着,大类资产配置,持续全仓进行,低买高卖。
跌时赚股,涨时赚钱。——这才是最稳妥的。
“低估分散不深研”,对于普通人其实真的是有道理的。
但很多人总指望以小博大,违背的投资之道,也违背资本市场之本意。
当然我这里主要说的是主观交易,如果是量化投资另当别论。
量化投资,用机器和算法执行规则,就算换取流动性,那也是有价值的,本身也是一种被动收入。
但盯盘炒股的普通人,确实理解不了。——为啥不做量化呢?
“AI量化实验室“星球就是这么一个初心。
帮忙普通人,真正上手量化投资,投资应该简单且愉快的事情。
在做量化的人眼中,压根不需要”全职“。
我们提供工具,工具即服务。也提供代码,有研发能力的同学可以拿代码继续修改。
vnpy最新的代码,类似于插件化的架构,代码可读性还是挺好的,而且性能不错,比backtrader快不少。
核心工程代码量挺小,其余模块都是按需导入。
代码和数据下载:AI量化实验室——2025量化投资的星辰大海

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

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

扩展  •  历史文章   

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

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

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

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

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

stock-pandas,一个易用的talib的替代开源库。

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