5年21倍,量化里面超牛的均线:让Python带你玩转KAMA自适应指标!

Python量化实战:如何用KAMA指标识别市场趋势(附完整代码) 本文详细介绍了如何利用Python实现考夫曼自适应移动平均线(KAMA)指标来识别市场趋势,并提供了完整的代码示例。KAMA通过动态调整灵敏度,有效减少虚假信号并快速响应市场突破,适用于高频交易、日内交易等多种场景。文章还涵盖了参数优化策略和加密货币市场的特殊应用,帮助开发者构建可靠的量化交易系统。 阅读详情
👇我的小册 54章教程:(小白零基础用Python量化股票分析小册) ,原价299,限时特价2杯咖啡,满100人涨10元。

大家好,我是菜哥

做量化交易的朋友都知道,均线是个好东西,我自己刚开始学量化的时候第一个学的指标就是MA/EMA。但是有很纠结,比如周期设短了,K线稍微动一下就给你发信号,结果十次有八次是假突破;周期设长了,等你反应过来,黄花菜都凉了,最肥的那段行情早跑没影了。

那么有没有一种均线,能在行情火爆的时候反应灵敏,在震荡磨人的时候又能淡定如水?

今天给大家安利一个指标:这个"有眼力见"的指标——KAMA自适应移动平均线。

01.啥是KAMA

KAMA的全称是Kaufman's Adaptive Moving Average,中文叫考夫曼自适应移动平均线,是美国量化大师Perry Kaufman在上世纪90年代提出的。

是不是听起来特别牛,它的核心思想特别朴素:市场趋势明显的时候,我就灵敏点;市场来回拉锯的时候,我就钝一点。

听起来是不是很像个聪明人?行情好的时候冲在前面,行情乱的时候躲在后面观望。

KAMA怎么做到这一点的呢?关键在于一个叫"效率比率"(ER)的东西。

效率比率说白了就是:价格真正走了多远,相比它上上下下折腾的总路程,占了多大比例。

下面我用白话说:

假如10天前价格是100,现在是110,涨了10块,这是"净位移"。但这10天里价格可能今天涨2块、明天跌1块、后天又涨3块,折腾来折腾去加起来走了30块,这是"总波动"。那效率比率ER = 10/30 = 0.33。

  • 如果ER接近1,说明价格基本是直线上涨或下跌,趋势强劲

  • 如果ER接近0,说明价格来回拉锯,横盘震荡

咱们用Python算一下这个ER:

有了ER之后,KAMA会根据它来动态调整自己的"敏感度"。ER大的时候跑得快,ER小的时候走得慢,这就是"自适应"的精髓。

02.手把手教你用Python实现KAMA


理论说完了,咱们动手写代码。整个过程分三步:下载数据、计算KAMA、生成交易信号。

第一步:准备数据

我们用yfinance库下载苹果公司(AAPL)2020到2024年的股价数据:

这段代码跑完,你就拿到了苹果股票5年的开盘价、收盘价、成交量等数据。

第二步:计算KAMA

KAMA的计算稍微有点绕,但拆开来看其实不难。核心公式是:

KAMA[今天] = KAMA[昨天] + SC × (价格[今天] - KAMA[昨天])

这里的SC是"平滑常数",它由ER和快慢周期共同决定。ER越大,SC越大,KAMA变化越快;ER越小,SC越小,KAMA变化越慢。

代码里的fast=2和slow=30分别代表快速和慢速EMA的周期,你可以理解为KAMA在这两个极端之间灵活切换。

第三步:生成交易信号

策略逻辑很简单:价格上穿KAMA就买入,下穿就卖出。

跑完这段代码,你就能看到5年里一共产生了多少次买入和卖出信号。

03.实战回测:5年21倍的收益是怎么来的


光有信号还不够,咱们得模拟真金白银地买卖,看看最后能赚多少钱。光说不练假把式!前面举例用的苹果的股价,下面我们用特斯拉然后换成AK库来获取数据!

好,假设你有1万美元的本金,每次信号来了就全仓操作(实际交易千万别这么干,这里只是为了演示):

我们抓住取特斯拉的5年的数据来看看效果:

回测代码有200多行,我就不打开了,不然篇幅太长了,简单说就是通过ak下载美股的特斯拉的数据,接着用python写kama指标的,然后去跑这个下载的5年数据进行交易,看看买入和卖出的点位,最后进行打印显示结果并可视化展示。

