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

[量化投资-学习笔记004]Python+TDengine从零开始搭建量化分析平台-EMA均线

在之前的文章中用 Python 直接计算的 MA 均线,但面对 EMA 我认怂了。
Python+TDengine从零开始搭建量化分析平台-MA均线的多种实现方式

高数是我们在大学唯一挂过的科。这次直接使用 Pandas 库的 DataFrame.ewm 函数,便捷又省事。
并且用 Pandas 直接对之前 MA 均线进行改写。

我一直同意:I would rather be vaguely right than precisely wrong.

EMA 公式:

EMA(t)=平滑常数*当前价格+(1-平滑常数)*EMA(t-1)

目录

    • 1. 获取数据
    • 2.计算均线
    • 3. 绘制图形
    • 题外话
      • 1. 均线的周期
      • 2. 均线的使用

1. 获取数据

还是使用 Restful 方式从 TDengine 查询数据,并转换成 DataFrame 格式。想看获取数据完整代码的同学,可以翻我之前的笔记。

##SQL
st = '2022-08-01'
et = '2022-10-01'
sql = 'select last(tdate),last(close) from trade_data_a.tdata where fcode="000001" and tdate>="'+st+'" and tdate<="'+et+'"' +' interval(1d) '## 通过Restful 从 TDengine 获取交易数据
def request_post(url, sql, user, pwd):try:sql = sql.encode("utf-8")headers = {'Connection': 'keep-alive','Accept-Encoding': 'gzip, deflate, br'}result = requests.post(url, data=sql, auth=HTTPBasicAuth(user,pwd),headers=headers)text=result.content.decode()return textexcept Exception as e:print(e)## 判断查询是否成功
def check_return(result):datart = json.loads(result).get("code")if  str(datart) == '0':chkrt = 'succ'else:chkrt = 'error' return chkrt## 将返回的 Json 转换为 DataFrame
def request_get_d(resInfo):load_data = json.loads(resInfo)data = load_data.get("data")df = pd.DataFrame(data)df.rename(columns={0:'tdate',1:'close'},inplace=True)return df

2.计算均线

不得不说,用别人的轮子就是方便。

if __name__ == '__main__':rt = request_post(tdurl,sql,username,password)scode = check_return(rt)if scode != 'error':df = request_get_d(rt)ema5 = pd.DataFrame.ewm(df['close'],span=5).mean() ema10 = pd.DataFrame.ewm(df['close'],span=10).mean() 

3. 绘制图形

        plt.title("EMA")plt.plot(ema5,'g',linewidth=1.0,label='EMA5')plt.plot(ema10,'r',linewidth=1.0,label='EMA10')plt.legend()plt.grid()plt.show()

看起来比上次计算 MA 均线简单多了,毕竟是站在别人的肩膀上嘛。
在这里插入图片描述

题外话

历史数据的均线基本不会变化,计算好以后可以直接写到 TDengine 里面,然后在 Grafana 中展示。

这部分的实现放在下个笔记。

1. 均线的周期

绘制均线必须要指定周期,通常使用的周期为5、10、20,为什么呢??

因为通常一周的交易日是5天,其他为5的倍数,那么这个周期是否能够准确趋势的变化呢?

有句话说的很好,技术分析总是在不断的自我验证中走向灭亡。

因此均线周期的选择并非一成不变的,通过修改周期,可能会获得不同的视角。

2. 均线的使用

仔细观察就会发现:均线相较于实际数据数据是滞后的,周期越长滞后越严重。MA 均线比 EMA 均线更加滞后,因为 EMA中 最近的数据具有较大的权重。

因此,均线只是对历史价格趋势的描述,而非预测。这点非常重要。也就是说,均线是用来确认趋势,对价格走势进行验证的。

相关文章:

[量化投资-学习笔记004]Python+TDengine从零开始搭建量化分析平台-EMA均线

