requests是一个流行的Python库,用于发送HTTP请求。它提供了简洁而友好的API,使得发送HTTP请求变得简单而直观。requests具有许多强大的功能,适用于各种HTTP请求场景,包括GET、POST、PUT、DELETE等。 目录 requests库的主要特点和使用示例 requests相关配置项 什么时候设置stream=True 如何设置连接池 HTTPAdapter详解 max_retries=3时多久会报超时 requests库的主要特点和使用示例 安装:你可以使用pip安装requests: pipinstallrequests 发送GET请求: ...

Restful接口是TDengine最常用的接口,仅次于JDBC。TDengine支持HTTP和HTTPS,但通常情况下,大家不想搞证书,又在内网环境中,采用HTTP方式比较多。但HTTP是明文传输,只要抓个包就知道账号密码了。因此需要对用户名和密码进行加密。 TDengine支持Basic认证与自定义认证两种机制,下面进行简单介绍。 目录 Basic 示例 创建测试用户 对账号密码进行Base64加密 使用Basic方式查询数据库 自定义Token 示例 获取自定义Token并查询 特殊字符处理 批量查询Token脚本 Basic Basic比较简单,就是对...

之前的章节介绍了多个技术分析指标,以下进行一个简单的总结。看过之前章节的同学就可以不用打开了。 技术指标 MA EMA MACD CCI ATR KDJ MA 最基础的技术指标,对一段周期内的收盘价进行简单平均,是一切指标的基础。 defcalc_ma(period,ma): ma_n=[] period=period-1 foriinrange(len(ma)): ifi>=period: ma_n.append(np.mean(ma[i-period:i+1])) else: ifi0: ma_n.append(ma[i]) else: ma_n.append(np.me...

Requests可是说是Python中最常用的库了。用法也非常简单,但是想真正的用的好并不容易。 下面介绍一个提升性能小技巧:使用session会话功能。以下是Requests官网的介绍: 会话对象让你能够跨请求保持某些参数。它也会在同一个Session实例发出的所有请求之间保持cookie,期间使用urllib3的connectionpooling功能。所以如果你向同一主机发送多个请求,底层的TCP连接将会被重用,从而带来显著的性能提升。 目录 0.优化效果 1.优化过程 1.1.优化前 1.2.优化后 2.网络连接数对比 2.1.优化前 2.2.优化后 3.ses...

TDengine3.0已经退出了近一年,目前已经到了3.2版本。很遗憾的是2.x和3.x之间的数据文件不兼容。如果向从2.x升级到3.x只能选择数据迁移的方式。目前数据迁移有三种方法: 使用官方推荐工具taosx。 使用taosdump工具。 自己写程序。 迁移方式 优点 缺点 taosx 迁移速度快,不占用本地空间 只有企业版支持 taosdump 社区版具备 占用大量本地空间,导出速度慢,大数据量导出数据不全 自己写程序 灵活、可定制 费人力 以下演示使用Python脚本跨版本迁移数据库,从3.1降级迁移到2.6。 目录 源数据库 目标数据库 迁...

一个完成的程序一定少不了对异常的处理,以及错误日志的输出。 在之前章节的程序中对这两部分没有进行说明,以下用两个单独的章节进行介绍。 [量化投资-学习笔记017]Python+TDengine从零开始搭建量化分析平台-异常处理 日志输出 logging是Python标准库中的一个模块,用于记录应用程序的事件和错误信息。它可以帮助开发人员在应用程序中实现灵活的日志记录,以便更好地了解应用程序的运行情况。模块提供DEBUG、INFO、WARNING、ERROR、CITICAL等多种日志级别。 logging的运行效率高于print 简单应用: importlogging importreq...

以下内容总结了之前章节涉及到的Python知识点,看过之前的章节同学,就不用打开了。 1.Restful访问TDengine数据库 知识点: 发送给TDengine的HTTPBody里面是SQL明文,请求方式为POST。 TDenging返回的结果是JSON格式。 如果写入的数据包含中文,那么必须对SQL进行encode("UTF-8")。 defrequest_post(url,sql,user,pwd): try: sql=sql.encode("utf-8") headers={ 'Connection':'keep-alive', 'Accept-Encoding':'gzip...

在之前的MACD章节,介绍了MACD曲线的绘制。本次简单介绍MACD最常用的用法:金叉和死叉。 金叉和死叉是MACD指标中的两个重要信号。 金叉是指MACD快线(DIF)上穿慢线(DEA)的情况。死叉则是指MACD快线下穿慢线的情况。理论上,金叉代表看涨信号,而死叉则代表看跌信号。 如果用程序实现就比较简单,就是两个变量的大小变换。 defcheck_macd(macd_line,signal_line): crossing_points=[] foriinrange(1,len(macd_line)): ifmacd_line[i]>signal_line[i]andmacd_li...

在上一章节MACD金死叉中结束了如何根据MACD金死叉计算交易信号。 目录 脚本说明文档(DevChat生成) MACD分析脚本 安装依赖库 参数配置 查询与解析数据 计算MACD指标 判断金叉和死叉 计算收益 绘制图形 运行脚本 本次将根据交易信号,模拟交易。更加历史数据对MACD金死叉交易策略进行回测,看一下收益如何。 下面进行一个简单的实现: 定义一个资金池 当出现买入信号且无仓位时,全仓买入。买入价为第二日收盘价(其实以第二日开盘价计算比较合理)。 当出现卖出信号且有仓位时,清仓。卖出价为第二日收盘价(同样,也是以第二日开盘价更合理) 以下程序未计算印花税等交易费用。 ...

正态分布(NormalDistribution)又叫高斯分布、常态分布。通常用来描述随机变量的概率分布。 自然界的数据分布通常是符合正态分布规律的,比如说人的身高、体重。但是非自然界数据就不一定了。尤其是经过人为加工过的数据。 金融领域大量使用正态分布来计算收益率和风险,虽然因为金融数据厚尾性而不断被人诟病,但是确实也没啥其他的统计方法。 在上一章节《MACD金死叉策略回测》,已经将回测的结果存入了数据库。本章节将对回测结果进行进一步分析。 目录 获取历史回测数据 计算正态分布 绘制图形 进阶 TIPs 非题外话 题外话 获取历史回测数据 通过查询TDengine数据库,我们可以轻松...

在TDengine跨版本迁移实战章节中提到了进行TDengine数据迁移的Python脚本。脚本支持多线程或多进程模式。 但是使用多进程模式时,会出现问题,如下: 多线程模式: python3datac_com23v2.py-p [2023-11-1713:43:00,526]dataC/multi_thread(1975/MainThread)INFO--------------------begin------------------ [2023-11-1713:43:00,527]dataC/multi_thread(1975/MainThread)INFO [2023-11-171...

在上一章节《策略回测》中采用轮询的方式对整个股票池进行了回测。虽然功能已经实现,但是效率确实不高。而且生成的结果也不方便统计。 本次在上一章的基础上进行修改,实现两方面的改进: 采用多线程的处理方式,提高处理效率 将计算结果存入TDengine数据库,方便后期统计。 目录 数据库初始化 数据库建模 创建子表 函数简介 多进程/线程处理 结果写入TDengine 程序主体 MACD交易策略回测程序说明 程序功能 程序依赖 使用方法 程序细节 数据库初始化 数据库建模 数据库backtrade专门存储回测数据。 表records用于存储每次回测内容和时间,相当于...

上一章节《MACD金死叉策略回测》中,对平安银行这只股票,按照金死叉策略进行了回测。 但通常我们的股票池中有许多股票,每完成一个交易策略都需要对整个股票池进行回测。 下面使用简单的轮询,对整个股票池进行回测。 计算单只股票的策略收益,返回收益率。 defbacktrader(fcode): sql_query=f"SELECTtdateasts,closeFROM{db_name}.{table_name}WHEREfcode='{fcode}'" result=get_request(sql_query) close_prices=[row[1]forrowinresult] macd_...

一个完成的程序一定少不了对异常的处理,以及错误日志的输出。 在之前章节的程序中对这两部分没有进行说明,以下用两个单独的章节进行介绍。[量化投资-学习笔记016]Python+TDengine从零开始搭建量化分析平台-日志输出 异常处理 Python通常使用try..except和防御式编程来处理异常。 try: 可能会出现异常代码 exceptErrorType1: 处理ErroType1类型异常 exceptErrorType2: 处理ErroType2类型异常 else: 如果没有异常,执行的代码 finally: 不管是否有异常,都执行的代码。 else和finally不是必须的...

在之前的文章中用Python直接计算的MA均线,但面对EMA我认怂了。Python+TDengine从零开始搭建量化分析平台-MA均线的多种实现方式 高数是我们在大学唯一挂过的科。这次直接使用Pandas库的DataFrame.ewm函数,便捷又省事。并且用Pandas直接对之前MA均线进行改写。 我一直同意:Iwouldratherbevaguelyrightthanpreciselywrong. EMA公式: EMA(t)=平滑常数当前价格+(1-平滑常数)EMA(t-1) 目录 1.获取数据 2.计算均线 3.绘制图形 题外话 1.均线的周期 2.均线的使用 1.获取数...

数据完整性和一致性校验是迁移数据后的必要步骤,TDengine数据迁移也是如此。但通常TDengine存储的都是海量数据,动辄几百亿条数据,如果像手工对比差异,工作量是非常巨大的。 以下脚本实现了对两个数据库记录数的对比。主要实现方式为: 读取超级表信息 读取时间段信息 通过selectcount()from超级表groupbytbnamewherets>=''andts<'';查询子表记录数 对比源和目标库的记录数是否一致 输出对比结果。 为保证兼容2.x和3.x,数据库查询采用Restful方式。 脚本使用方法如下: 将要对比的超级表名称放入相同目录的stblist文件...

之前简单介绍过了Linux下的工具集bcc-tools, 本次详细的介绍一下和文件系统相关的一些实用工具,以下工具可以快速的帮我们定位文件系统相关问题,比如: 当前系统在读写哪些文件? 哪些文件读写耗时比较长? 哪些进程在频繁创建删除文件? 上图为bcc 目录 filelife【文件寿命跟踪】 fileslower【读写慢文件检测】 filetop【文件读写数据量TOP】 vfscount【VFS函数调用次数TOP】 vfsstat【VFS读写检测】 xfsslower/ext4slower【XFS/EXT4慢文件检测】 filelife【文件寿命跟踪】 该工具通过跟踪vsf_...

在上一章节介绍了EMA均线的计算,本节主要介绍均线的进化形态之一:MACD MACD(MovingAverageConvergence/Divergence)指数平滑移动平均线。MACD是通过计算不同时间的EMA的差值俩判断价格趋势。 MACD包括3个值:长短期EMA差值:DIF=EMA(close,12)-EMA(close,26)(计算12日和26日EMA均线差值)信号线:DEA=EMA(DIF,9)(计算差值的EMA均线)柱状图:OSC=DIFDEA 通过以上公式,可以看出MACD可反应如下信息: DIF>0价格上涨,DIF<0价格下跌 DEA>0价格加速上涨,DE...

提起文件差异对比,最常想到的是diff,如果内容少还好,内容多的话就不太友好,其实Linux下还有一个小工具能够更加方便的对比两个文件。下面分别进行介绍: 目录 diff comm 只查看file1中差异文件 只查看file2中差异文件 查看两个文件相同部分 先构造两个文件: foriin{a..z};doecho$i;done>file1 foriin{h..z};doecho$i;done>file2 foriin{1..5};doecho$i;done>>file2 diff 先看下命令的说明: diffcomparefileslinebyli...

  zwmX4WA4Dykt   2023年11月19日   40   0   0 DBAlinuxdba运维运维linux

还在用百度搜索编程吗?直接上AI,帮助小白快速跨过新手区。以下用一个物联网最常见的场景做示例演示如何利用AI快速编程。 ChatGPT4是目前最火的AI了,但是国内却用不了。不过现在新出的DevChat可以让大家尝鲜一番。 以下介绍来自BingAI聊天的介绍: DevChat是一个开源平台,旨在帮助开发人员更有效地将人工智能集成到代码生成和文档编制中。它提供了一种非常实用和有效的方式,让开发人员与大型语言模型(LLM)进行交互和协作。DevChat旨在超越简单的代码自动完成和对代码片段的有限操作,使您的编码生活更轻松。 不是我懒,既然用AI,就用到底。 目录 0.环境准备 0.1...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~