- 博客(804)
- 资源 (16)
- 收藏
- 关注

原创 Andy系列文章序
说明博文写的面比较杂,这里做一个汇总梳理1 Python实现决策树更确切的说是「Python实现树族算法系列」。使用Python实现CART决策树,并基于此实现GBDT,Random Forest , XGBoost等模型开始页面:Python实现决策树(系列文章1)–从最简单的算法开始2 Python 函数字典系列这里指的是一种自定义的函数方法。将函数都作为某个字典可以引用的键值,然后可以使用参数化的方法调用链条比较长的函数。未来这部分会打包,以包装其他普通函数的方式来充实里面的函数。
2020-06-07 22:39:33
931
2
原创 【最后203篇系列】006 -使用ollama运行deepseek-r1前后端搭建
这块已经不算新内容了,年前搭完了后端(ollama),本来想早点分享的,但是当时的openwebui有点不给力,有些地方不适配,然后配置项找不到。所以前端没搭好,也就不完整:只能通过命令行或者接口调用,可用性、体验感不强。今天看到别的文章推荐了chatbox,试了一下还是挺方便的,所以就顺带补完。
2025-02-03 20:56:35
357
原创 【最后203篇系列】004 -Smarklink
是一个非常有挑战性但也非常灵活的选择。通过 Tornado 的异步特性和强大的编程能力,你可以实现非常精细的控制,满足特定的业务需求。
2025-02-02 10:48:18
892
原创 【最后203篇系列】007 使用APS搭建本地定时任务
本次使用APS搭建本地定时任务的目的是为了简化实验性质的定时任务,通过在git项目下进行编辑任务脚本和执行任务清单,而运行容器本身会周期性的自动拉取代码,然后按照任务清单执行。执行过程采用多线程方式,任务的负载通常都不高。整体设计上,复杂和繁重的任务会包在微服务中,定时任务主要是向这些微服务发起触发动作。通常,微服务收到触发元信息后进行自动的任务/数据拉取处理,处理完毕后通过webhook将结果持久化,或进一步发起其他的触发动作。
2025-01-29 19:59:37
327
原创 【最后203篇系列】005 -QTV200 Online
借着春节休假,把这部分完工,然后2025年将正式的把量化研究的成果进行产品化输出。首先,我会将策略的执行从脚本挪到服务。做法是将策略的逻辑放在微服务里,作为一个接口,而由sniffer来触发策略执行。我想这样策略不会因为任务太多而搞丢或者搞乱。之前QTV100的代码,我已经不知道放在哪了,在运行,但是我都无法去维护。而无数个微服务,哪怕是老版的,我也可以很容易找出来。也就是从"拉"式转为"推"式。其次,使用数据库来支持策略的断点保存。
2025-01-29 16:31:24
1017
原创 【最后203篇系列】003 - 填坑DogPile
可以在set_value时指定超时时间,也可以在之后设置expire时间。然后还可以进行增量计数,这些都是redis最常用的功能。再也不用dogpile了,实在很坑。我已经懒得再去找为什么了,反正用的是set和get,我不知道为什么这样。找了很久,发现是Dogpile的问题:数据还在,但是结构变了。问题现象:一个程序获取拎一个服务的缓存时,数据格式报错。也不知道咋回事,怎么坑这么多。其实这样的工具我早就自己做了…只要再加一个命名工具就好。,再次获取缓存时结果是。
2024-12-25 22:48:32
241
原创 【最后203篇系列】001 - 2024回顾
所以在这个过程中,我的文章基本上完全是原创,也非常强调落地与工程化。在不断写作的过程中,我也得到了许多好处,教学相长的感觉。不过,万事都有个尽头,我给自己一个小目标:1000篇博客。在接下来的1~2年内,我会完成这个目标。内容,还是以我自己的体会、实践为主,如果有人觉得有用固然好,自己写写也挺享受的。
2024-12-23 22:28:16
770
原创 Python Tips6 基于数据库和钉钉机器人的通知
起因是我第一版quant程序的短信通知失效了。最初认为短信是比较即时且比较醒目的通知方式,现在看来完全不行。结论:不再采用短信方式,而是使用机器、邮件的方式通知。
2024-10-02 19:19:35
779
原创 Python 图算法系列29-大规模图关系建立-step1导入数据
将数据保存为csv形式,大致的格式如下。对于节点来说, ID和LABEL是必须的。ID可以简单理解为数据的主键,LABEL则是数据的表(Table)或集合(Collection)。对于边来说, STARD_ID、END_ID、TYPE构成了一条边,STARD_ID和END_ID是起点和终点,需要注意的是,
2024-09-23 18:33:15
752
原创 建模杂谈系列256 规则函数化改造
所以,将原来的修饰器改一改,将节点的依赖关系在启动修饰器的时候解释。函数可以在修饰器下临时定义,也可以引用已经编辑好的。现在已经具备了使用形式化参数(如。
2024-09-16 17:56:53
856
原创 Python 全栈系列271 微服务踩坑记
Tornado:更适合专注于长连接和实时通信的场景,原生支持这些特性。FastAPI:更适合快速构建高性能API,也可以支持长连接,但需要依赖底层的异步框架。
2024-09-14 00:29:53
1304
原创 Python 全栈系列269 使用ORM转移数据
继续实践ORM的使用现在看起来,选择ORM的确是更好的,它让代码看起来更清晰了,效率上也基本能够保持。
2024-09-13 00:05:18
559
原创 Python 全栈系列268 数据库浅析
数据是数据库的内容,数据库负责存储、管理和组织这些数据。数据库为数据的存储提供了结构化的环境,并使数据的访问、管理和处理变得更加高效和安全。通过数据库系统,用户可以有效地管理大量的数据,并从中提取有价值的信息,从而支持各种应用和决策过程。人与数据库的交互方式多种多样,主要通过图形化工具、SQL 查询、编程语言、REST API 和自动化脚本等方式进行。选择哪种方式取决于用户的需求、技能水平和使用的场景。SQL类数据库的好处是普及率高,使用较为简单。在处理结构化数据时效率比较高,使用起来也比较简单。
2024-09-09 18:02:52
2355
原创 Python 算法交易实验88 QTV200日常推进-关于继续前进的思考
自顶向下,自底向上过去的很多行为是自底向上的,现在则是自顶向下。过去的经验告诉我,final solution 会在这个过程中产生。两种方向的探索,会在中间的某一个部分融合,达到一个兼顾、平衡的体系。Go!Go!Go!
2024-09-08 00:03:04
1464
2
原创 Python 全栈系列267 telegraf、influxdb和grafana
Telegraf 是一个灵活且功能强大的数据收集代理,通过其丰富的插件系统,可以从各种数据源收集数据并发送到多种目标系统。它的轻量级和高性能使其成为监控、日志管理、物联网数据收集等场景中的理想选择。尤其是与 InfluxDB 结合使用时,它可以组成一个强大的时序数据收集和分析系统。Prometheus更适合实时监控和报警,尤其在云原生和微服务架构下的监控非常流行。InfluxDB则是一个通用的时序数据库,适合需要持久化、复杂分析、事件和日志处理的场景。
2024-09-05 23:40:10
1866
1
原创 建模杂谈系列252 规则的串行改并行
提到规则,还是需要看一眼RETE算法:Rete算法是一种用于高效处理基于规则的系统中的问题的算法,广泛应用于和。它的设计目的是在大量规则和数据的组合中快速找到满足特定规则条件的模式。
2024-09-05 17:22:11
366
原创 Python 算法交易实验87 QTV200日常推进-沪深300的交易量统计
讲到,就全市场的交易量来看,近3年也看不出很奇怪的地方;因此,交易量[支持度]不足而导致的策略失灵似乎也说不通。计算多个连续周期的变异系数(CV)可以帮助分析数据在不同时间段内的波动情况。假设你有一段时间序列数据,并希望按月、季度或其他周期计算CV。下面是步骤和一个简单的示例。
2024-09-04 23:47:02
776
原创 建模杂谈系列253 序列突变点的判定
1 这种模型可以推断看不见的事实2 matplotlib用好了也可以画出很好看的图注意:理论上,pymc是可以借用显卡计算的。只不过之前它的后端比较奇葩,现在可能失传了。然后我不太清楚的是现在怎么和显卡挂上,单靠cpu只能做一些小规模的计算。
2024-09-02 22:03:28
544
原创 Python 全栈系列266 Kafka服务的Docker搭建
在大量数据处理任务下的缓存与分发这个算是来自顾同学的助攻+1,我有点java绝缘体的体质,碰到和java相关的安装部署总会碰到点奇怪的问题,不过现在已经搞定了。测试也接近了kafka官方标称的性能。考虑到网络、消息的大小等因素,可以简单认为kafka的速度是10万/秒级的。
2024-09-01 23:30:57
858
原创 Python 算法交易实验86 QTV200日常推进-获取A股日交易额并统计
上一篇说到,交易量可能可以作为策略规则的支持度分析,但是(我现在还不想付费买数据)现成的接口似乎并没有这样的统计。获取某一只股票的日交易数据是相对简单的,市场上也就不到5000只的股票,总数据量应该也不会超过18M(5000*3000)。所以可以获取全市场的日数据,然后自己汇总。
2024-09-01 17:40:25
1697
原创 Python一些可能用的到的函数系列131 发送钉钉机器人消息
来自顾同学的助攻钉钉机器人可以用来发送一些重要的系统消息,例如磁盘将满等等。原本还可以有更强的功能,就是监听群里的消息,然后做出反应,不过这个好像要买企业版,贵的毫无意义。钉钉发消息有几种模式,一种是按关键字过滤的,还有一种是按签名发送的。这次顾同学帮我梳理了按签名发送的函数。
2024-09-01 11:44:19
462
原创 Python 算法交易实验85 QTV200日常推进-钳制指标与交易量
继续保持思考与尝试最近挺有意思的,碰到很多技术上的问题,其解决方案都类似“阴阳两仪”的概念。"阴阳两仪"是中国古代哲学中的一个重要概念,源自《易经》(又称《周易》)。它是对宇宙间最基本对立统一规律的概括,用以描述事物存在的两种基本状态或属性。阴阳最初是指日光的向背,向日为阳,背日为阴。后来,阴阳的概念被广泛应用于自然界和社会生活的各个方面,成为解释自然现象和社会现象的一种基本理论。阴阳两仪认为,宇宙间的一切事物都是由阴阳两种对立而又相互依存、相互转化的力量构成的。
2024-08-31 22:55:18
1416
1
原创 Python 全栈系列265 使用ORM、Kafka、Apscheduler实现任务的并发处理
这种实现方式还是比较直观的,通过类似DBeaver之类的终端连接上数据库后,我们可以清楚的看到源数据,也可以看到随时间推移,不断的有处理好的数据存在结果数据库。1 ORM可以挂clickhouse, 这样存储所占的空间更小,在后续的提取、统计数据时更快。但需要验证的是clickhouse的where in 效率。2 ORM是可以批量存数的,这个是稍微靠后才发现的。3 FastAPI + APScheduler + Celery + Dash 调度。
2024-08-30 13:29:35
1934
原创 建模杂谈系列248 使用pydantic进行实体识别数据转换
实体识别的数据标注方式和传统的机器学习0/1标注的方法差别比较大,一般采用标注工具,如LabelStudio来对原始数据进行打标,然后转换为标准的可训练模式;模型训练后,对数据进行预测,结果仍然需要重新转为LabelStudio的格式,方便检查。LS在过程中起到的作用非常大,有许多高级功能值得探索和学习。以下是我快速看了一遍之后的总结理解label studio1 general5 webhooks回到本篇的内容:解决pydantic与实体识别模型之间的关联。
2024-08-22 15:41:04
849
原创 Python 全栈系列264 使用kafka进行并发处理
暂时考虑的场景是单条数据处理特别复杂和耗时的场景。场景如下:要对一篇文档进行实体处理,然后再对实体进行匹配。整个处理包成了服务,在单线程处理增量的时候非常正常,但尝试进行并行调用的时候出现了问题。每次报错的时候都是显示,感觉像是服务端连接的问题。由于每一部分都可能是瓶颈,我没(时间)法准确定位问题所在,很有可能是同时起了5个实体识别,GPU的抢占导致的问题(负载经常在100%)。所以要解决的问题是:在保证逻辑正确的情况下,且有大量miss的情况下,如何尽快的完成业务上的任务。
2024-08-21 23:30:30
1076
5
原创 Python 算法交易实验83 QTV200日常推进-自限性思考
SMA的实验做完了,我特定把近3年和近1年的表现拉出来。比较让我惊讶的是,近3年几乎没有盈利的策略机会,这和qtv100过去一年的经历类似。所以有就一个不得不面对的问题,如何让策略在不同的市场状态下茁壮成长或生存?
2024-08-19 00:14:17
359
原创 Python 算法交易实验82 QTV200日常推进-重新实验SMA/EMA结果分析
尽量把目标聚焦到这里虽然我很想一次性把qtv搞好,不过现实通常会有很大的制约。总之,把注意力不断集中到qtv,直到完全胜利。
2024-08-18 18:50:36
695
原创 Python 全栈系列263 简易资源监控
开始比等待强这块其实我也不太熟,而且我也知道应该有更专业的做法其实连grafana我都准备好了,prometheus的镜像也准备好了,但是还没时间去细细弄。我想先快快整一版够用的(能让我依据这个数据进行调度)就行。
2024-08-18 00:23:36
498
原创 Python 全栈系列261 使用apscheduler
对于静态任务来说,一般可以事先分好大小均匀的若干block任务,这时候比较强调使用分布式系统进行快速处理;对于动态任务来说,主要按时间+区块大小划分。对于小的应用场景而言。
2024-08-18 00:09:28
359
原创 Python 全栈系列262 使用sqlalchemy(clickhouse)
再补充一篇。之前连不上的原因也挺搞笑,大概是deepseek把我带偏了,应该是但是它教我关键是这个包似乎还真的存在…
2024-08-17 22:45:09
695
原创 Python 算法交易实验81 QTV200日常推进-重新实验SMA/EMA/RSI
在kafka的过程中,对性能比较关注,实测下来发现json序列化的开销实在是很大。在消息的传输过程中,为了通用性,我对数据都进行了json传输,时间占比在整体80%以上。特别是从结果队列里取数,一条一条的。还挺理想的,8个核 ~ 20 worker,在睡一觉之后,大约完成了 10%的任务。另外注意到租用机的数据读取时间是2秒,比我的主机慢了一倍。我启动了周期任务,10秒一次,最多允许20个任务实例,且超时任务最后会合并(为1次)。有意思的是,我问了下deepseek,如果没有骗我的话,aps默认是线程池。
2024-08-17 11:12:39
1075
原创 Python 全栈系列260 使用sqlalchemy
所以,在IO端我一定不要害怕效率问题,而且实际上,并没有那么糟。sqlalchemy是ORM工具,这是典型的One思维工具。如果使用sqlalchemy ,而不是直接使用pymysql,在操作大量数据的时候,性能会下降多少。
2024-08-11 22:13:27
1140
原创 Python 算法交易实验80 QTV200日常推进-目标估算
业务目标在先,月利3%是第一个目标。虽然日常有在常规推进,但目标是什么?现在做的是什么?与目标的关联是什么?业务上讲,如果月利能够达到3%(几何平均),上下波动不超过1%,就算达标了(2%~4%)。考虑到金融领域有不可测风险,所以资金还会分摊到3个月。例如,假如总投资资金是30万,那么每个月的最大投资金额是10万。这样即使遇到大跳水,问题也不大。目标达到的话,10万本金每月的盈利是3000, 按复利计,24个月就会double,我觉得已经足够理想。假设投资90万,则可以按30万计算复利效果。
2024-08-10 23:14:03
620
1 python的三种类方法
2021-01-10
DataManipulation-0.1.12.1-py3-none-any.whl
2020-07-11
DataManipulation-0.1.7-py3-none-any.whl
2020-05-30
netflix_titles.csv
2020-05-29
DataManipulation-0.1.6-py3-none-any.whl
2020-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人