在之前的文章中用 Python 直接计算的 MA 均线&#xff0c;但面对 EMA 我认怂了。 PythonTDengine从零开始搭建量化分析平台-MA均线的多种实现方式 高数是我们在大学唯一挂过的科。这次直接使用 Pandas 库的 DataFrame.ewm 函数&#xff0c;便捷又省事。 并且用 Pandas 直接对之…...

KaiwuDB 获山东省工信厅“信息化应用创新优秀解决方案”奖

10月23日&#xff0c;山东省工信厅正式公示《2023年山东省信息化应用创新典型应用案例及优秀解决方案名单》&#xff0c;面向全省、全国重点推荐山东省技术水平先进、应用示范效果突出、产业带动性强的信息化解决方案及应用实践&#xff0c;对于进一步激发山东省信息技术产业创…...

Python-常用的量化交易代码片段

算法交易正在彻底改变金融世界。通过基于预定义标准的自动化交易,交易者可以以闪电般的速度和比以往更精确的方式执行订单。如果您热衷于深入了解算法交易的世界,本指南提供了帮助您入门的基本代码片段。从获取股票数据到回溯测试策略,我们都能满足您的需求! 1. 使用 YFina…...

Netty优化-rpc

Netty优化-rpc 1.3 RPC 框架1&#xff09;准备工作 1.3 RPC 框架 1&#xff09;准备工作 这些代码可以认为是现成的&#xff0c;无需从头编写练习 为了简化起见&#xff0c;在原来聊天项目的基础上新增 Rpc 请求和响应消息 Data public abstract class Message implements …...

【Docker 内核详解】cgroups 资源限制(一):概念、作用、术语

cgroups 资源限制&#xff08;一&#xff09;&#xff1a;概念、作用、术语 1.cgroups 是什么2.cgroups 的作用3.cgroups 术语表 当谈论 Docker 时&#xff0c;常常会聊到 Docker 的实现方式。很多开发者都知道&#xff0c;Docker 容器本质上是宿主机上的进程&#xff08;容器所…...

MATLAB——一维小波的多层分解

%% 学习目标&#xff1a;一维小波的多层分解 clear all; close all; load noissin.mat; xnoissin; [C,L]wavedec(x,3,db4); % 3层分解&#xff0c;使用db4小波 [cd1,cd2,cd3]detcoef(C,L,[1,2,3]); % 使用detcoef函数获取细节系数 ca3appcoef(C,L,db4,3); …...

C++的拷贝构造函数

目录 拷贝构造函数一、为什么用拷贝构造二、拷贝构造函数1、概念2、特征1. 拷贝构造函数是构造函数的一个重载形式。2. 拷贝构造函数的参数3. 若未显式定义&#xff0c;编译器会生成默认的拷贝构造函数。4. 拷贝构造函数典型调用场景 拷贝构造函数 一、为什么用拷贝构造 日期…...

【手机端远程连接服务器】安装和配置cpolar+JuiceSSH:实现手机端远程连接服务器

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …...

Jupyter Notebook的使用

文章目录 Jupyter Notebook一、Jupyter Notebook是什么&#xff1f;二、使用步骤1.安装Miniconda2.安装启动**Jupyter Notebook**3.一些问题 三、Jupyter Notebook的操作1.更换解释器2.在指定的文件夹中打开3 运行的快捷键 四.报错解决1.画图的时候出现报错2.画图的时候空白3.p…...

vue 使用vue-office预览word、excel,pdf同理

在此&#xff0c;我只使用了docx和excel&#xff0c; pdf我直接使用的iframe进行的展示就不作赘述了 //docx文档预览组件 npm install vue-office/docx//excel文档预览组件 npm install vue-office/excel//pdf文档预览组件 npm install vue-office/pdf如果是vue2.6版本或以下还…...

【Spring Boot 源码学习】RedisAutoConfiguration 详解

