当前位置: 首页 > news >正文

aitrader兼容talib,布林带的简单策略,创业板十年年年化15.5%,附代码

原创内容第908篇,专注智能量化投资、个人成长与财富自由。

年轻人,你的职责是平整土地,而非焦虑时光。你做三四月的事,在八九月自有答案。

aitrader核心代码,扩展支持talib的指标:布林带,macd等,这样大家就可以任意扩展talib库里的技术指标了。

图片

图片

    name = "创业板-布林带"symbols = [ '159915.SZ']start_date = "20100101"end_date = "20250606"benchmark = "510300.SH"select = "SelectAll"select_buy = ['ta_bbands_up(close,20,2)>0']buy_at_least_count = 1select_sell = [ "ta_bbands_down(close,20,2)<0"]sell_at_least_count = 1order_by_topK = 1order_by_dropN = 0order_by_DESC = trueweight = "WeighEqually"period = "RunDaily"
    [weight_fixed]
    

    并不复杂,只不过由于我们的数据是polars的格式,那么需要先转为dataframe,使用talib计算,而后再转成polars的df即可。

    """Technical Analysis Operators"""import talibimport polars as plimport pandas as pdfrom .utility import DataProxydef to_pd_series(feature: DataProxy) -> pd.Series:    """Convert to pandas.Series data structure"""    return feature.df.to_pandas().set_index(["date", "symbol"])["data"]def to_pl_dataframe(series: pd.Series) -> pl.DataFrame:    """Convert to polars.DataFrame data structure"""    return pl.from_pandas(series.reset_index().rename(columns={0: "data"}))def ta_rsi(close: DataProxy, window: int) -> DataProxy:    """Calculate RSI indicator by contract"""    close_: pd.Series = to_pd_series(close)    result: pd.Series = talib.RSI(close_, timeperiod=window)   # type: ignore    df: pl.DataFrame = to_pl_dataframe(result)    return DataProxy(df)def ta_atr(high: DataProxy, low: DataProxy, close: DataProxy, window: int) -> DataProxy:    """Calculate ATR indicator by contract"""    high_: pd.Series = to_pd_series(high)    low_: pd.Series = to_pd_series(low)    close_: pd.Series = to_pd_series(close)    result: pd.Series = talib.ATR(high_, low_, close_, timeperiod=window)   # type: ignore    df: pl.DataFrame = to_pl_dataframe(result)    return DataProxy(df)        
    def ta_bbands_up(close: DataProxy, window: int = 20, nbdev: float = 2) -> DataProxy:    """Calculate Bollinger Bands indicator"""    close_: pd.Series = to_pd_series(close)    # 计算布林带(返回三个序列:upper, middle, lower)    upper, middle, lower = talib.BBANDS(        close_,        timeperiod=window,        nbdevup=nbdev,  # 上轨标准差倍数        nbdevdn=nbdev,  # 下轨标准差倍数        matype=0  # 0=SMA(简单移动平均)    )    # 创建包含三列的DataFrame    result_df = to_pl_dataframe(upper)    return DataProxy(result_df)def ta_bbands_down(close: DataProxy, window: int = 20, nbdev: float = 2) -> DataProxy:    """Calculate Bollinger Bands indicator"""    close_: pd.Series = to_pd_series(close)    # 计算布林带(返回三个序列:upper, middle, lower)    upper, middle, lower = talib.BBANDS(        close_,        timeperiod=window,        nbdevup=nbdev,  # 上轨标准差倍数        nbdevdn=nbdev,  # 下轨标准差倍数        matype=0  # 0=SMA(简单移动平均)    )    # 创建包含三列的DataFrame    result_df = to_pl_dataframe(lower)    return DataProxy(result_df)

    代码及策略下载:AI量化实验室——2025量化投资的星辰大海

    策略公开了:年化494%,夏普比率5.86,最大回撤7% | 大模型查询akshare,附代码

    吾日三省吾身

    01

    之前咱们讨论过“活在当下“还是”长期主义“之间如何平衡。

    其实都要有。

    我自己总结的一句话:面向未来,构建系统,然后活在当下。

    记得7-8年前,在一个大学校园。闲来无事,听李笑来的《财富自由之路》,由于时间很多,反复听。

    突然被一个点打动,现在讲起来,似乎无比简单。——就是投资这件事,与本金体量无关,你不必要等到本金超过50万,还是100万才可以投资,投资能力的体现是收益率。你投入1万块,收益率是10%,还是投资100万,仍然看你的收益率来衡量能力。

    很多同学可以觉得,这不是常识嘛?

    其实,道理都懂,但我说的触动,是指认知改变,行动就来了。

    以前,总觉得本金太小的话,比如10万块,就算年化10-15%,一年也就1-1.5万,没啥意义啊,为啥要花这个心思,还有风险。

    但当你把收益率=投资能力的时候,这个意义就不一样了。

    就是说,做投资不只是所谓的,眼前的收益,而是这种能力的提升,而且你现在就可以,且应该去做。

    想明白这一点,就正式开始自己在投资上的摸爬滚打,从债券,混合债,可转债,股票,指数等,慢慢建立起自己的投资认知体系和投资系统。

    所以,到底是”知易行难,还是知难行易“,都不容易。但知道了就是”醍醐灌顶“,然后就看执行力了。

    另外一个点,也来自李笑来,普通人应该且必须开始写作。所思所想,写出来,对自己,对别人都会有价值。

    然后就有了这个公众号,然后加上亚当斯的《人生样样稀松照样赢》里的”目标到系统“,以及《持续行动》里的”N阶行动计划“。我这个公众号做到日更900多天了,我相信还会持续下去,已经变成了一个习惯。

    春节,休长假,这件事情都会抽时间去做,就是一种习惯。

    1000天,做一件事,足够建立起壁垒和竞争优势。

    这1000天的写作了,有了”AI量化实验室“的星球,网站(ailabx.com),还有AGI星球,1700+会员,感谢所有同学的认可与支持!

    02

    “可以表达愤怒,而不是愤怒地表达”。

    愤怒的表达,不管不顾,那就被情绪控制,只是宣泄,而后果可能不达预期。

    很多事情,情绪一过,或者事情一过,其实没有多大的事情。

    而情绪之上,以及在情绪上所做的事情,把事情及结果给放大了。

    一个事情不对,需要修正,当然需要“表达”,让对方知道,我们的目的是达成结果。对方如果无所谓,或者就是不修正,那你愤怒地表达也没有用,甚至适得其反,对方原本无所谓,现在反而抬上杠了。

    正确地表达想法,“进可攻,退可守”。

    谈判的逻辑,关键还在于你的底牌。

    最大的底牌就是你的实力。

    实力允许,你一个眼神,就可以解决一件事情。

    代码和数据下载:AI量化实验室——2025量化投资的星辰大海

    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代码)

    http://www.xdnf.cn/news/885961.html

    相关文章:

  • 成都芯谷金融中心·文化科技产业园:构建产业新城的实践与探索
  • Python打卡训练营day45——2025.06.05
  • 11 - ArcGIS For JavaScript -- 高程分析
  • Redis 缓存策略:借助缓存优化数据库性能并保障数据一致性
  • Liunx进程替换
  • 【Linux篇】0基础之学习操作系统进程
  • 2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家
  • Spring中@Primary注解的作用与使用
  • Dockerfile实践java项目
  • 哈希算法实战全景:安全加密到分布式系统的“核心引擎”
  • 25_06_05Ubuntu系统root密码破解
  • Vite模块联邦(vite-plugin-federation)实现去中心化微前端后台管理系统架构
  • ROS:pcd点云转为路径规划的pgm文件和yaml文件
  • PHP的namespace
  • 第十三节:第五部分:集合框架:集合嵌套
  • ubuntu24.04 使用apt指令只下载不安装软件
  • BENTLY模块特价型号3300/16-14-01-03-00-00-01找小游、主要应用领域
  • ArcGIS Pro 3.4 二次开发 - 公共设施网络
  • windows server2019 不成功的部署docker经历
  • python项目如何创建docker环境
  • 无 sudo 权限下 Conda 安装 GCC 全攻略:虚拟环境适配、版本冲突解决与实战指南
  • 负载均衡将https请求转发后端http服务报错:The plain HTTP request was sent to HTTPS port
  • RAG:大模型微调的革命性增强——检索增强生成技术深度解析
  • Android15 launcher3
  • proteus8安装教程
  • PLM软件:如何打通产品研发全生命周期的“任督二脉”?
  • N2语法 強調、限定
  • C获取unix操作系统的信息
  • Cursor 1.0 版本 GitHub MCP 全面指南:从安装到工作流增强
  • 代码训练LeetCode(24)数组乘积