自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

六月闻君

好好学习,自娱自乐

  • 博客(241)
  • 收藏
  • 关注

原创 MySQL中用with as 解决临时表的问题

写存储过程中,经常需要做过渡的临时表,主要是字段多,但是MySQL不支持,提示1786 - Statement violates GTID consistency: CREATE TABLE ... SELECT. 或者MySQL调整参数。WITH 子句,称为 Common Table Expressions(CTE),是一种在 SQL 查询中创建临时结果集的方法,存在于单个语句的范围内,以便在查询中多次引用。

2024-09-11 15:14:15 326

原创 MySQL 变量查询如何使用索引

在存储过程中,有通过变量进行数据查询,执行时间长,不符和预期,经过分析,发现是有一个变量查询的效率低,不走索引造成的。经过分析,通过使用预处理语句允许你指定查询模板,并在执行时传入参数,才能够使用索引,大幅提高查询效率。

2024-09-11 10:14:20 1233

原创 timedatectl /date /hwclock 命令

timedatectl date hwclock 命令在Linux系统中都用于修改系统时间,但它们在功能、使用方式和适用场景上存在一些区别。

2024-09-11 08:54:45 597

原创 Backtrader实现三层滤网策略‌

例如,在日线图上,当周线趋势向上时,日线图上的下跌可以被视为买入机会。‌第一层滤网‌:在大周期(如周线图)中,使用趋势型指标来判断主要趋势的运行方向,这被称为“市场潮汐”或“大周期的趋势”。从策略角度看,三重滤网,可以做成四重,多重滤网,提高交易的稳定性和可靠性,大大降低交易的频率。还存在另外一个情况,如果股票没有明显的波段,大的趋势,比如601169.SH,那么策略就是在波动中不断交易和亏损。可以看出交易长度短的交易,都是横盘波动时产生的虚假信号,造成频繁交易,频繁交易的持股时长都短,都是亏损交易。

2024-09-03 09:24:53 511

原创 Backtrader 实现和理解海龟交易法

跟海龟交易法,从资金管理,买入/加仓,止盈,止损,四个方面,用backtrader实现,通过两版的代码,优化前和优化后的对比,做全量市场的回测比较,充分理解海龟交易法的理念。

2024-08-26 20:22:58 1059

原创 fastdtw计算两个股票序列之间的相似性(最小距离)

Dynamic time warping:动态时间扭曲 (DTW) 是一种在两个时间序列之间找到最佳对齐的技术,其中一个时间序列可以通过拉伸或收缩其时间轴来非线性地“扭曲”。在语音波形中,每个语音的持续时间和声音之间的间隔是允许变化的,但整体语音波形必须相似。下面做点有趣的测试,用沪深300的指数,测试范围两年的数据,在股票中寻找走势与之相似的股票。既然是时间序列的数据对比,分析相似度,那么当然也可以用于分析两个股票走势的相似度。通过两个图示对比,走势的相似度还是比较接近的,拟合的比较完美。

2024-08-23 11:44:19 358

原创 plt绘图提示:findfont: Generic family ‘sans-serif‘ not found because none of the following families were

缓存字符集文件,fontlist-v330.json ,查询文件中没有显示 SimHei.ttf。由于使用anaconda3 ,在虚拟环境中的字符集路径下,增加SimHei.ttf字符文件。删除 字符集缓存文件 : fontlist-v330.json。fontlist-v330.json ,已经有字体的配置信息了。所有的输出都清理了,再次运行代码,不再报错!,然后在菜单中选择重启内核,清理输出。但是在jupyter中,还是报错。安装 fontconfig。执行代码,还是报错。

2024-08-21 11:33:01 444

原创 Linux 安装TA_Lib采坑记录