Spring Boot 源码学习系列 RedisAutoConfiguration 详解 引言往期内容主要内容1. Spring Data Redis2. RedisAutoConfiguration2.1 加载自动配置组件2.2 过滤自动配置组件2.2.1 涉及注解2.2.2 redisTemplate 方法2.2.3 stringRedisTemplate 方法 总结 引言 上篇博文&#xff0…...

Linux中如何进行粘贴复制

因为CTRLC在Linux中具有特定的含义:终止当前操作 xshell提供了CTRLinsert(复制)/shiftinsert(粘贴) 上述快捷键在Windows中依旧支持,...

多输入多输出 | Matlab实现k-means-LSTM(k均值聚类结合长短期记忆神经网络)多输入多输出组合预测

多输入多输出 | Matlab实现k-means-LSTM&#xff08;k均值聚类结合长短期记忆神经网络&#xff09;多输入多输出组合预测 目录 多输入多输出 | Matlab实现k-means-LSTM&#xff08;k均值聚类结合长短期记忆神经网络&#xff09;多输入多输出组合预测预测效果基本描述程序设计参…...

学习笔记3——JVM基础知识

学习笔记系列开头惯例发布一些寻亲消息 链接&#xff1a;https://baobeihuijia.com/bbhj/contents/3/196593.html JVM&#xff08;Write Once&#xff0c;Run Anywhere&#xff09; 以下是一些学习时有用到的资料&#xff0c;只学习了JVM的基础知识&#xff0c;对JVM整体进…...

图像处理:图片二值化学习,以及代码中如何实现

目录 1、了解下图片二值化的含义 2、进行图像二值化处理的方法 3、如何选择合适的阈值进行二值化 4、实现图片二值化&#xff08;代码&#xff09; &#xff08;1&#xff09;是使用C和OpenCV库实现&#xff1a; &#xff08;2&#xff09;纯C代码实现&#xff0c;不要借…...

如果你点击RabbitMQ Service - start了,但http://localhost:15672/#/还是访问不了,那么请看这篇博客!

RabbitMQ 服务启动失败问题小结&#xff08;Windows环境&#xff09;_rabbitmq启动不了-CSDN博客...

Shell 脚本学习 day01

release node v1 初始版本 #定义备份目录#当前时间#检查备份目录是否存在&#xff0c;不存在需要创建# 查找并备份 .xxx 文件# 提取文件名&#xff08;不包含路径部分&#xff09;# 构建备份文件名# 将查出来的.xxx文件拷贝到备份目录#!/bin/bash # context 备份根目录下所有.…...

esp32 rust linux

官方文档&#xff1a;https://esp-rs.github.io/book/introduction.html 安装 rust curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh 工具 risc&#xff1a; rustup toolchain install nightly --component rust-src # nightly 支持 riscv或使用安装工具同时…...

一文了解Elasticsearch

数据分类 数据按数据结构分类主要有三种&#xff1a;结构化数据、半结构化数据和非结构化数据。 结构化数据 结构化数据具有明确定义数据模型和格式的数据类型。 特点&#xff1a; 数据具有固定的结构和模式。 数据项明确定义数据类型和长度。 适合用于数据查询、过滤和分…...

一篇文章认识【性能测试】

一、 性能测试术语解释 1. 响应时间 响应时间即从应用系统发出请求开始&#xff0c;到客户端接收到最后一个字节数据为止所消耗的时间。响应时间按软件的特点再可以细分&#xff0c;如对于一个 C/S 软件的响应时间可以细分为网络传输时间、应用服务器处理时间、数据库服务器…...

FreeRTOS优先级设置踩坑实录:为什么你的高优先级任务跑不起来?

FreeRTOS优先级设置实战指南&#xff1a;从原理到调试的完整解决方案 当你第一次在FreeRTOS中创建多个任务并设置不同优先级时&#xff0c;可能会遇到一个令人困惑的现象&#xff1a;明明设置了高优先级任务&#xff0c;但系统运行时低优先级任务却先执行。这种情况在从其他RT…...

