他目前有一个运作还不错的策略,在手工执行和测试中。...程序化交易是一个带着浓厚领域知识的行业,大部分程序员没有这方面的领域知识,而大部分行业内的从业者或多或少都会在工作中用到 Python,所以几乎每一个交易软件,都会优先提供 Python SDK。...,所以有 ta-lib (technical analysis lib)这样的 C++ 库来为 Python 项目的性能托底。...在探索的过程中,我不禁技痒,想看看做程序化交易难度几何。...主要原因是我对技术分析那些术语不太了解,光是看 RSI 指标是如何生成的就花了不少时间。还有大量的时间花在选择合适的可视化工具上。
2.1.2 TA-Lib库进行指标运算 ? ? 2.1.3 接下来我们自己动手一步步计算MACD指标、然后画出图形 效果图: ?...MACD值的TA-Lib函数 ?...我们对MACD做个总结 MACD是一种中长线的研判指标。当股市强烈震荡或股价变化巨大(如送配股拆细等)时,可能会给出错误的信号。...2.2.4 RSI指标计算以及交易判断实现 RSI指标计算 ?...2.3.2 BOLL指标的计算方法 BOLL指标的计算公式 中轨线(MA)=N日的移动平均线 上轨线(UP)=中轨线+两倍的标准差 下轨线(DN)=中轨线-两倍的标准差 强弱指标的计算公式如下
如果说数据是矿石,那数据分析就是点石成金的炼金术。掌握它,你才能从冰冷的数字中,提炼出闪闪发光的“策略因子”。 废话不多说,这篇文章主要讲一下量化数据分析。...当短期均线(如MA5)上穿长期均线(如MA20),形成“金叉”,往往预示着上升趋势的开始。这是最经典、最广为人知的趋势信号。 每年520晚上会产生一些美妙的交叉信号,这个信号蛮不错的。 2....配方:相对强弱指数(RSI)。 RSI衡量的是价格上涨下跌的速度。通常认为RSI > 70是“超买”,可能要跌;RSI < 30是“超卖”,可能要涨。帮你捕捉转折点。 3....因子有效性检验 做法:按RSI值从低到高把股票分成5组,看看未来5天,哪一组的平均收益率最高。 洞察:如果RSI最低的那一组(超卖组)收益率显著最高,那么恭喜你,RSI就是一个有效的“黄金因子”!...TA-Lib:技术指标计算“神器”,内置上百个现成的“炼金配方”。
实际上,这可以让程序去自动分析,该程序在交易日开始时计算并执行一组头寸,以捕获当天的移动。 该模型目前使用4个输入特征(同样,为简单起见):15 + 50天RSI和14天随机K和D。...网络“长输出”和“短输出”被用作二元预测器,高置信度值用作未来一天的模型预测。 架构中的“密集”层意味着每个神经元都连接到下面层中所有神经元的输出。...使用tanh作为激活函数,这是小型神经网络的常见的用法。 某些类型的数据和网络可以更好地与不同的激活函数一起工作,如RELU或ELU用于更深层次的网络。...这严重限制了它的作用,你能根据一天内的几个信号就产生交易? 首先,修改数据集生成脚本,以计算更多的交易指示信号并将它们保存到CSV中。TA-lib可以帮到你。...我们建议使用标准化的指标,类似于Stoch和RSI,因为这将资产的相对价格从等式中剔除,这样模型就可以应用于一系列股票中,而不需要为每种股票都选用不同的模型。
一些原因: 指标X在库中而不在backtrader中(作者将很乐意接受请求) TA-LIB的行为是众所周知的,人们信任老牌东西 为了满足每个口味,TA-LIB集成是提供的。...要求 TA-Lib 的 Python 包装器 它需要的任何依赖项(例如numpy) 安装详情在GitHub存储库中 使用ta-lib 就像使用backtrader中已经内置的任何指标一样容易...当然,ta-lib指标的params由库本身定义,而不是由backtrader定义。在这种情况下,ta-lib中的SMA需要一个名为timeperiod的参数来定义操作窗口的大小。...为了避免将subplot添加到图表中,有一个自动绘图转换来在识别模式的时间点上在data上绘制它们。 示例和比较 以下是一些ta-lib指标输出与backtrader中等效内置指标输出的图表比较。...分析了ta-lib源代码之后: ta-lib中的实现对KAMA的第 1 个值做出了非行业标准的选择。 选择可以从源代码中看到(引用源代码):这里使用昨天的价格作为前一天的 KAMA。
Talib涵盖了超过150种技术指标,包括但不限于移动平均线(MA)、相对强弱指数(RSI)、平滑异同移动平均线(MACD)、布林带(Bollinger Bands)等,这些指标在股票、期货等金融市场的技术分析中发挥着重要作用...这些指标可以分为多个子板块,如重叠指标(Overlap Studies)、动量指标(Momentum Indicators)、成交量指标(Volume Indicators)、周期指标(Cycle Indicators...Talib的安装相对简单,但需要注意版本兼容性问题。安装完成后,用户可以在Python环境中导入Talib库,并利用其提供的函数计算各种技术指标,进而进行金融市场数据的深入分析。...【安装步骤】 首先去[talib][python]ta-lib所有whl文件下载地址汇总_talib下载-CSDN博客 找到和自己python对应的talib版本。...talib包安装到python内 打开控制台后输入python查看对应python版本确认和下载whl支持python一致,比如TA_Lib-0.4.24-cp310-cp310-win_amd64.whl中的
在本文中,我会介绍如何使用流行的 Python 库 TA-Lib 以及 zipline 回测框架来计算 TA 指标。我会创建 5 种策略,然后研究哪种策略在投资期限内表现最好。...我们要解决的问题如下: 投资者有 10000 元的本金 投资时限为 2016-2017 投资者仅投资 Tesla 的股票 假设不存在交易成本,即交易佣金为零 不存在做空行为(投资者只能出售他们拥有的股票...RSI 被看作是一种动量振荡器,它可以估测价格变化的速度和幅度。 RSI 指标评估了股价的向上力量与向下力量的比率。若向上的力量较大,则计算出来的指标上升;若向下的力量较大,则指标下降。...RSI 的结果为0到100之间的数字,一般按14天进行计算。为生成交易信号,通常要指定 RSI 的下限为30,上限为70。也就是说,30以下在超卖区,70以上为超买区。...有时候,也可能会设定一个比较居中的值,比如在涉及到做空的策略中。我们也可以选择更极端的阈值,如20和80。不过,这要求具备专业知识,或者在回测时尝试。
TALIB简介 作为一套被业界广泛应用的开源技术分析库(包含技术指标计算和K线模式识别等),TA-Lib自2001年发布以来已经有了十多年的历史。...TA-Lib中一共包含大约125个技术指标的计算函数,同时提供了包括C/C++、Java、Perl、Python等多种语言的API。 有什么用?...简单来说TA-Lib就是提供了一堆经过长期实践检验的技术指标计算函数。...基于某一组历史数据(如股指的1分钟行情),通过遗传算法来对以上的参数进行光滑与优化; 3....DEMO vn.py的trade/app/ctaStrategy/ strategy模块给出了几个策略demo,计算了Atr、Ma等指标,TA-Lib的使用方式在策略中找不到,是因为1.7之后的版本将常用的技术指标封装在
1.1 用AI分析股票的三大优势传统股票分析要手动扒数据、算指标,耗时长还容易错,AI直接帮咱们解决这些麻烦——高效、多维、客观,三个优势直接戳中痛点!...效率革命:AI能在数秒内完成传统分析师需数小时处理的数据,比如算完Netflix 10年的6大技术指标,手动要半天,AI分分钟搞定;多维决策支持:不只看价格,还能结合财务健康度(如市盈率)、量价形态,避免...相关文章Python深度强化学习智能体DDPG自适应股票交易策略优化道琼斯30股票数据可视化研究2.2 技术指标计算:集成TA-Lib,6大指标一键算咱们之前手动写函数算MA、RSI,AI助手直接调用TA-Lib...2.4 Streamlit可视化界面:一键输入代码,结果全展示不用对着代码看输出!...(MA)、RSI、OBV、波动率、动量、MACD——这些都是股票分析的“硬通货”,缺一不可。
主要用于数据分析、性能评估和业务监控,例如在项目管理中跟踪进度指标或在营销中评估活动效果。 因为两种方式各有优劣,实操的过程中,很有可能指标库和规则引擎是需要同时使用的。...它在v2版本中进行了重大改进,包括代码质量提升、测试性增强、数据处理优化、指标和策略可配置性提高以及对Golang泛型的支持,适用于进行技术分析和策略开发。 TA-Lib 主要用于金融市场的技术分析。...它包含200多种指标,如ADX、MACD、RSI等,还支持烛台图模式识别。核心代码用C/C++编写,提供Python API,开源且稳定,可集成到其他应用程序中。...因为我并没有实操上手用过,大家需要自行判断一下是否符合自己的需求。 接下来是一些常用的规则引擎。 这些工具主要是java生态的,更加不熟悉了,也是仅供大家参考。...Easy Rules 特点: 轻量级的 Java 规则引擎,基于简单的 POJO(Plain Old Java Object)和注解定义规则,易于学习和使用,适合中小型企业或项目。
,用于和声分析过零率,反映信号频率变化特性这些特征在音频处理中各自捕获不同的声学属性。...,例如广泛应用的移动平均收敛/发散 (MACD) 和相对强度指数 (RSI) 等。...ta-lib 中的许多特征专门设计用于应对金融时间序列中常见的高噪声环境,这一特性使其在处理其他领域的噪声数据时也具有应用价值。...值得注意的是,前文提到的一些特征提取框架(如 tsfeatures、tsfel)在内部实现中也使用了 statsmodels 提供的计算功能。...,如与节假日的距离(天数)这类特征在对时间序列中的事件或特殊日期进行建模时(如零售销售分析、用户行为建模)具有重要价值。
一、WR指标的本质与计算原理 定义与起源 WR指标(Williams %R)由拉里·威廉姆斯(Larry Williams)于1973年提出,属于动量振荡指标,通过衡量收盘价在近期价格区间中的相对位置,...判断市场的超买超卖状态 计算公式 Hn:N周期内最高价 Ln:N周期内最低价 C:当日收盘价 输出范围:0至-100(部分软件显示为0-100,逻辑一致,负值仅为计算习惯) 二、核心应用场景与方法...共振:WR与RSI同步突破50中轴线,可验证趋势强度 3....特殊市况的应对 单边行情中的钝化:在强势上涨/下跌趋势中,WR可能持续超买/超卖,需结合趋势线或均线系统过滤假信号 板块差异化调整:科技股等波动大品种,可将阈值调至-85(超卖)/-15(超买)...四、重要局限与风险提示 适用性边界 最佳场景:震荡市(准确率较高); 最差场景:单边趋势市(易过早逆势操作) 互补工具必要性 需结合基本面(如财报、行业政策)或舆情工具(如实时风险监控)过滤虚假信号
修正未定义符号:目标文件中调用的外部函数(如其他文件的函数、库函数)地址在编译时是 “空值”,链接器需找到这些符号的实际地址并修正,确保程序运行时能正确跳转。...目标文件中调用外部函数的指令,其跳转地址在编译时被设为 0(或占位符),链接器需要根据合并后的节布局,计算每个函数的实际地址,并修正这些指令的跳转地址。...Name:需要修正的符号(如puts、my_strlen)。 Type:重定位类型(如R_X86_64_PLT32表示 x86-64 架构的 32 位 PLT 重定位)。....text节布局计算得出的 —— 每个函数的地址 = 节的起始地址 + 函数在节中的偏移量。...对性能要求极高的程序:如实时控制系统、高性能计算程序,静态链接的低运行开销可以满足性能需求。 无网络环境的部署:在没有网络的环境中,静态链接的程序无需额外下载依赖库,部署更便捷。
1 CPU的基本结构 1.1 CPU是一个计算系统的核心 Control Unit,负责控制。如指令计数器,指令跳转。 Logic Unit,负责计算。如加减,比较大小等。...1.3 CPU的执行流程 图片 典型CPU包含以下5个执行流程: 取指,从内存中取出指令 译码,识别指令的类型,计算指令长度,从指令中解析参数 执行,将数据送给计算单元或者控制单元进行具体计算和跳转...输出与输入相反 2.2 时序电路基本原理 D触发器可保存数据,为了保证触发器的输出Q是正确的值,一定要让D信号稳定后,才在时钟的上升沿打入触发器。...RCX:在字符串处理指令中,常用做计数器。 RSI:在字符串处理指令中,做为源操作数。 RDI: 在字符串处理指令中,常做为目标操作数。 RSP:指向当前栈帧的栈顶。 RBP:指向当前栈帧的栈基址。...EFLAGS记录溢出,方向,为零等状态。可用于整个CPU的状态标记。 段寄存器在现代CPU中几乎不起作用了。在8086时代是做为段基址寄存器。
再加1,容器就归零了多出来的那1个,CPU会单独记录(进位标志)计算机如何表示负数--补码问题:怎么区分正负?...规则:如果写入32位的部分寄存器(如eax),CPU会自动将整个寄存器的高32位清零!...(程序二进制地址)可能指程序中的全局变量、静态数据等也是从可执行文件加载进来的LibraryCode(库代码)动态链接库(如libc.so)的代码通过内存映射加载到进程空间ProcessStack(进程栈...指向的位置)rax中返回实际读取到的字节数第二步:输出刚读取的内容movrdi,1;文件描述符1=标准输出(屏幕)movrsi,rsp;数据地址=还是栈上的那块区域movrdx,rax;要输出的字节数=...如何在栈上手动构造字符串,然后作为参数传给系统调用高级语言里的字符串在底层就是连续的内存字节+结尾的0。
什么是库 库(Library)是一组预编译的可复用代码集合,以二进制形式存在,用于封装常用功能(如数学计算、字符串操作),避免重复开发。程序通过链接库来调用这些功能,无需从零编写代码。...编译是指将高级编程语言(如C、Java、Python等)编写的源代码,通过特定的编译程序(编译器)转换成计算机CPU能够直接识别和执行的机器代码的过程。...其核心任务是 符号解析 和 重定位: 符号解析:链接器建立符号引用(如函数调用)与符号定义(如函数实现)的关联 。 重定位:修正代码中符号的地址引用,使其指向正确的内存位置 。...重定位表:链接器的修正指南 每个目标文件包含 重定位表(如 .rel.text),记录需要修正的位置及其类型 : 重定位项结构: r_offset:需修正的指令在文件中的偏移量(如 call 指令的操作数位置...printf的定义 重定位处理: 确定每个符号在最终输出文件中的绝对地址 修改目标代码中的相对地址引用为绝对地址 包括对函数调用、全局变量引用等地址的修正 具体实现方式: 对于函数调用:修正
%rcx rip_next = 0x402e65, CPU并不是直接计算出 _ZN19ZoneActRunActCmdReqC1Ev 的地址,而是按照 rip_next + offset 进行编码 指令中的偏移...库 完成了这类操作,比如polyhook, 其中的一个特性就是 解决了 inline Hook中的 rip relative 的指令的 位移修正。...需要找到 哪些指令会涉及rip relative 如何找到 rip relative 指令 rip relative指令中,位移是哪些字段,是8位的还是16位的,还是32位的 offset 要如何修正到...REX Prefixes 开启64位计算的基石 AMD 在x86体系的32位计算扩展为64位计算, AMD64体系的64位计算是这样设计:操作数的Default Operand-Size是32位,而Address-Size...在64位模式下,使用ModR / M寻址的指令可以使用RIP相对寻址。如果没有RIP相对寻址,则所有ModR / M模式都会相对于零寻址存储器。
三、实战一看就懂:零代码干掉幻觉举个例子,双均线策略输入大白话:生成一个双均线策略,MA 短周期取 5,长周期取 20AI 输出用规范汉语编写的策略它的策略模板是固定的,由指标定义和配置定义两部分组成,...指标定义中的内置指标如 MA、GDX(金叉死叉信号) 的格式也是统一的,AI 只需要像做填空题一样,在固定的位置填入对应的参数。...卖出信号:成交量递减,且股价跌破5日均线AI 输出:这个策略中用到了很多自定义指标,可以看到自定义计算和自定义信号的模板也是固定的,由 AI 自动生成,用户只需要审核表达式、买入条件和卖出条件的逻辑表达是否准确...比如本例中成交量要求连续3日逐日递增,核对上图中红线部分表达式,可以看到先定义了一个指标vol_up,计算每天的成交量是否增加,然后再计算是否连续3日成交量都增加。...而且在 AIQT 的汉语规范中也没有任何计算未来的表达式,比如像明日收盘价,次日开盘价这类的写法都是不支持的。即使 AI 翻译出了这样的语句,系统也会报错,指导 AI 纠正。
GCC c语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示,给出程序中的每一条指令。然后GCC调用汇编和链接器,根据汇编代码生成可执行的机器代码。...这一章节其实就是来更加深入的认识和理解汇编代码 现在我们更多接触的都是一些高级语言,如JAVA,GO,Python,其实用这些语言的时候,更大程度上,已经屏蔽了一些程序的细节,即机器级的实现。...但是如果是用汇编语言,程序员就必须制定程序用来执行计算的低级指令。 那么为什么我们还要学习和了解汇编呢?...x86-64的机器代码和原始的C代码差别非常大,一些通常对C语言程序隐藏处理状态都是可见的: 程序计数器(PC,在x86-64中用%rip表示)给出将要执行的下一条指令在内存中的地址 整数寄存器文件包含...内存引用:根据计算出来的地址访问某个内存位置 下图是多种不同的寻址方式: ?
Conda 包为 TA-Lib 0.4.19。 这一新版本还使得在回测时更容易将自定义数据源(如 ML 模型的预测)加载到流水线中。...因子设置为 window_safe(1902) 将RSI因子设置为 window_safe(1904) 为更好的文档生成进行更新(1890) 移除并清零未使用的国债曲线(1910)...从夏普比率计算中移除无风险利率。现在该比率是风险调整后回报的平均值除以调整后回报的波动性。(853) 当所需回报等于零时,索提诺比率将返回计算结果而不是 np.nan。...修正成本基础计算。成本基础计算现在考虑了交易的方向。平仓多头或回补空头不应影响成本基础。 修复order()中的浮点错误。...修正成本基础计算。成本基础计算现在考虑了交易的方向。关闭多头头寸或平仓空头头寸不应影响成本基础。 修正order()中的浮点错误。