Python
文章平均质量分 73
DBA大董
不会编程的DBA,
Oracle,MySQL,PostgreSQL,TDengine,Influxdb,时序数据库,关系数据库 全不精通。
展开
-
[和ChatGPT学编程]Python Requests 简介
requests 是一个流行的 Python 库,用于发送 HTTP 请求。它提供了简洁而友好的 API,使得发送 HTTP 请求变得简单而直观。requests 具有许多强大的功能,适用于各种 HTTP 请求场景,包括 GET、POST、PUT、DELETE 等。原创 2023-11-20 13:00:41 · 4499 阅读 · 0 评论 -
[和ChatGPT学编程]Python并发有多复杂
全局解释器锁(Global Interpreter Lock,简称 GIL)是 CPython 解释器中的一个特性,它对 Python 的多线程执行产生了影响。CPython 是 Python 的标准解释器,它使用 GIL 来确保在解释器级别只有一个线程可以执行 Python 字节码。GIL 的存在:GIL 是 CPython 解释器的一个设计决策,旨在简化内存管理和确保线程安全。它导致同一时刻只有一个线程能够执行 Python 字节码。影响多线程并发性:GIL 的存在影响了多线程程序的并发性能。原创 2023-11-20 09:52:03 · 4119 阅读 · 0 评论 -
[AI]ChatGPT4 与 ChatGPT3.5 区别有多大
ChatGPT 3.5 注册已经不需要手机了,直接邮箱认证就可以,这可真算是好消息,坏消息是 ChatGPT 4 还是要收费。那么 GPT-3.5 与 GPT-4 区别有多大呢,下面简单测试一下。以从 TDengine 订阅数据为例,TDengine 算是不太小众的数据库,如果连这个都能搞定,说明GPT 还是蛮厉害的。原创 2023-11-19 22:15:11 · 5428 阅读 · 0 评论 -
[AI]Python中的Restful
在当今数字化的时代,网络应用的开发变得越来越普遍,而RESTful(Representational State Transfer)作为一种设计风格和通信协议,为构建灵活、可扩展的网络应用提供了一种优雅的方式。本文将深入介绍RESTful的概念、原则以及它在现代应用开发中的重要性。原创 2023-11-19 21:29:47 · 4208 阅读 · 0 评论 -
[Python学习笔记]multiprocess 多进程间变量共享
在章节中提到了进行 TDengine 数据迁移的 Python脚本。脚本支持多线程或多进程模式。但是使用多进程模式时,会出现问题,如下:脚本虽然正常运行了,但是输出结构中没有打印出进度信息。造成这个问题的原因在于多进程模式变量的共享需要特殊处理。具体处理方法为在调用先声明共享变量,然后在进程中使用。再次运行程序,已经能正常输出结构了。原创 2023-11-17 15:25:59 · 4302 阅读 · 0 评论 -
[Python学习笔记]Python 性能分析
本次使用 Python 的性能分析工具对脚本进行分析,找到优化点。首先介绍两个工具 cProfile 和 snakeviz 对程序性能进行定性分析。cProfile 是 Python 自带的性能分析模块,不需要额外安装,可以统计程序中函数的调用次数和时间。以上命令会运行,对每个函数的调用进行统计,并记录到 log.profile 文件中,方便分析。SnakeViz是一个Python模块,用于可视化Python程序的性能分析结果。原创 2023-11-16 15:39:38 · 4886 阅读 · 0 评论 -
[Python学习笔记]Requests性能优化之Session
Requests 可是说是 Python 中最常用的库了。用法也非常简单,但是想真正的用的好并不容易。下面介绍一个提升性能小技巧:使用 session 会话功能将性能提升3倍。会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 urllib3 的 connection pooling 功能。所以如果你向同一主机发送多个请求,底层的 TCP 连接将会被重用,从而带来显著的性能提升。原创 2023-11-16 12:14:48 · 5061 阅读 · 0 评论 -
TDengine 跨版本迁移实战
TDengine 3.0 已经退出了近一年,目前已经到了 3.2 版本。很遗憾的是 2.x 和 3.x 之间的数据文件不兼容。如果向从 2.x 升级到 3.x 只能选择数据迁移的方式。taosxtaosdump以下演示使用 Python 脚本跨版本迁移数据库,从 3.1 降级迁移到 2.6。原创 2023-11-15 13:14:25 · 5782 阅读 · 2 评论 -
#[量化投资-学习笔记018]Python+TDengine从零开始搭建量化分析平台-正态分布与收益率
正态分布(Normal Distribution)又叫高斯分布、常态分布。通常用来描述随机变量的概率分布。自然界的数据分布通常是符合正态分布规律的,比如说人的身高、体重。但是非自然界数据就不一定了。尤其是经过人为加工过的数据。金融领域大量使用正态分布来计算收益率和风险,虽然因为金融数据厚尾性而不断被人诟病,但是确实也没啥其他的统计方法。在上一章节,已经将回测的结果存入了数据库。本章节将对回测结果进行进一步分析。原创 2023-11-15 11:09:20 · 4448 阅读 · 0 评论 -
[量化投资-学习笔记017]Python+TDengine从零开始搭建量化分析平台-异常处理
一个完成的程序一定少不了对异常的处理,以及错误日志的输出。在之前章节的程序中对这两部分没有进行说明,以下用两个单独的章节进行介绍。原创 2023-11-14 08:40:07 · 4908 阅读 · 0 评论 -
[量化投资-学习笔记016]Python+TDengine从零开始搭建量化分析平台-日志输出
一个完成的程序一定少不了对异常的处理,以及错误日志的输出。在之前章节的程序中对这两部分没有进行说明,以下用两个单独的章节进行介绍。原创 2023-11-14 08:09:07 · 4449 阅读 · 0 评论 -
[量化投资-学习笔记014]Python+TDengine从零开始搭建量化分析平台-Python知识点汇总
以下内容总结了之前章节涉及到的 Python 知识点,看过之前的章节同学,就不用打开了。原创 2023-11-13 13:52:16 · 4590 阅读 · 0 评论 -
[量化投资-学习笔记015]Python+TDengine从零开始搭建量化分析平台-量化知识点汇总
之前的章节介绍了多个技术分析指标(MA、EMA、MACD、CCI、ATR、KDJ),以下进行一个简单的总结。看过之前章节的同学就可以不用打开了。原创 2023-11-13 13:21:09 · 4429 阅读 · 0 评论 -
[量化投资-学习笔记013]Python+TDengine从零开始搭建量化分析平台-策略回测进阶
在上一章节《策略回测》中采用轮询的方式对整个股票池进行了回测。虽然功能已经实现,但是效率确实不高。而且生成的结果也不方便统计。本次在上一章的基础上进行修改,实现两方面的改进:创建子表根据股票代码创建子表,因为之前已经有类似的表名称,可以借用一部分。导出表名和标签,并构建建表语句。导入建表语句函数简介多进程/线程处理结果写入TDengine程序主体MACD交易策略回测程序说明该程序用于进行MACD交易策略的回测。给定一组股票数据,程序会根据MACD指标的金叉和死叉信号进行买入和卖出操作原创 2023-11-12 14:33:52 · 4848 阅读 · 0 评论 -
[量化投资-学习笔记012]Python+TDengine从零开始搭建量化分析平台-策略回测
上一章节中,对平安银行这只股票,按照金死叉策略进行了回测。但通常我们的股票池中有许多股票,每完成一个交易策略都需要对整个股票池进行回测。下面使用简单的轮询,对整个股票池进行回测。以下是部分股票的收益展示。原创 2023-11-12 10:52:40 · 4653 阅读 · 0 评论 -
[量化投资-学习笔记011]Python+TDengine从零开始搭建量化分析平台-MACD金死叉策略回测
在上一章节中结束了如何根据 MACD 金死叉计算交易信号。本次将根据交易信号,模拟交易。更加历史数据对MACD金死叉交易策略进行回测,看一下收益如何。原创 2023-11-11 18:45:20 · 8932 阅读 · 0 评论 -
[量化投资-学习笔记010]Python+TDengine从零开始搭建量化分析平台-MACD金死叉
本次简单介绍 MACD 最常用的用法:金叉和死叉。金叉和死叉是MACD指标中的两个重要信号。金叉是指 MACD 快线(DIF)上穿慢线(DEA)的情况。死叉则是指 MACD 快线下穿慢线的情况。理论上,金叉代表看涨信号,而死叉则代表看跌信号。如果用程序实现就比较简单,就是两个变量的大小变换。macd_line从结果来看,胜率还不错。原创 2023-11-11 17:57:16 · 8335 阅读 · 0 评论 -
[量化投资-学习笔记009]Python+TDengine从零开始搭建量化分析平台-KDJ
技术分析有点像烹饪,收盘价、最值、成交量等是食材;均值,移动平均,方差等是烹饪方法。随意组合一下就是一个技术指标。KDJ又称随机指标(随机这个名字起的很好)。KDJ的计算依据是最高价、最低价和收盘价。K、D、J 是图中的三条线。要计算 KDJ,需要先计算价差 RSV,RSV=((收盘价-最低价)/(最高价-收盘价))*1003 - D看到这个有没有有点眼熟,先求差值,然后做移动平均,然后再二次平均,最后再取差值。是哪个指标呢??答案揭晓:MACD。原创 2023-11-10 08:43:32 · 4463 阅读 · 0 评论 -
[量化投资-学习笔记008]Python+TDengine从零开始搭建量化分析平台-CCI和ATR
将这两个指标放在一起,一方面是因为这两个指标都属于摆动指数,可以反应市场的活跃度。另一方面是因为CCI和ATR与之前提到的EMAMACD布林带的三个指标的计算基础不同。之前的三个指标都是以收盘价作为计算基础,而CCI和ATR是以收盘价、最高价、最低价三个价格最为计算基础。下面分别进行介绍。原创 2023-11-09 09:27:32 · 9010 阅读 · 0 评论 -
[量化投资-学习笔记007]Python+TDengine从零开始搭建量化分析平台-布林带
布林带(Bollinger Bands)也称为布林通道、保力加通道,是由约翰·布林格(John Bollinger)发明的技术分析指标。布林通道通常被用来确认资产价格波动范围。布林通道是由三条平滑的曲线组成的趋势线图表,中线为均线,上/下线为中线±2个标准差。在上一个章节没有自己造轮子,直接使用 Pandas 函数计算 MACD,非常方便的实现了计算和绘图。本次使用更快捷的方式,直接上飞机:使用 AI 来写代码。我在上篇文章介绍了如何使用 DevChat 编写程序。原创 2023-11-08 16:10:05 · 5618 阅读 · 0 评论 -
利用AI快速跨过新手区:用DevChat编写Python程序-CSV导入TDengine
还在用百度搜索编程吗?直接上 AI,帮助小白快速跨过新手区。以下用一个物联网最常见的场景做示例演示如何利用 AI 快速编程。ChatGPT4 是目前最火的 AI 了,但是国内却用不了。不过现在新出的 DevChat 可以让大家尝鲜一番。以下介绍来自Bing AI 聊天的介绍:DevChat是一个开源平台,旨在帮助开发人员更有效地将人工智能集成到代码生成和文档编制中。它提供了一种非常实用和有效的方式,让开发人员与大型语言模型(LLM)进行交互和协作。原创 2023-11-08 12:44:25 · 16380 阅读 · 0 评论 -
[量化投资-学习笔记006]Python+TDengine从零开始搭建量化分析平台-MACD
在上一章节介绍了的计算,本节主要介绍均线的进化形态之一:MACDMACD (Moving Average Convergence / Divergence) 指数平滑移动平均线。MACD 是通过计算不同时间的 EMA 的差值俩判断价格趋势。MACD 包括 3 个值:长短期 EMA 差值:DIF = EMA(close,12)-EMA(close,26) (计算 12 日和 26 日 EMA 均线差值)信号线: DEA = EMA(DIF,9) (计算差值的 EMA 均线)原创 2023-11-06 15:07:40 · 12132 阅读 · 0 评论 -
[量化投资-学习笔记004]Python+TDengine从零开始搭建量化分析平台-EMA均线
在之前的文章中用 Python 直接计算的 MA 均线,但面对 EMA 我认怂了。这次直接使用 Pandas 库的函数,便捷又省事。并且用 Pandas 直接对之前 MA 均线进行改写。我一直同意:I would rather be vaguely right than precisely wrong.原创 2023-10-30 09:36:19 · 9339 阅读 · 0 评论 -
[量化投资-学习笔记003]Python+TDengine从零开始搭建量化分析平台-Grafana画K线图
Grafana 非常人性的提供离 K线图模块, 搭配TDengine 配置简单一键生成。原创 2023-10-26 09:05:11 · 6306 阅读 · 0 评论 -
[量化投资-学习笔记002]Python+TDengine从零开始搭建量化分析平台-MA均线的多种实现方式
MA 均线时最基本的技术指标,也是最简单,最不常用的(通常使用EMA、SMA)。以下用两种不同的计算方法和两种不同的画图方法进行展示和说明。MA 均线指标公式。原创 2023-10-25 16:46:09 · 6168 阅读 · 0 评论 -
[量化投资-学习笔记001]Python+TDengine从零开始搭建量化分析平台-数据存储
从零开始使用 Python 和 TDengine 搭建一个量化分析平台。使用Python进行量化分析,TDengine存储交易数据,Grafana辅助进行数据可视化。本文仅包括如何将CSV格式历史数据高效的写入到TD engine。原创 2023-10-24 12:19:50 · 6635 阅读 · 0 评论 -
Python笔记-从配置读取参数
实用的脚步通常需要一些动态参数,如果参数太多,从命令行传递就太麻烦了。以下示例为从 test.cfg 中读取参数,配置文件为json格式。从配置文件读取,是比较实用的方法。原创 2022-11-26 20:57:51 · 2165 阅读 · 0 评论 -
Python笔记-多进程多线程
日常运维中,经常需要并发来提升工作效率。Python提供了多线程和多进程两种方式。原创 2022-11-26 20:42:28 · 1698 阅读 · 0 评论 -
Python笔记-脚本参数传递
编写Python脚本,经常需要从外部传递参数,此时需要用到 getopt 和 sys。sys.argv[1:] 之后的元素就是我们从程序外部输入的。sys.argv[] 是一个列表,包含命令行所有信息。sys.argv[0] 是被调用的脚本文件名或全路径。参数c后面没有冒号,因此 -c 后参数没有被传递。longopts 长参数,如:–help。shortopts 短参数,如:-h。原创 2022-11-26 19:54:26 · 1994 阅读 · 0 评论 -
Python笔记-Python2和Python3兼容
为保证编写的脚本在Python2 和Python3 下兼容,需要在代码中做版本判断。Python2 与 Python3 在很数据类型、语法上面都有很大区别。原创 2022-11-26 19:33:27 · 2139 阅读 · 0 评论