重新安装了一个Linux环境,需要重新安装TA_Lib ,忘记了上次如何安装的,花了不少时间。重新记录一下安装过程,和遇到的问题。在Linux环境下,Python == 3.7 ,用pip直接安装TA_Lib主要错误:错误描述如下:检查需要的C++都正常。直接用conda安装直接报错:提示问题,SSL证书问题。关闭证书SSL再次执行,报错:最后通过源文件安装,安装成功。详细记录安装过程。

2024-08-19 16:01:41 417

原创 MySQL 窗口函数OVER实现均线计算

在MySQL数据库中,需要计算均线数据,通过over窗口函数实现。MySQL从8.0开始支持窗口函数,也叫分析函数。窗口函数分为静态窗口和滑动窗口,静态窗口的大小是固定的,滑动窗口的大小可以根据设置进行变化,在当前窗口下生成子窗口。通用的语法格式:核心语句:三个排名函数:聚合函数取值函数在between and 语句中定义,分为两类 rows 和 range:举例说明:说明:当order by后面缺少窗口从句条件,窗口规范默认是rows between unbounded preceding a

2024-08-16 11:06:39 718

原创 MySQL预处理语句(PREPARE)和动态SQL

通过存储过程接收一个字符串形式的SQL条件(where后的条件),并将其直接用于SELECT语句的WHERE子句中,使用预处理语句(PREPARE)和动态SQL来实现这一功能。通过存储过程,将处理结果返回。

2024-08-09 11:16:15 382

原创 Python的并行任务(进程池、线程池)

在Python中,进程(Process)和线程(Thread)是并发编程的两种主要方式,它们各自适用于不同的场景。了解何时使用进程或线程,可以帮助你更有效地设计并发程序。使用内置基本库concurrent.futures来实现并发,简单使用这个模块,包括并行线程和并行进程执行器 。

2024-08-05 19:57:48 1019

原创 理解函数参数中的*(星号)和**(双星号)

序列类型:如‌列表(List)、‌元组(Tuple)、‌字符串(String)等。这些对象内部包含了一系列按顺序排列的元素,可以通过索引访问其中的元素。集合类型:如集合(Set)和‌冻结集合(Frozen Set)。可变数量的关键字参数:在函数定义时,**kwargs可以接受可变数量的关键字参数,参数被封装为一个字典。生成器类型:通过生成器函数或生成器表达式创建的对象,可以逐个生成值。对象,将其元素分配给函数的参数或在列表、元组等数据结构中进行拼接。,将其键值对传递给函数的参数或在字典中进行拼接。

2024-08-05 14:25:44 331

原创 CentOS安装Oracle11g客户端

在centos 环境安装oracle的客户端环境,用rpm包安装环境,访问oracle的数据库。

2024-07-24 14:49:09 397

原创 Anaconda下安装配置Jupyter

Linux Anaconda 下安装配置jupyter ,参数设置,全流程。

2024-07-22 17:20:07 1198

原创 MySQL 删除重复记录

SELECT语句复制表可能会遇到问题,因为这种操作会生成一个新的事务,而这个事务在复制环境中需要保持一致性。如果源表中包含有GTID信息的列,或者表结构中包含某些特性(如自动递增的ID),这种复制方式可能会影响GTID的一致性。一个表中有600多万数据,其中在字段ts_code和trade_date上有索引,根据ts_code和trade_date 综合查询,有17多万的重复记录。如果有足够的权限,并且在复制完成后能够确保GTID的一致性,可以在复制期间暂时禁用GTID。千万不能用 in 删除,太慢!

2024-07-19 16:46:47 320

原创 impdp导入数据ORA-39142: 版本号 5.1不兼容错误

源数据库12.2导出的dmp文件版本是5.1,目标数据库的版本12.1,dmp版本位4.1,因此在导入时出现ORA-39142: 版本号 5.1 不兼容。从源数据库中重新增加version参数的dump文件,再次导入到12.1的数据库中,开始导入数据正常,不再报错ORA-39142。估计原因是在导出的时候,统计信息就没有能够正常的导出,在导入的时候,就发生了致命错误。是索引的统计信息,可以暂时不予理会,数据和表结构能够正常导出,就可以了。