我们看一下结果:

图上有3根曲线:

深蓝是kama策略的资金曲线

绿色是买入就不动的

红色虚线是初始资金

下面是回测的数据:

回测周期: 2020-01-02 至 2025-12-31

初始资金: $10,000.00

最终资产: $225,211.52

总收益率: 2152.12%

年化收益率: 68.11%

最大回撤: -36.37%

交易次数: 222次

胜率: 27.93%

简单说一下:

买入并不动,大概收益率: 1467.84%(特斯拉还是很猛的)

策略是21.5倍,大概赚超额收益: 684.27%

04.写在最后


KAMA的魅力在于它的"眼力"——知道什么时候该冲,什么时候该稳。

这种自适应的思想在量化交易中非常重要。市场不是一成不变的,一套参数打天下的时代早就过去了。好的策略应该像KAMA一样,能根据市场环境自我调整。

当然,单纯靠一个指标就想稳赚不赔是不现实的。量化路漫漫,我们下一篇再聊!

如果你对量化交易感兴趣,可以看一下我们的入门小册,考虑清楚了,合适了再下手哈!买了之后有我们专门的新手量化交流群可以讨论。

图片

KAMA-库夫曼自适应移动均线 KAMA隶属于MA大类,基本思想及用法跟SMA(Simple Moving Average)一致,都使用CrossOver(上穿,下穿)来生成交易信号。 阅读详情

相关推荐

1.5 重叠因子:考夫曼自适应移动平均线(Kaufman Adaptive Moving Average, KAMA)概念与Python实战

考夫曼自适应移动平均线(Kaufman Adaptive Moving Average, KAMA)是由Perry Kaufman开发的一种自适应技术指标。它的独特之处在于能够根据市场波动性自动调整移动平均的敏感度,在趋势市场中减少滞后,在震荡市场中增加平滑度。这种自适应特性使其比传统移动平均线具有更好的市场适应性。

Kewin的博客 2506

KAMA量化指标计算公式

KAMA是考夫曼自适应移动平均线,全称为Kaufman Adaptive Moving Average。是由Perry J. Kaufman开发的一种技术分析工具,用于平滑股价走势并提供趋势信号。

weixin_60940255的博客 2319

一个金融时间序列,python写考夫曼指标计算过程,不要用scipy库,直接写代码,不要废话...

