1.量化交易-vnpy_efinance-VeighNa框架数据服务接口
2.该死!量化量化Github上这些C++项目真香
3.优秀的源码源码 Verilog/FPGA开源项目介绍(十)- H.264和H.265
4.Github的使用
5.手把手教你使用qstock进行量化回测
6.vn.py学习笔记(八)vn.py utility、BarGenerator、主图指标ArrayManager源码阅读
量化交易-vnpy_efinance-VeighNa框架数据服务接口
我们之前对vnpy_ctastrategy相关回测源码进行了解析:
回首凡尘不做仙:VNPY源码分析1-vnpy_ctastrategy-运行回测
回首凡尘不做仙:VNPY源码分析2-vnpy_ctastrategy-撮合成交
回首凡尘不做仙:VNPY源码分析3-vnpy_ctastrategy-计算策略统计指标
相关历史数据可以通过各类数据服务的公式适配器接口(datafeed)下载,目前vn.py支持以下接口:
然而,量化量化上述接口需要注册或付费才能获取数据。源码源码北票源码开发
为了帮助初学者更好地理解和学习量化交易以及vn.py框架,主图指标我开发了基于efinance数据接口的公式vn.py的datafeed。
开源地址为:github.com/hgy/vnpy...
编译安装:
下载源代码后,量化量化解压并在cmd中运行:
dist目录下vnpy_efinance-x.x.x-py3-none-any.whl包
使用:
安装完成后,源码源码在vn.py框架的主图指标trader目录中的setting.py中进行配置:
注意:此处只需配置datafeed.name,username和password无需配置。公式
配置完成后,量化量化可以通过以下示例进行调用:
同时,源码源码这里分享一个efinance数据下载及入库方法:
然而,主图指标efinance在获取分钟级别数据方面并不友好。对于需要获取分钟级别数据的初学者来说,我们可以使用天勤免费版的数据接口:
回首凡尘不做仙:量化交易-数据获取-vnpy_tqsdk免费版
该死!Github上这些C++项目真香
在探索GitHub上寻找学习资源时,很多人可能会遇到大型且复杂项目,这些往往对初学者来说难以理解。但实际上,GitHub上不仅有大型项目,还有许多适合不同学习阶段的资源。以下整理了一些从入门到实战的C++项目,供学习者参考。
首先,CPlusPlusThings 是一个全面的C++学习项目。它将学习内容分为基础、进阶、实战、新特性、设计模式、STL源码、并发编程、惯用法等多个部分。虽然在注释部分有些不尽人意,对新手友好度一般,但其系统性较强。通过天实战,可帮助学习者掌握语法和函数应用。
C-Plus-Plus 是一个收集了大量C++算法的集合,涵盖了计算机科学、数学、数据科学等领域,适合对算法有深入需求的学习者。通过对比多个实现,了解不同策略和优化方法。
CppTemplateTutorial 是一个中文的C++模板教学指南,旨在帮助读者理解模板语言。适合熟悉基本语法、STL及递归等编程方法的学习者。项目章节深入浅出,但遗憾的是,部分章节尚未完成。
MyTinySTL 是一个小型STL库项目,适合C++新手练习。它用C++重写了小型的容器库和算法库,代码结构清晰,带中文文档和测试框架,是学习实践的好选择。
Tinytetris 是一个终端版俄罗斯方块游戏,分为注释版和库版,警告页源码适合对游戏编程感兴趣的初学者。通过此项目,可以学习基本的C++编程技巧。
计算器项目由微软开源,提供了标准、科学、程序员计算器功能,以及度量单位和货币转换功能。学习微软工程师编写的代码,有助于提高阅读源码的能力。
EliteQuant Cpp 是一个基于C/C++ 的多线程并发式高频交易平台,遵循现代设计模式,适合对高频交易有深入需求的学习者。它可独立运行,也作为其他项目的服务器端。
Seafile 是一个开源云存储平台,提供文件集中存储、共享、跨平台访问等功能。它具有强大的云同步功能,适合需要集中存储、共享文件的学习者。
Hikyuu Quant Framework 是一个基于C++/Python的开源量化交易研究框架,适合对量化交易感兴趣的学习者。它提供了策略分析、回测等功能,帮助理解系统化交易。
ApolloAuto 是一个开源自动驾驶平台,适合对自动驾驶领域感兴趣的高级学习者。它包含定位、感知、车辆规划、运营等多个模块,涉及AI和大数据技术。
这些资源覆盖了从基础到高级的C++学习阶段,适合不同层次的学习需求。通过系统学习和实践,可以提高C++编程技能。如果有更优秀的项目推荐,欢迎在评论区分享,一起学习进步。
优秀的 Verilog/FPGA开源项目介绍(十)- H.和H.
H.是ITU-TVCEG在H.之后推出的新视频编码标准,它在保留H.某些技术的基础上,对相关技术进行了改进。H.采用了先进技术,以优化码流、编码质量、延时和算法复杂度之间的关系,旨在提高压缩效率、鲁棒性和错误恢复能力,减少实时延时和信道获取时间,降低复杂度。
H.,即MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT)提出的高度压缩数字视频编解码器标准。H.的最大优势是其高数据压缩比率,在同等图像质量的条件下,其压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。
H.旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽即可播放相同质量的视频。这意味着,不看理解源码我们的智能手机、平板机等移动设备将能够直接在线播放p的全高清视频。H.标准也同时支持4K(×)和8K(×)超高清视频。
H.与H.的不同之处在于,H.在H.的基础上进行了改进,包括帧内预测、帧间预测、转换、量化、去区块滤波器和熵编码等模块。H.的编码架构大致上与H.相似,但整体被分为三个基本单位:编码单位(CU)、预测单位(PU)和转换单位(TU)。
复旦大学H./H.开源IP,包括H. Video Encoder IP Core,是由复旦大学专用集成电路与系统国家重点实验室(State Key Lab of ASIC & System,Fudan University)视频图像处理实验室(VIP Lab)范益波教授研究团队开发完成,并开放源代码。
开源地址:openasic.org
关于上板验证,网站上有相关的验证板卡代码,如下:
github上的开源H.,开源地址:github.com/tishi/h...
用verilog和system verilog编写,在FPGA板上用Xilinx ZYNQ验证,运行最高MHZ。
内容:文件夹“src”包含所有解码源文件。文件夹“tb”包含测试台文件,ext_ram_.v使用axi3接口模拟ddr。文件夹“pli_fputc”是verilog pli,用于在运行模拟时将输出bin写入文件。
使用方法:模拟:将所有测试平台和源代码文件添加到您的模拟项目源中,例如modelsim。将测试文件in.放到您的模拟项目文件夹中。然后运行,例如,对于modelsim,运行“vsim -pli pli_fputc.dll bitstream_tb”。输出是out.yuv和一些日志文件。
在FPGA板上运行:将“src”文件夹中的源文件添加到您的FPGA项目中。顶部文件是decode_stream.sv。两个接口,stream_mem_xxx用于将H比特流馈送到解码器。
github上的开源H.,开源地址:github.com/aiminickwong...
无介绍
说明:第一个项目由复旦大学专用集成电路与系统国家重点实验室(State Key Lab of ASIC & System,Fudan University)视频图像处理实验室(VIP Lab)推出,不论项目完成度还是文档说明,都非常详细,同时上面给的是该项目的论坛,论坛上有相关工作人员维护,活跃度很高,适合去学习使用。
后面两个项目,碎碎并没验证过,但是感觉不怎么靠谱,README完整度不高,有兴趣的可以去看看。
最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是商业源码加密爆肝的碎碎思,期待下期文章与你相见。
优秀的 Verilog/FPGA开源项目介绍(九)- DP(增改版)
优秀的 Verilog/FPGA开源项目介绍(八)- HDMI
优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信
介绍一些新手入门FPGA的优秀网站(新增2)
优秀的 Verilog/FPGA开源项目介绍(六)- MIPI
优秀的 Verilog/FPGA开源项目介绍(五)- USB通信
优秀的 Verilog/FPGA开源项目介绍(四)- Ethernet
优秀的 Verilog/FPGA开源项目介绍(三)- 大厂的项目
优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V
优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信
Github的使用
GitHub 是一个用于存放和共享软件代码的平台,使用 Git 进行版本控制。开发者通过 Ruby on Rails 编写它,由 Chris Wanstrath、PJ Hyett 和 Tom Preston-Werner 创立。GitHub 可以让你的代码开源,也可以作为私有项目使用。
如何使用 Clone 功能?简单来说,就是将远程项目下载到本地电脑。操作步骤包括:创建代码库、填写仓库名称、指定本地保存路径。页面有翻译,英语不熟练的用户可以对照操作。
要开始一个项目,可以在 GitHub 上搜索相关代码。比如,如果你需要写基金量化代码,可以搜索“基金量化”。GitHub 将列出多个相关源码供你选择。
上传代码到 GitHub 非常方便。选择“创建代码库”,填入项目名,指定本地保存路径。然后点击“上传”按钮,完成代码上传。除了上传代码,你还可以使用其他功能,如切换分支、上传同步分支、删除分支和合并分支。
如果你觉得这个教程对你有帮助,请在下方点赞。如果有任何疑问或建议,欢迎在评论区留言。GitHub 是一个充满活力的社区,期待你的贡献。
手把手教你使用qstock进行量化回测
qstock简介
qstock,由“Python金融量化”公众号开发,旨在打造个人量化投研分析的开源库,包含数据获取、可视化、选股和量化回测四大模块。数据源主要来自东方财富网、同花顺、新浪财经等公开渠道,旨在提供简洁规整的金融市场数据接口。可视化模块基于plotly.express和pyecharts,为用户带来基于web的交互图形操作。选股模块整合了同花顺技术和公众号策略,包括RPS、MM趋势、财务指标、资金流模型等。回测模块提供向量化和基于事件驱动的基本框架与模型。
安装与更新
qstock可通过pip安装,首次使用输入“pip install qstock”,已有旧版本需用“pip install –upgrade qstock”更新。GitHub地址:github.com/tkfy/qstock...。部分策略和回测功能仅限知识星球会员使用,会员可获取qstock-vip-1.3.3.tar.gz安装包,溯源码理解离线安装。
调用方式
使用qstock接口函数,如导入qstock为qs,调用qs.xxx(xxx为对应接口函数)。例如,使用qs.kline(df)画K线图,qs.get_data(‘代码’)获取数据。
教程链接
详细教程参见以下推文:数据篇之行情交易数据、行业概念板块与资金流、股票基本面数据、宏观指标和财经新闻文本、动态交互数据可视化、技术形态与概念热点选股池、手把手教你使用qstock实现量化策略选股。
买入持有策略
qstock开源版backtest内置数据获取、交易指标计算、交易评价和回测功能。策略包括数据feed、trade_indicators、trade_performance和start_backtest。策略参数包括标的代码、基准指数、起始和结束日期、复权类型等。
示例代码
导入qstock,调用data_feed('中国平安',index='hs')获取数据,start_backtest('中国平安')进行回测。
回测结果
以中国平安为例,买入持有策略总收益率%,年化6.5%,最大回撤.%,夏普比率为1.,优于沪深指数。同样,以神州泰岳和中信证券为例,回测结果与指数对比。
均值回归策略
均值回归策略是量化回测中常见策略,qstock提供了相应的实现方式。策略通过计算标的与基准指数的偏离度,根据偏离程度决定买入或卖出。示例代码:导入qstock,调用MR_Strategy(df)进行回测。
北向资金策略
北向资金策略利用北上资金数据预测市场走势,qstock提供了相关功能实现。策略参数包括移动窗口、标准差倍数和手续费等。示例代码:导入qstock,调用North_Strategy(data)进行回测。
海龟交易法则
海龟交易法则利用唐奇安通道突破点指导交易,qstock提供了简化版实现。策略参数包括上轨线、中线、下轨线和买卖信号。示例代码:导入qstock,调用TT_strategy(data)进行回测。
vn.py学习笔记(八)vn.py utility、BarGenerator、ArrayManager源码阅读
在量化投资的探索中,作者对vn.py产生了浓厚的兴趣,并投身于相关学习。目前,作者主要专注于vn.py在A股市场量化策略的学习,面临的主要技术难点包括获取和维持日线数据、实现自动下单交易、开发全市场选股程序、编写选股策略回测程序,以及运用机器学习进行股票趋势预测。作者计划通过阅读vn.py源码,深入了解其架构机制,并通过分享形式记录学习心得,以便更好地理解vn.py。
相关github仓库地址:github.com/PanAndy/quan...
如有收获,请关注公众号以支持作者。同时,作者也收集了一些量化投资和技术相关的视频及书籍资源,欢迎关注公众号亚里随笔获取。
本文将重点探讨vn.py/trader/utility.py中的内容,主要包括工具函数、BarGenerator和ArrayManager。工具函数部分相对容易理解,主要是对通用功能进行封装。BarGenerator是K线合成器,负责根据实时tick数据合成1分钟K线,并进一步合成n分钟K线。ArrayManager是指标计算辅助类,负责维护一定量的历史数据,以供计算sma、ema、atr等常见指标。BarGenerator和ArrayManager是本次学习的重点。
工具函数部分主要提供合约代码转换、路径读取、json文件读写、数值位数设置、日志等功能,主要是对基本功能进行封装,没有复杂的算法。
BarGenerator类用于从tick数据中生成1分钟bar数据,也可以用于从1分钟的bar数据中合成x分钟或x小时的bar。BarGenerator的主要函数包括update_tick、update_bar、update_bar_minute_window、update_bar_hour_window、on_hour_bar和generate。
ArrayManager是一个时间序列容器,用于按时间序列缓存bar数据,提供技术指标的计算。ArrayManager提供的函数分为四类:init函数、update_bar、@property函数和技术指标函数。
米筐开源量化交易框架——RQAlpha2.0
RQAlpha 2.0:米筐开源量化交易框架的革新
半年前,Ricequant推出了开源框架RQAlpha 1.0,它在GitHub上引起了广泛关注。我们了解到开发者的需求,并通过与他们的互动,发现尽管RQAlpha 1.0已具备优势,但仍需改进。在开源社区中,我们受到了Goldman Sachs开源策略的启发,决定将RQAlpha 2.0的底层Python回测框架全面开源,为开发者提供更多可能性。
速度的提升:RQAlpha 2.0的回测速度比前一代提高了5倍,部分数据调用效率提升了倍,使得策略执行更加高效。
数据同步与便捷:无论是期货还是股票的日数据,RQAlpha 2.0都能实现同步更新,只需更新本地bundle,即可轻松获取最新数据。
功能扩展:RQAlpha 2.0不仅支持股票策略,还增加了期货策略和混合策略选项,为开发者提供了更广泛的选择。
报告生成:RQAlpha 2.0支持生成图形化报告,并提供CSV格式的详细交易和持仓信息,方便开发者全面分析策略表现。
兼容与测试:RQAlpha 2.0支持Python 2和Python 3,测试覆盖率即将达到%,确保每个模块的稳定性。
文档与学习资源:RQAlpha 2.0提供了长期维护的文档,清晰的示例策略,帮助开发者快速上手。
模块化的力量:Mod模块的出现,使得RQAlpha 2.0不仅仅是回测框架,它支持交易模块接口,自定义数据源,API扩展,风控和数据分析阶段的钩子注入,甚至撮合逻辑的定制和替换。
RQAlphaPlus:商业版的增强RQAlphaPlus提供了分钟级和Tick数据,财务信息,丰富的API接口,直观的GUI界面,实时风控,以及高效实盘交易对接,还具备策略管理系统,助力深度量化分析。
与vn.py和tushare的合作:我们与vn.py和tushare的深度合作,提升了RQAlpha的功能,推动了整个量化工具的进步。
共创未来:RQAlpha的发展离不开社区的支持,我们期待您的反馈和建议,共同推动RQAlpha的卓越。如果您对RQAlpha有任何疑问或想参与讨论,可以通过邮件public@ricequant.com或加入讨论群,与我们共享智慧。探索RQAlpha 2.0的更多细节,请访问:RQAlpha Github 主页RQAlpha 文档
量化回测终极指南,以backtrader为例
这篇文章提供了一个深入的量化回测指南,尤其以backtrader为例,旨在帮助那些寻求在量化交易领域取得成功的人。
backtrader是一个开源的回测框架,其源代码可在GitHub上获取,进行深入学习。首要步骤是准备行情数据,无论是付费还是免费资源,这将对后续步骤产生影响,但在此处我们暂且不讨论。
对于初学者,如果你的目标是学习回测框架的编写,可以直接从GitHub下载源码进行实践。回测的主要目的是检验和优化交易策略,backtrader因其知名度而广受关注,网络上有许多相关教程。
然而,作者强烈建议避免使用现有的回测框架,因为它们往往功能受限,无法提供基本的交易功能,导致测试结果不准确。除非你的策略简单,否则这些框架可能无法提供有用的数据。为了获得精确有效的结果,你可能需要从零开始自己编写框架,或者借助少数成熟量化基金内部的专属工具。
接下来,作者通过实例解释了为什么选择一个强大的回测框架至关重要。例如,一个好的框架应能支持用户在任何可行的价格点下单,无论历史K线走势如何。此外,作者列举了几个场景,展示了现有框架在处理交易策略中的局限性,如订单执行、跳空等情况,这些都揭示了现有工具的不足。
最后,作者指出,回测的微小误差可能对最终结果产生重大影响,而现有的回测框架往往无法准确模拟交易细节,导致策略测试结果偏差。尽管有人可能觉得自己有能力自建框架,但在数据处理阶段,仍可能遇到各种挑战,这表明完全掌握量化回测并非易事。
米筐开源量化交易框架——RQAlpha 2.0
封闭与开源的崭新飞跃
半年前,Ricequant推出了开源框架RQAlpha 1.0,它在GitHub上崭露头角,引起了业界广泛关注。我们深知开发者们的需求,因此在与众多开发者互动交流中,RQAlpha 1.0虽已是一把利剑,但仍缺一份灵动的色彩。借鉴Goldman Sachs的开源举措,Ricequant倾力打造,如今我们荣幸地迎来了RQAlpha 2.0的开源全貌,这一重大突破将底层Python回测框架全部开放,赋予了更多可能性。速度的飞跃
相较于前一代,RQAlpha 2.0的回测速度提升了惊人的5倍,部分数据调用效率更是提升倍,让你的策略执行更加流畅高效。数据同步与便捷
无论是期货还是股票的日数据,RQAlpha 2.0均实现同步更新,只需本地更新bundle,即可轻松获取最新数据。功能扩展
RQAlpha 2.0不仅保留了股票策略,更增添了期货策略及混合策略选项。无论是期货对冲还是股票策略组合,你都能在构建时享受到前所未有的选择。报告生成
回测结果支持生成直观的图形化报告,同时提供CSV格式的详细交易和持仓信息,助你全面分析策略表现。兼容与测试
无论你是Python 2的爱好者还是3的推崇者,RQAlpha 2.0都能无缝对接。我们持续提升测试覆盖率,即将达到%以上,确保每一个模块的稳定性。文档与学习资源
长期维护的文档,清晰易懂,设计优雅,让你轻松上手。example目录包含常用技术指标、配对交易和海龟模型等策略,助你迅速掌握量化策略。模块化的力量——Mod
(动图展示) —— 一个模块化扩展的视觉解构 RQAlpha 2.0远不止于回测框架,Mod模块的出现,让它在量化交易领域有了更广阔的视野。它支持交易模块接口,自定义数据源,API扩展,以及风控和数据分析阶段的钩子注入,甚至撮合逻辑的定制和替换。RQAlphaPlus——商业版的增强
RQAlphaPlus商业版在Mod机制上更进一步,提供分钟级和Tick数据,财务信息,丰富的API接口,直观的GUI界面,实时风控,以及高效实盘交易对接,还具备策略管理系统,助力深度量化分析。与vn.py和tushare的合作
我们与vn.py和tushare的深度合作,不仅提升了RQAlpha的功能,也推动了整个量化工具的进步。RQAlpha现在可通过Mod接入vnpy,实现与实盘交易的无缝对接,目标是打造国内顶尖的量化工具,未来我们将持续寻求与顶尖开发者合作,丰富更多功能。共创未来
RQAlpha的发展离不开社区的支持,我们期待您的反馈和建议,共同推动RQAlpha的卓越。如果你对RQAlpha有任何疑问或想参与讨论,可以通过邮件public@ricequant.com或加入讨论群,与我们共享智慧。 探索RQAlpha 2.0的更多细节,请访问:RQAlpha Github 主页
RQAlpha 文档
手把手教你使用qstock实现量化策略选股
qstock是一款由“Python金融量化”公众号开发的开源库,旨在为个人量化投研分析提供简洁规整的金融市场数据接口。它包括数据获取、可视化、选股和量化回测四个模块。数据模块的数据来源于东方财富网、同花顺、新浪财经等,可视化模块基于plotly.express和pyecharts,提供交互式图形接口。选股模块提供了同花顺的技术选股和公众号策略选股,如RPS、MM趋势、财务指标、资金流模型等。回测模块则提供了向量化和基于事件驱动的基本框架和模型。
qstock在pypi官网上发布,目前版本为1.3.3。新用户可以直接在cmd上输入“pip install qstock”进行安装,已有旧版本的用户则需要使用“pip install –upgrade qstock”进行更新。GitHub地址为:github.com/tkfy/qstock。
部分策略选股和策略回测功能仅限知识星球会员使用。会员可从知识星球获取qstock-vip-1.3.3.tar.gz安装包,离线安装。最新版本qstock 1.3.3中,所有接口函数(包括可视化、选股)均可以通过qstock调用,具体使用方式为先导入qstock库,然后使用其函数,如qs.kline(df)绘制K线图,qs.get_data(‘代码’)获取数据。
qstock数据模块提供了获取代码、名称、数据面板、指数数据等多种接口。例如,通过qs.get_code()可以获取市场代码,qs.get_data(code_list=codes,start='',fqt=2)可以获取特定代码的数据。指数数据接口可以获取多个指数的收盘价数据。
在量化选股方面,qstock提供了多层次多角度分析方法。多角度分析可以提高市场方向判断的正确率,多层次分析则可相互验证,获取超额收益。例如,通过多层次分析确定投资方向,选择最优标的。
价格与成交量形态分析是选股的重要组成部分。qstock通过定义函数,结合价格、成交量等指标进行分析。例如,通过价格突破前n日新高、价格回测不超过%、价格上涨幅度至少在%以上、近期成交量平均放大两倍以上等条件筛选出具有投资价值的股票。
RPS(欧奈尔中文书是RS)策略是基于股票相对强弱的动量策略,选择RPS值或以上的股票,结合公司基本面进行选股。RPS计算方法衡量股票在过去n日内相对股市中其他股票的表现,通过筛选RPS值大于的股票池,结合公司基本面进一步筛选出具有潜力的股票。
MM趋势选股考虑了股票价格与均线关系,选择日均线高于日均线、日均线上升至少1个月、日均线高于日均线和日均线、股票价格高于日均线、价格在周高点的%以内的股票,以及相对强弱指数(RS)大于等于的股票。
资金流选股关注资金流向与价格走势,根据资金净流入情况判断股票的强势、中强势、弱势或中弱势,通过资金流向计算算法筛选出具有潜力的股票。
基本财务指标选股则依据净利润、流通市值、市盈率、ROE、毛利率、净利率和市净率等指标进行筛选,以确保选择具有稳健财务状况的公司。