Python实现ROC工具判断信号:股票技术分析的工具系列(7)

Python实现ROC工具判断信号:股票技术分析的工具系列(7)

    • 介绍
      • 算法公式
    • 代码
      • rolling函数介绍
      • 完整代码
        • data代码
        • ROC.py


介绍

ROC(变动率指标)是一种技术分析指标,用于衡量价格变动的速度和幅度,计算方式为当前收盘价与一定期间前收盘价的变动率。

先看看官方介绍:

ROC(变动率指标)
用法
1.本指标的超买超卖界限值随个股不同而不同,使用者应自行调整;
2.本指标的超买超卖范围,一般介于±6.5之间;
3.本指标用法请参考MTM 指标用法;
(1)ROC从下向上突破ROCMA,买入信号;
(2)ROC从上向下跌破ROCMA,卖出信号;
(3)股价续创新高,而ROC未配合上升,意味上涨动力减弱;
(4)股价续创新低,而ROC未配合下降,意味下跌动力减弱;
(5)股价与ROC在低位同步上升,将有反弹行情;反之,从高位同步下降,将有回落走势。
4.本指标可设参考线。

算法公式

ROC:100*(CLOSE-REF(CLOSE,N))/REF(CLOSE,N);
MAROC:MA(ROC,M);
优势描述
灵活性ROC指标的超买超卖界限值随个股不同而不同,使用者可以根据具体情况进行调整,使得指标更适合不同个股的特性。
清晰的买卖信号当ROC从下向上突破ROCMA时,产生买入信号;当ROC从上向下跌破ROCMA时,产生卖出信号。这提供了清晰的交易信号,有助于投资者抓住市场的买卖时机。
配合价格趋势ROC指标能够配合价格趋势进行分析,当股价续创新高而ROC未配合上升时,意味着上涨动力减弱;反之,当股价续创新低而ROC未配合下降时,意味着下跌动力减弱。
指示反弹或回落行情当股价与ROC在低位同步上升时,将有反弹行情;反之,当股价与ROC在高位同步下降时,将有回落走势。这为投资者提供了判断市场走势的重要参考。

劣势:

劣势描述
单一性ROC指标虽然能够提供清晰的买卖信号,但它只是从价格变动率的角度进行分析,缺乏对其他市场因素的考虑,可能无法全面反映市场的复杂情况。
市场噪音影响在市场波动较大或处于震荡状态时,ROC指标可能会产生虚假信号,影响投资者的交易决策。
需要进一步验证虽然ROC指标提供了买卖信号和趋势配合分析,但投资者仍需要结合其他指标和分析方法进行综合判断,以确认信号的有效性。

代码

rolling函数介绍

rolling 函数通常与其他函数(如 meansumstd 等)一起使用,以计算滚动统计量,例如滚动均值、滚动总和等。

以下是 rolling 函数的基本语法:

DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
  • window: 用于计算统计量的窗口大小。
  • min_periods: 每个窗口最少需要的非空观测值数量。
  • center: 确定窗口是否居中,默认为 False
  • win_type: 窗口类型,例如 Noneboxcartriang 等,默认为 None
  • on: 在数据帧中执行滚动操作的列,默认为 None,表示对整个数据帧执行操作。
  • axis: 执行滚动操作的轴,默认为 0,表示按列执行操作。
  • closed: 确定窗口的哪一端是闭合的,默认为 None

完整代码

data代码

这里完整代码中的data部分,阔以通过下面资源文件下载,或者留下邮箱等发送。:

https://download.csdn.net/download/qq_36051316/88896567
ROC.py
 
