遗传算法整合talib技术分析算子做因子挖掘,比如ADX, 阿隆指标等

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

七年实现财富自由

七年,经过十万小时刻意练习,足矣在任何领域成为专家。 七年,成为自己的财富管理专家。 七年,实现财富自由。

1512篇原创内容

公众号

星球本周重点计划如下:

遗传算法整合talib技术分析算子,比如CCI, 阿隆指标等。

通过大模型生成遗传算法的初代因子。

01

技术指标与遗传算法因子挖掘

传统技术分析有图表分析,模式识别和技术指标

图表分析主要是K线上,模式识别如“头肩顶”,“五浪“之类的。

这两者有一个缺点,就是主观性较强。

同一个模式,不同的人看,结果可能不同,这种就不好量化。

技术指标相对更加客观和可量化。

技术指标本身也是因子函数。

图片

封装talib的代码比较简单,主要就是调用相应的函数:

@calc_by_symbol
def ta_dema(X, d):
    X.ffill(inplace=True)
    y = talib.DEMA(X, d)
    return y


@calc_by_symbol
def ta_ma(X, d):
    X.ffill(inplace=True)
    y = talib.MA(X, d)
    return y


@calc_by_symbol
def ta_kama(X, d):
    X.ffill(inplace=True)
    y = talib.KAMA(X, d)
    return y


@calc_by_symbol
def ta_ema(X, d):
    X.ffill(inplace=True)
    y = talib.EMA(X, d)
    return y


@calc_by_symbol
def ta_linearreg_angle(X, d):
    X.ffill(inplace=True)
    y = talib.LINEARREG_ANGLE(X, d)
    return y


@calc_by_symbol
def ta_linearreg_slope(X, d):
    X.ffill(inplace=True)
    y = talib.LINEARREG_SLOPE(X, d)
    return y


@calc_by_symbol
def ta_linearreg_intercept(X, d):
    X.ffill(inplace=True)
    y = talib.LINEARREG_INTERCEPT(X, d)
    return y


@calc_by_symbol
def ta_midpoint(X, d):
    X.ffill(inplace=True)
    y = talib.MIDPOINT(X, d)
    return y

注意参数个数需要对齐:

比如ts_beta是双序列的,需要搁到binary_rolling.py这个文件里

@calc_by_symbol
def ts_beta(x, y, d):
    x.ffill(inplace=True)
    y.ffill(inplace=True)
    z = talib.BETA(x, y, d)
    return z

加上技术指标之后的因子挖掘结果:

图片

另外还有几个指标:

比如AROONOSC,也是两个序列参数,但这个序列是确定的(high, low),这就不能让遗传直接生成。

给遗传算法的格式,应该是无序列参数,但有一个rolling容器参数d。

比如ta_arronosc(d:int)

def add_period_ops(pset):
    from datafeed.expr_functions import expr_period_only
    for func in expr_period_only:
        pset.addPrimitive(dummy, [int], Expr, name=func)

中间需要做一个转换:

if 'ta_aroonosc' in f:
    pattern = r'ta_aroonosc\((\d+)\)'
    # 替换函数,将匹配的数字替换为high,low,数字
    replacement = r'ta_aroonosc(high,low,\1)'
    # 执行替换
    new_string = re.sub(pattern, replacement, f)

    new_features.append(new_string)

这样把表达式改写成确定的:

@calc_by_symbol
def ta_aroonosc(high, low, d):
    high.ffill(inplace=True)
    low.ffill(inplace=True)
    ret = talib.AROONOSC(high, low, d)
    return ret

运行正常:

图片

从学习量化的角度,从技术指标切入做量化策略,最直接。

因此,在专栏里,我会从CTA技术分析策略切入。

图片

如何开发一个稳定盈利的交易系统?

AI量化实验室——2024量化投资的星辰大海

02

吾日三省吾身

今天听万维钢的访谈,他给自己的身份定位是科学作家。

区别于科普作家,他是连接大众与前沿科学,当然主要是社会科学的前沿成果。

万维钢的成长经历很有意思。

他本身是一位物理学者,生活在美国。

早年就开始写文,早在2008年的博客时代。

那时候的写文,只能说是纯粹的爱好。web2.0的年代,ugc是赚不到钱的。

内容是没有办法变现。

直到逻辑思维也就是后来的《得到》平台崛起,赶上平台的红利,行业的红利,成为头部的知识大V。

科学作家,思想者。

我相信,比他原本规划的做一名物理学家,更符合他的诉求。

给我们什么启发呢?

人生规划肯定是会变的。

写文原本只是他的爱好,他的学历,主业本身是物理学家。

但科研是需要天赋,要做冷板凳的,能做出真正的成果的人,凤毛麟角。

做一名科学作者,知识网红。

精神自由外加财富自由,做着自己的喜欢。

我们能学习到什么呢?

阅读和写作,不需要创新、发明、特别的天赋。——知识的搬运工。

素材,资源无穷多。

并不是说,人人都能成为万维钢。

这需要机遇、运气、勤奋、积累。

但人人都可以且应该开始写作,阅读,深度思考,产出作品。

——用万维纲给《以自我为中心的写作者》作的序里的一段作结果:

研究者是现代社会最酷的身份之一,因为你要探索未知,你要生产知识。当人们发生争论的时候,他们会重点参考你的结论。你的名字可能会跟一个新发现一起被人记住。这不比在某个小单位拥有一点小权力、吃过很多美食、去过很多地方旅游高级多了吗?

新人优惠券:

图片

提前续费享5折优惠:

图片

图片

量化投资276

知识星球989

以交易为生67

因子挖掘150

deap6

量化投资 · 目录

上一篇如何开发一个稳定盈利的交易系统?

  • 29
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI量化投资实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值