2024-06-28 20:00:44 754

原创 Backtrader 量化回测实践(7)——在jupyter中执行bt的samples

Backtrader提供了大量的测试用例,在samples目录下,测试程序主要都是用argparse解析参数,但是不能在jupyter中直接执行。找到一个解决方法,可以方便在jupyter中执行samples中的示例。

2024-04-11 09:07:31 466

原创 Backtrader 量化回测实践(6)——量化回测评价工具Quantstats

quantstats主要有三个功能,对每个功能进行解读和测试,提供测试用例: 1.统计功能,计算各类性能指标,夏普率,胜率,波动率等; 2.绘图功能,可视化性能指标,最大回撤,滚动统计,月度回报率等; 3.报告功能,生成度量报告,批量绘图,创建HTML报告;

2024-04-09 10:29:57 2565

原创 Windows下Oracle表死锁处理过程

在Windows下Oracle锁表后的处理过程,回顾Oracle锁的定义。

2024-04-07 15:26:22 1073

原创 Backtrader 量化回测实践(5)—— Datafeed 增加列数据

在官网上的拓展示例是 GenericCSVData ,没有拓展pandas数据加载的示例,实际中数据库读取到pandas中,从pandas中加载到Cerebro中,需要解决pandas拓展Cerebro的数据加载的默认列。

2024-03-22 10:13:44 721

原创 Backtrader 量化回测实践(4)—— 投资组合股票回测同一策略

需要将一组股票作为一个投资组合,验证一个策略。观察操作是否具有一致性。比如在某一段时间,组合中的买卖操作,有一定的相似度。对所有股票依次做单独的策略回测,不好对比,不好直观验证策略的优劣。基于backtrader,编写多股票同时回测程序。以MACD简单策略演示。需要关注理解策略中的四个关键点 。

2024-03-15 08:50:56 1609

原创 落入datetime.date 和 numpy.datetime64 的使用大坑

梳理 datetime.date / numpy.datetime64 / pandas.Timestamp 的特点,关系和区别 ,不同格式之间日期转换。

2024-03-08 10:53:30 2781

原创 Python遍历文件夹包括特定字符的文件名和路径

遍历文件夹和子文件夹,并找出文件名中包含特定字符串 。

2024-03-07 11:00:34 658

原创 用pandas高效合并文本文件

通过pandas合并两个文本文件,按文本文件中的字段进行合并,组合成新的文本文件。用pandas的 merge方法,简洁流畅,效率高。

2024-03-07 08:26:35 428

原创 DataFrame空值的判断和处理

DataFrame查询空值的判断和处理的问题,对dataframe的索引查询定位的理解有进了一步。

2024-03-06 09:47:04 1314

原创 Backtrader 量化回测实践(3)—— 主要对象理解

在策略中使用的大部分数据形式:包括Indicator 、signal 、逻辑操作符、数学计算、切片访问的研究测试。重新回顾一下使用的主要对象,理解对象的性质,如何在实践中应用 。

2024-03-04 11:19:22 984

原创 Python使用pymysql和cx_Oracle插入数据的对比

使用Python向MySQL和Oracle数据库插入数据,常用的数据类型字符串,日期,数字,insert命令的拼接异同之处进行对比。

2024-02-29 07:58:59 543

原创 Python多层嵌套的dict递归解析

遇到多层嵌套的dict ,如何能解析为只有一维的dict ,方便后续数据处理。

2024-02-24 15:59:52 559

原创 mplfinance 使用make_addplot做复杂股票走势图

关于make_mpf_style()函数中的marketcolors参数。不是ndarray类型,直接把报错,折腾了半天才找到原因!

2024-02-22 15:04:11 1684

原创 Backtrader 量化回测实践(2)—— 16个主要K线形态定义(下)