import pandas as pd
import stock_datadata = {'DATE': stock_data.DATE,'CLOSE': stock_data.CLOSE,'HIGH': stock_data.HIGH,'LOW': stock_data.LOW,'OPEN': stock_data.OPEN,'CHANGE': stock_data.CHANGE,'VOL': stock_data.VOL,'CAPITAL': stock_data.CAPITAL
}df = pd.DataFrame(data)def calculate_roc(data, n):"""计算ROC指标参数:data: pandas.DataFrame,包含股票数据的DataFramen: int,窗口大小返回:pandas.Series,ROC指标数据"""return 100 * (data['CLOSE'] - data['CLOSE'].shift(n)) / data['CLOSE'].shift(n)def calculate_maroc(roc, m):"""计算MAROC指标参数:roc: pandas.Series,ROC指标数据m: int,窗口大小返回:pandas.Series,MAROC指标数据"""return roc.rolling(window=m).mean()def generate_signals(v_df, day_index=-1):"""生成信号参数:v_df: pandas.DataFrame,包含ROC和MAROC指标的DataFrameday_index: int,要检查的日期索引,默认为最后一天返回:str,表示信号的字符串,可能为"买入信号"、"卖出信号"或"无信号""""row = v_df.iloc[day_index]if row['ROC'] > row['MAROC']:return '买入信号'elif row['ROC'] < row['MAROC']:return '卖出信号'else:return '无信号'n = 12
m = 6df['ROC'] = calculate_roc(df, n)
df['MAROC'] = calculate_maroc(df['ROC'], m)
result = generate_signals(df)
print(result)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/720648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统运维-Linux Qemu虚拟机命令行安装和virsh命令使用

安装 首先安装qemu-kvm virt-install libvirt yum install qemu-kvm virt-install libvirt -y #安装所需 安装完要启动libvirtd systemctl restart libvirtd #启动libvirtd systemctl enable libvirtd #设置自启动libvirtd 安装虚拟机 使用virsh命令 实例&#x…

LCR 127. 跳跃训练

解题思路&#xff1a; 动态规划&#xff0c;类似于斐波那契数列&#xff0c;但需要根据题意调整初始值dp[0]和dp[1]&#xff0c;递推公式由最后一跳跳一次或两次得到。 class Solution {public int trainWays(int num) {if(num<1) return 1;int[] dpnew int[num1];//当平台…

抖音视频评论批量采集软件|视频下载工具

《轻松搞定&#xff01;视频评论批量采集软件&#xff0c;助您高效工作》 在短视频这个充满活力和创意的平台上&#xff0c;了解用户评论是了解市场和观众心声的重要途径之一。为了帮助您快速获取大量视频评论数据&#xff0c;我们推出了一款操作便捷、功能强大的软件&#xff…

JVM运行时数据区——堆

文章目录 1、堆的核心概述1.1、JVM实例与堆内存的对应关系1.2、堆与栈的关系1.3、JVM堆空间划分 2、设置堆内存大小与内存溢出2.1、设置堆内存大小2.2、内存溢出案例 3、新生代与老年代4、图解对象分配过程5、Minor GC、Major GC、Full GC5.1、GC的分类5.2、分代式GC策略的触发…

Redis实现乐观锁+秒杀场景demo

在Redis中&#xff0c;乐观锁通常是通过使用 WATCH、MULTI 、EXEC和DISCARD命令实现的。这种乐观锁机制允许客户端在执行事务期间监视一个或多个键&#xff0c;并且只有在事务执行期间没有其他客户端修改被监视的键时&#xff0c;才会执行事务。 应用场景&#xff1a; 库存控…

Linux 之一:Linux 简介、客户端、安装

Linux简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹于…

如何学习、上手点云算法(二):点云处理相关开源算法库、软件、工具

写在前面 本文内容 一些用于点云处理的开源算法库、软件介绍&#xff0c;主要包含&#xff1a; CloudCompare, MeshLab, PCL, Open3D, VTK, CGAL等 不定时更新 平台/环境 Windows10, Ubuntu1804, CMake, Open3D, PCL 转载请注明出处&#xff1a; https://blog.csdn.net/qq_41…

Springboot实现缓存预热

很多时候我们代码中使用缓存时都是先判断缓存中没有数据我们再读取数据库而有则直接使用缓存数据&#xff0c;而在系统冷启动(当系统重启或新启动时&#xff0c;缓存是空的&#xff0c;这被称为冷启动)时&#xff0c;我们毫无意外都是直接获取数据库的内容&#xff0c;这时候缓…

计算机网络-网络安全(二)

1.应用层安全协议&#xff1a; S-HTTP或SHTTP&#xff08;Sec HTTP&#xff09;&#xff0c;安全超文本传输协议&#xff0c;是HTTP扩展&#xff0c;使用TCP的80端口。HTTPS&#xff1a;HTTPSSL&#xff0c;使用TCP的443端口。和TLS&#xff08;传输层安全标准&#xff09;是双…

[Redis]——Spring整合Redis(SpringDataRedis)