首先,我们需要了解考夫曼指标是什么。考夫曼指标(Kaufman Adaptive Moving Average,简称KAMA)是一种自适应移动平均线,用于衡量股票价格的波动情况。它根据市场的波动幅度来调整移动平均线的平滑系数,使得移动平均线能够更加灵敏地反映市场的波动。 下面是计算考夫曼指标的 Python 代码(不使用 scipy 库): ```python import numpy as np...

weixin_42593549的博客 874

tablewidget 行数自适应_程序化交易系统之布林线算法遇上“考夫曼自适应均线”!...

牛角问答,股票期货专业投机者。前言在程序化交易或者技术分析领域,大部分人都低滞后性的技术比较热衷,因为低滞后性可以先人一步得到交易系统的开仓信号。很不幸的是。股票期货市场上的趋势类技术指标,绝大多数都难逃指标值“滞后”的魔掌,就拿均线来说,滞后性最强。当均线拐头时,价格已经涨了不少,一般都抓不到行情起始阶段。甚至在行情震荡区间,金叉后立刻掉头下跌!均线完全跟不上行情反转的节奏,不得不承认这就是事实...

weixin_39791653的博客 1954

自适应交易利器:KAMA指标在Python中的高效实现与实战解析

本文深入解析考夫曼自适应移动平均线(KAMA)在Python中的高效实现与实战应用。通过三种不同层级的Python实现方案(基础版、NumPy向量化版和Pandas生产级版),帮助开发者掌握这一自适应交易利器的核心技术。文章还分享了KAMA参数优化、组合策略及常见陷阱的实战经验,为量化交易提供实用指导。

weixin_42613501的博客 240

量化交易必备:HMA、KAMA、VWAP偏离度、Aroon四大指标详解与Python实现

在量化交易与技术分析中,均线类指标始终是判断趋势方向和市场成本的核心工具。然而传统均线存在滞后性,固定参数在震荡与趋势切换时难以兼顾,价格偏离真实成本的程度也常被忽视。为此,赫尔移动平均线(HMA)通过加权移动平均的组合有效抵消滞后,考夫曼自适应均线(KAMA)则依据价格效率系数自动调节平滑速度,而VWAP偏离度结合ATR可量化价格相对成交成本中枢的远近,Aroon指标从时间维度揭示趋势的新鲜度。四个指标共同构建了从方向识别、趋势过滤到入场时机确认的完整分析链路。本文给出基于pandas和numpy的Pyt

weixin_29973493的博客 112

从入门到精通:超详细比特币KAMA自适应交易代码实战

亲爱的粉丝们今天分享一套我们自研的比特币智能交易策略。这套方法结合了动态均线和波动带追踪,总收益超 200%!文章包含完整Python代码教学,从数据获取到参数调优手把手教你,零基础也能快速上手。

weixin_70955880的博客 1304

Python量化交易学习——Part3:Talib金融库常用技术指标1

Talib的中文翻译为技术分析库,是一种以python为基础的广泛用于量化交易的分析函数库。从本节开始,我们针对常用的函数进行使用讲解。

柴犬的博客 2141

量化实战:智能均线+波动警报,TSLA等热门股收益回测完胜“死拿不动”

这套"智能均线+波动警报"交易系统,策略逻辑清晰,代码可复制,适合A股、美股多市场,实测TSLA收益5394%,比死拿多赚3倍。现在手把手用Python代码三步实现:抓趋势、控风险、稳赚钱!今天分享给大家一起完善。

weixin_70955880的博客 1961

Ta-Lib源码解析(一):交叉指标(Overlap Studies) #(附Python重构代码)

TA_Lib源码解析1.(均线指标)Overlap Studies1.1 简单移动平均SMA(简单移动平均)MAVP (可变周期移动平均)TRIMA(三角移动平均)1.2 指数移动平均EMA(指数移动平均)DEMA(双指数移动平均)TEMA(三指数移动平均)T3(三重双指数移动平均(复杂))1.3 加权移动平均WMA(加权移动平均)HT_TRENDLINE(希尔伯特顺时变换)1.4自适应移动平均MAMA(梅萨自适应移动平均)KAMA(库夫曼自适应移动均线)1.5 中间价格MIDPRICE ()MIDPOIN

量化就是探索生活 6034

kama

#Kama项目

Python量化交易新手必学的2个波动率指标指标:ATR和布林带

今天我给大家介绍2个不错的波动率指标,非常实用,尤其是在实盘里面,话不多说,我们一起来看一下。有兴趣的同学可以深入研究一下,当然除了这个2个波动率,还有一些比较有名的比如唐奇安和KC通道,后面也会一一介绍一下,有兴趣的可以留意。比如五粮液,有时候一天只波动1-2元,有时候能上下震荡5-6元,这种“波动强度”的变化,ATR可以非常直观地量化出来。跑完之后,你就能看到ATR随着行情变化而变化,这一步非常关键,因为很多人只是“看指标”,却没有真正算过它。也就是说,不仅考虑当天的波动,还考虑隔夜的价格变化。

cainiao_python的博客 766

缺陷检测-金属表面缺陷检测

1介绍 缺陷检测是工业视觉技术中最重要的组成部分。业务广泛,场景丰富,技术难点高、工作量大。针对不同的场景,选择不同的相机和

huneng1991的专栏 5251

Python新手学量化:一个零延迟的均线因子

今天我给大家介绍个不错的均线指标,非常实用,尤其是在实盘里面,话不多说,我们一起来看一下。非常明显的看到zlema比ema更灵活,延迟更低,这个在实盘里面非常有用(有些小窍门,限于篇幅就不展开了),当然这个指标的缺点是会有假信号的,很容易被假突破干扰。这个“修正价格”是这样算的:。但它也有明显缺点:震荡行情容易来回打脸,假突破时会被放大,信号比 EMA 更“多”,但质量不一定更高。给你一个更直观的比喻:普通 EMA 就像一个“反应慢的人”:。所以它的表现是:比 EMA 更快拐头,更早跟上趋势,更灵敏。

cainiao_python的博客 568

【亲测】ubuntu20.4 安装CUDA11.8

一步一步搭建C++ CUDA CUDNN TENSORRT OPENCV DNN ONNXRUNTIME推理环境

weixin_40950590的博客 3897

EG2134驱动芯片实战:如何用TSSOP20封装搞定三相无刷电机驱动(附电路图)

本文详细介绍了EG2134驱动芯片在三相无刷电机驱动中的应用实践,包括芯片选型、电路设计和PCB布局技巧。EG2134作为一款高性能半桥驱动芯片,采用TSSOP20封装,适合紧凑型设计。文章还提供了典型应用电路图和调试指南,帮助工程师快速实现稳定可靠的电机驱动方案。

d3e4f的博客 308

python量化指标talib库函数功能

参数说明:high:最高价;fastk_period:N参数, slowk_period:M1参数, slowk_matype:M1类型, slowd_period:M2参数, slowd_matype:M2类型。# 参数说明:close:收盘价;# 参数说明:high:最高价;# 参数说明:high:最高价;# 参数说明:close:收盘价;timeperiod:时间周期,fastperiod:快周期;# 参数说明:high:最高价;# 参数说明:high:最高价;# 参数说明:high:最高价;

weixin_69153932的博客 2012

麒麟V10(arm)配置本地离线yum源

麒麟V10(arm)配置本地离线yum源

myfm2java的博客 7893

TA-Lib Python 重叠研究(Overlap Studies)函数全解析:均线、价格通道与趋势轨道指标的完整使用指南

本文聚焦 TA-Lib Python 封装中的 **Overlap Studies(重叠研究)** 函数组,该组是整个库中规模最大、使用最频繁的指标家族,涵盖从最基础的 SMA、EMA 到布林带(BBANDS)、唐奇安通道(DONCHIAN)、抛物线 SAR、SuperTrend 等 24 个指标。通过本文,你将掌握每个函数的完整签名、参数默认值与取值范围、`MA_Type` 移动平均类型枚举、不

gitblog_00988的博客 147

keras tensorflow 的lstm的新冠疫情感染人数预测 附完整代码数据 可直接运行

keras tensorflow 的lstm的新冠疫情感染人数预测 附完整代码数据 可直接运行

852

【DexGraspNet与多指手抓取算法详解】第三章 DexGraspNet数据集构建机理

抓取姿态描述多指手与物体的相对空间关系,包含手掌位姿与手指关节配置。

VectorShift的博客 500

python 股票指标库talib_【手把手教你】股市技术分析利器之TA-Lib(一)

市场有自己的时间观念。股票投资就如同任何人类互动一样,耐心是一项美德。——罗伯特·D·爱德华《股市趋势技术分析》引言TA-Lib,全称“Technical Analysis Library”, 即技术分析库,是Python金融量化的高级库,涵盖了150多种股票、期货交易软件中常用的技术分析指标,如MACD、RSI、KDJ、动量指标、布林带等等。TA-Lib可分为10个子板块:Overlap Stu...

weixin_39962394的博客 3876

学Simulink--特殊天气场景实例:基于Simulink的智能车辆雨天行驶仿真(感知与控制)

本文详细介绍了基于Simulink的智能车辆雨天行驶仿真系统。通过构建降雨-路面-传感器-控制全链路耦合模型,实现了雨天场景下的自适应控制。系统根据降雨强度动态调整路面附着系数和传感器性能参数,上层控制算法相应调整ACC安全距离、ESC增益等参数。仿真结果表明,系统能在不同降雨强度下自动降低车速、增大跟车距离,保持车辆稳定性。文章还提供了完整的Simulink建模流程、关键模型实现方法及工程实践要点,为全天候自动驾驶功能开发提供了有效的验证平台。

xiaoheshang_123的博客 167

TA-Lib金融量化库指标总结笔记

一、TA-Lib介绍 1.简介 下载地址及原文:https://mrjbq7.github.io/ta-lib/ TA-Lib,全称“Technical Analysis Library”, 即技术分析库,是Python金融量化的高级库。 包含了150多个指标,包括:ADX, MACD, RSI, Stochastic, Bollinger Bands, 等。 K线形态识别 完全开源,支持 C/C++, Java, Perl, Python and 100% Managed .NET 2.安装 使用p

weixin_48252774的博客 5511

LPDDR5电路设计的新功能

本文从硬件电路设计的角度,简述了LPDDR5 JEDEC标准中新增的功能。

一只豌豆象的博客 7149

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 美女同事离职了,程序员常对着她工位发呆,我仿佛明白了什么,于是告诉他…
下一篇: 98000赞!大龙虾太火了!Clawdbot一夜爆红,7*24AI数字员工!
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值