Unity VR开发选无线还是有线?Oculus Quest 2串流实战对比与效率工具推荐

Unity VR开发无线与有线串流深度对比&#xff1a;Oculus Quest 2高效开发全指南 当你沉浸在Unity VR开发的世界中&#xff0c;Oculus Quest 2无疑是目前最受欢迎的测试平台之一。但每次修改代码后漫长的打包安装过程&#xff0c;是否让你在无线自由与有线稳定之间反复纠结&…...

突破性效率工具:3步实现Draw.io Mermaid智能绘图完整方案

突破性效率工具&#xff1a;3步实现Draw.io Mermaid智能绘图完整方案 【免费下载链接】drawio_mermaid_plugin Mermaid plugin for drawio desktop 项目地址: https://gitcode.com/gh_mirrors/dr/drawio_mermaid_plugin 还在为传统拖拽式绘图效率低下而烦恼吗&#xff1…...

PTA天梯赛L2-007家庭房产题解:用C++并查集+结构体搞定复杂家庭关系统计(附完整代码)

PTA天梯赛L2-007家庭房产题解&#xff1a;C并查集与结构体的高效应用 在算法竞赛中&#xff0c;处理复杂关系网络是常见挑战。PTA天梯赛L2-007"家庭房产"题目正是这类问题的典型代表&#xff0c;要求选手统计每个家庭的人口、房产套数和人均面积。这道题看似简单&am…...

传统 OA 系统为什么难以满足现代企业管理需求

传统 OA 系统为什么难以满足现代企业管理需求 OA 曾经是很多企业数字化的起点&#xff1a;通知公告、请假报销、文件流转、会议管理、用印审批&#xff0c;让办公室从纸质时代进入线上时代。但今天&#xff0c;企业对 OA 的期待已经变了。 现代企业不只需要“把审批搬到线上…...

3步高效解决Krita AI Diffusion插件IP-Adapter缺失问题

3步高效解决Krita AI Diffusion插件IP-Adapter缺失问题 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://gitcode.com/gh_mi…...

张琦(新商业架构师)成功的核心步骤 + 关键心法

张琦&#xff08;新商业架构师&#xff09;成功的核心步骤 关键心法&#xff0c;和李一舟完全不同&#xff0c;她走的是认知升维&#xff0b;天地人网全域流量&#xff0b;击穿单点&#xff0b;长期复利路线&#xff0c;全是可落地、能直接照做的干货。 一、张琦成功的底层逻辑…...

使用 Elcomsoft System Recovery 恢复 Windows 凭据

在传统的取证工作流程中&#xff0c;获取 Windows 系统的访问权限曾是一件比较直接的事情&#xff1a;从本地数据库中提取 NT 哈希&#xff0c;然后运行一次快速的离线攻击。如今&#xff0c;Windows 身份验证正从那些本质上不安全的 NTLM 哈希向更具弹性的机制迁移。微软正积极…...

告别电流畸变!手把手教你用PR调节器搞定开绕组电机零序电流(附Simulink仿真模型)

开绕组电机零序电流抑制实战&#xff1a;PR调节器参数整定与Simulink仿真指南 当开绕组永磁同步电机&#xff08;OEW-PMSM&#xff09;运行在考虑永磁体三次谐波反电动势的场景时&#xff0c;工程师们常会遇到一个棘手问题——三倍频零序电流导致的相电流畸变和转矩脉动。这种现…...

用51单片机+DAC0832做个信号发生器:5种波形可调,附Proteus仿真和Keil源码

51单片机DAC0832信号发生器实战指南&#xff1a;从硬件搭建到波形调频 在电子设计领域&#xff0c;信号发生器是基础但极其重要的工具。传统商用设备往往价格昂贵且功能固定&#xff0c;而基于51单片机和DAC0832的自制信号发生器不仅成本低廉&#xff0c;还能根据需求灵活定制。…...