⭐准备工作&#xff1a; 确保Redis服务已启动idea开发环境 ⭐Redis整合步骤&#xff1a; 1.pom文件引入依赖 2.yml文件配置连接信息 3.修改Redis序列化方式 4.注入RedisTemplate 使用 小知识&#xff1a; Spring整合的Redis可以将Object对象自动序列化成字符串&#xff0…

RabbitMQ分享

RabbitMQ遵循AMQP协议&#xff0c;自身采用Erlang RabbitMQ工作模式 生产者发消息&#xff0c;启动多个消费者实例来消费消息&#xff0c;每个消费者仅消费部分信息&#xff0c;可达到负载均衡的效果。 RabbitMQ三种常用交换机类型&#xff1a; 交换机主要起调度分发作用。 …

大语言模型LLM代码:PyTorch库与ChatGLM模型

文章目录 通过阅读大语言模型的代码,熟悉并理解PyTorch大语言模型LLM代码:PyTorch库与ChatGLM模型大语言模型中的PyTorchChatGLM3-6B模型代码ChatGLMModel类总览ChatGLMModel类说明ChatGLMModel类核心代码片段通过阅读大语言模型的代码,熟悉并理解PyTorch 大语言模型LLM代码…

【Oracle Database】如何远程连接服务器、创建用户、从本地dmp导入表

C:\Users\test>imp test/123456ip/orcl:1521 fileE:\db.dmp tablestable1,table2Import: Release 11.2.0.3.0 - Production on 星期一 3月 4 12:59:09 2024Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.IMP-00058: 遇到 ORACLE 错误 1263…

电机应用-正点原子直流有刷电机例程笔记

目录 基础驱动实验&#xff1a;调速和换向 初始化工作 电机基础驱动API 电压、电流、温度检测实验 初始化工作 采集工作 编码器测速实验 编码器接口计数原理 初始化工作 编码器测速工作 速度环控制实现 PID相关函数 PID运算 电流环控制实现 PID相关函数 PID运算…

Shell管道和过滤器

一、Shell管道 Shell 还有一种功能&#xff0c;就是可以将两个或者多个命令&#xff08;程序或者进程&#xff09;连接到一起&#xff0c;把一个命令的输出作为下一个命令的输入&#xff0c;以这种方式连接的两个或者多个命令就形成了管道&#xff08;pipe&#xff09;。 重定…

前端Vue篇之Vue-Router 的懒加载如何实现、如何定义动态路由?如何获取传过来的动态参数?

目录 Vue-Router 的懒加载如何实现方案一&#xff1a;箭头函数 import方案二&#xff1a;箭头函数 require方案三&#xff1a;require.ensure 技术总结 如何定义动态路由&#xff1f;如何获取传过来的动态参数&#xff1f;定义动态路由获取传递的动态参数Query方式定义路由跳…

数仓实战——京东数据指标体系的构建与实践

目录 一、如何理解指标体系 1.1 指标和指标体系的基本含义 1.2 指标和和标签的区别 1.3 指标体系在数据链路中的位置和作用 1.4 流量指标体系 1.5 指标体系如何向上支撑业务应用 1.6 指标体系背后的数据加工逻辑 二、如何搭建和应用指标体系 2.1 指标体系建设方法—OS…

IDEA中Maven无法下载jar包问题解决

在项目中经常会遇到jar包无法下载的问题&#xff0c;可以根据以下几种方法进行排查。 1. 排查网络连接 网络连接失败&#xff0c;会导致远程访问Maven仓库失败&#xff0c;所以应确保网络连接正常。 2. 排查Maven的配置 Maven配置文件&#xff08;settings.xml&#xff09;…

【C语言基础】:深入理解指针(二)

文章目录 深入理解指针一、指针运算1. 指针 - 整数2. 指针 - 指针3. 指针的关系运算 二、野指针1. 野指针成因2. 如何避免野指针 三、assert断言四、指针的使用和传址调用4.1 strlen的模拟实现4.2 传值调用和传址调用 五、指针与数组5.1 数组名的理解5.2 指针访问数组5.3 一维数…

JeeSite Vue3:前端开发的未来之路

JeeSite Vue3&#xff1a;前端开发的未来之路 随着技术的飞速发展&#xff0c;前端开发技术日新月异。在这个背景下&#xff0c;JeeSite Vue3 作为一个基于 Vue3、Vite、Ant-Design-Vue、TypeScript 和 Vue Vben Admin 的前端框架&#xff0c;引起了广泛关注。它凭借其先进的技…