K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下:光头光脚大阳线、光头光脚大阴线、光头阳线、光头阴线、光脚阳线、光脚阴线、大阳线、大阴线、十字线、T字线、倒T字线、一字线。以上一共16个,应该是常见的K线主要形态。在策略中需要通过程序定义K线的形态,根据网上的介绍和定义,用dataframe分析定义形态。

2024-02-22 11:31:36 546

原创 Backtrader 量化回测实践(2)—— 16个主要K线形态定义(上)

K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下:光头光脚大阳线、光头光脚大阴线、光头阳线、光头阴线、光脚阳线、光脚阴线、大阳线、大阴线、十字线、T字线、倒T字线、一字线。以上一共16个,应该是常见的K线主要形态。在策略中需要通过程序定义K线的形态,根据网上的介绍和定义,用dataframe分析定义形态。

2024-02-21 15:22:54 815

原创 Backtrader 量化回测实践(1)—— 架构理解和MACD/KDJ混合指标

按Backtrader的架构组织,整理了一个代码,包括了Backtrader所有的功能点,原来总是使用SMA最简单的指标,现在稍微增加了复杂性,用MACD和KDJ两个指标综合作为操作指标,因此买入卖出操作就比较少,还有就是买入的时候,采用了限价单,整个的交易频率不高,所以图示交易点比较少,也符合多看少动的交易理念。通过代码结合架构图,可以充分去理解整个Backtrader的功能设计思路,前面一个功能一个功能学习理解,现在把所有的功能综合在一起进行展示,小有成就感。

2024-02-20 14:31:41 1626

原创 Backtrader 文档学习- 整体架构功能分析理解

backtrader是一个用于开发和执行交易策略的Python框架。它提供了一套完整的工具和功能,使得用户可以方便地进行策略回测、实盘交易以及数据分析。backtrader的入口为Cerebro类,该类将所有输入(Data Feeds)、策略 (Strategy)、观察者(Observers)、策略评估(Analyzers) 、经纪人(Broker)、订单(Order)、交易(Trade)和日志记录(Writers)整合起来,实现回测以及交易,并返回结果和图表。

2024-02-18 11:39:52 3408

原创 交易中的胜率和盈亏比估算

通过胜率和盈亏比定义,模拟计算实际交易中的两个指标的影响。

2024-02-12 18:46:22 1056

原创 Backtrader 文档学习- Plotting -Plotting on the same axis

在同一轴上绘图

2024-02-08 15:29:35 614

原创 Backtrader 文档学习- Plotting - Plotting Date Ranges

BT可以使用策略实例中保留完整长度的时间戳数组的索引,也可以使用实际的datetime.date 或datetime.datetime 实例来限制需要绘制时间段范围数据。

2024-02-08 14:25:44 620 1

原创 Backtrader 文档学习- Plotting

plot 绘图功能,绘图选项参数,控制对象的参数,plotscheme 对象。

2024-02-08 12:15:53 1329

原创 Backtrader 文档学习- Sizers

介绍Sizer对象,从Cerebro和Strategy中可以重定义,将Sizer用于仓位控制,重写Sizer方法。Sizer的参数说明。

2024-02-06 14:56:19 1050

原创 Backtrader 文档学习- Observers - Reference

Observers - Reference参考10个方法:Benchmark,Broker,BuySell,DrawDown,TimeReturn,Trades,LogReturns,LogReturns2,FundValue,FundShres

2024-02-06 10:28:31 1045

原创 Backtrader 文档学习- Observers - Benchmarking

Observers 观察者用于跟踪交易执行的情况,和 Analyzers 分析器的主要区别:Observers 的lines特性,它记录每个值,更适合绘图和实时查询,当然会消耗更多的内存。Analyzers 通过get_analysis方法返回一组结果,实现可能不会在运行结束之前提供任何结果,所以Analyzers记录最终结果,内存消耗小。Observers 按时间周期,投资组合/单个数据源 ,对比交易效果的示例。

2024-02-05 16:08:49 1092

Backtrader 文档学习-Target Orders

Value 计算方法,用Excel模拟

2024-01-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除