1.vn.py社区精选4 - 双均线策略深度解析
2.CTA策略,量量化你知道多少?
3.量化干货02收集过的化源交易开拓者TB量化投资程序化交易资料合集
4.最不待见的经典量化策略R-breaker
5.基于VN.PY的CTA策略入门心得
6.量化交易-vnpy_efinance-VeighNa框架数据服务接口
vn.py社区精选4 - 双均线策略深度解析
策略原理
双均线策略作为基础的CTA策略,通过短周期与长周期均线的量量化金叉或死叉信号进行交易决策,捕捉市场趋势。化源策略包含两个关键周期的量量化移动平均线,短周期反映近期市场走势,化源slowkd公式源码长周期代表较长时段的量量化趋势。
源码分析
以vn.py项目中的化源双均线策略源码为例,解析策略实现逻辑和内部代码。量量化
创建策略实例
所有vn.py框架中的化源CTA策略类(包括内置和自定义)皆基于CTA策略模板类(CtaTemplate)实现子类。模板类为策略设计提供了通用结构,量量化如同汽车设计图指导汽车制造。化源CtaTemplate定义了交易函数和策略逻辑框架,量量化使得快速实现策略成为可能。化源
策略初始化
在策略实例创建时,量量化设置参数和变量。参数由外部指定,变量随策略状态变化动态更新。参数列表中包括策略名称、设置信息等,系统自动从配置文件中加载。变量列表用于界面显示,并在策略停止、收到回报或同步数据时保存状态。
构造函数__init__
构造函数接收CTA引擎、策略名称、标的代码和设置信息作为参数,其中引擎对象自动传入。创建BarGenerator实例用于生成分钟级别K线数据,ArrayManager用于缓存K线数据,支持指标计算。
状态变量初始化
状态变量初始化并非在构造函数中完成,而是在创建策略实例后通过图形界面的初始化按钮触发on_init函数,加载历史数据回放给策略初始化变量。
启动自动交易
点击启动策略按钮,自动调用on_start函数,星外代理源码将交易状态变量设置为True,启动交易流程。确保在界面刷新策略状态相关显示时调用put_event函数。
接收Tick推送
CTP接口每0.5秒推送Tick数据,由事件引擎分发到策略中。Tick数据通过BarGenerator的update_tick函数处理,合成1分钟K线数据,供策略使用。
核心交易逻辑
接收到K线数据后,将数据放入ArrayManager容器中,确保至少个数据后初始化完毕。调用talib库计算技术指标,判断金叉或死叉触发交易逻辑。交易指令由策略模板封装,在on_bar函数中直接调用。
委托回报处理
on_order函数处理委托状态变化,on_trader和on_stop_order函数处理成交回报和停止单回报。双均线策略在这些函数中通常无操作。
停止自动交易
每日交易结束后,通过停止按钮关闭自动交易,策略引擎调整交易状态变量,撤销所有活动委托,并保存变量状态。
CTA交易流程梳理
使用思维导图整理vn.py中策略实现与执行流程,包括从创建策略实例到停止自动交易的完整步骤。
《vn.py全实战进阶》课程介绍
该课程提供节内容,涵盖策略设计、参数回测和实盘自动交易的CTA量化业务流程,适合深入学习vn.py应用。
更多vn.py精华内容
关注公众号以获取更多深入分析和实践技巧。
CTA策略,你知道多少?
CTA策略,你知道多少?
1. CTA策略更多的时候是一种投资方法,更准确的说,主要投资于衍生品的刷站源码下载、比较系统化规则化的投资方法都可以称作CTA投资,它并不拘泥于量化或是主动,其具有相当的生命力,会长期存在。
2. CTA策略的收入来源是多样化的,目前市场上最熟悉的是利用动量策略赚取价差,往往以量化趋势跟踪作为了CTA策略的代名词;实际上,CTA策略本身存在相当多的收益来源,通过各种方法都可以为组合创造实实在在的收益。
3. 研究表明,作为一种投资策略方法,CTA策略可投资标的远远超过商品期货,即使在商品市场长期处于横盘震荡状态仍然可以通过品类繁多的投资标的争取长期稳健回报。
4. CTA 全称是 Commodity Trading Advisors,即“商品交易顾问”,也称作管理期货。它是指由专业的资金管理人运用客户委托的资金投资于期货市场和期权市场,并且收取相应管理费用的一种基金组织形式。CTA作为一种投资的策略方法,本质上是规则的集合,它的规则性很强,许多投资门类都包含在内,是实现资产配置中分散投资的一种重要方式,目前正逐步成为成熟投资机构的基础资产配置之一。
5. 从Managed Futures Barclay CTA Index来看,CTA策略的历史已有年之久,它的投资标的不仅仅限于商品期货,而是扩展到包括利率期货、股指期货、外汇期货在内的所有期货品种上。
6. 从国际成交数量来看,CTA策略中商品期货投资只占了1/4-1/3,以动量型策略为主,而金融衍生品已经占到整个CTA策略成交量的一半以上,这与国际市场上投资种类丰富、unity 横版 游戏 源码衍生品的发育成熟有关;反观国内,投资者经常把CTA策略和商品投资划等号,这主要是因为国内的股指期货投资受限,国债期货市场还在逐步发育过程中。
7. 专家预计再过3年左右时间,随着国内期货市场的不断发展,股指期货、国债期货、商品期货的新品种的陆续推出,期权市场的逐步推进,CTA 在国内可以投资的标的将不断增多,潜在的获利机会也会相应增加,国内投资情况会和国外会更加接近。
8. 量化CTA逐渐成为主流。就投资方法而言,CTA基金有两大类,一类是主观CTA,即由基金管理人基于基本面、调研或操盘经验,主观来判断走势,决定买卖时点;第二大类是量化CTA,是通过分析建立数量化的交易策略模型,由模型产生的买卖信号进行投资决策。
9. 量化CTA基金特征:一、低相关性;二、中高收益;三、非线性。
. 如何挑选真正优质的量化CTA产品?建议投资人可以从以下四个方面进行考量:1、看业绩;2、看团队;3、看回撤;4、看规模。
. CTA基金作为一种非主流投资工具,其分散市场风险和防范股票市场系统性风险的能力应该得到传统意义上投资股票和债券市场投资者的重视,尤其是短线资金公式源码在大环境改变的大背景下,量化CTA基金将会迎来发展的繁荣时期。
拓展阅读:股票/期货经典的量化交易策略都在这里了!(策略源码)
量化干货收集过的交易开拓者TB量化投资程序化交易资料合集
交易开拓者(TradeBlazer)作为专业投资者的交易软件,深受国内CTA量化领域人士喜爱,是中国最早能够接入证券、期货市场进行自动交易的程序化交易软件之一。其功能丰富,包含多帐户交易终端和强大的程序化交易功能,帮助用户将交易思想转化为代码,形成个性化交易策略,借助计算机辅助执行。
在自学商品期货量化交易的过程中,许多新手会自行收集整理相关资料。本文针对交易开拓者TB,总结并梳理了六个主要部分,以供新老用户参考学习。
一、基础课程
初学者应从基础课程开始,主要涵盖编程语法、程序结构、数据类型、运算符、交易指令等基础知识,为后续进阶学习打下坚实基础。
二、进阶课程
在具备一定编程基础后,可深入学习进阶课程,内容涵盖更复杂的编程技巧和策略应用,尤其在交易细节和仓位控制方面进行详细讲解,助力用户掌握更高级的交易策略。
三、高阶课程
针对进阶用户,高阶课程深入探索止盈止损、仓位控制、多品种交易、模拟盘/实盘执行等细节,同时详细解析多均线、MACD/KDJ、唐奇安/布林通道等策略,提供更全面的交易策略指导。
四、专题课程
专题课程聚焦程序化交易者和策略开发者关心的问题,包括交易品种选择、中低频策略开发、模糊模式识别、实战心得分享等,提供深入见解和解决方案。
五、策略源码
在策略开发中,参考经典CTA策略,如海龟交易法则、枢轴点、日间突破、布林带突破、区间突破等,进行改进和优化,为用户提供实际操作指南。
六、课件+书籍
除了线上资源,随身携带一本工具书尤为重要,包含课程完整课件、TB编程和公式开发的详细书籍,为策略开发提供理论支持和实践指导。
希望以上资料能为交易开拓者TB的新老用户带来启发与帮助,加速成长,提升交易技能。
最不待见的经典量化策略R-breaker
R-Breaker策略,由Richard Saidenberg开发,自年发布后,连续十五年被《Futures Truth Magazine》评选为顶级赚钱策略之一。该策略的独特之处在于结合了趋势追踪与反向操作,既能捕捉趋势带来的高额利润,又能精准地在趋势反转时止盈,实现顺势而为的反向操作。其广泛应用与研究,不仅限于国内,也扩展到了全球。
策略的核心在于六个关键价位的计算,根据前一个交易日的收盘价、最高价和最低价,计算出观察卖出价、观察买入价、反转卖出价、反转买入价、突破卖出价与突破买入价。通过追踪盘中价格走势,策略判断出合适的入场与离场时机。
具体操作如下:当盘中价格超过突破买入价时,在该点位开仓做多;若盘中价格低于突破卖出价时,则做空。在价格出现回落或反弹并分别跌破反转卖出价或超过反转买入价时,策略执行反向操作。此外,策略还设有过滤条件,以避免在市场波动过小的情况下单边交易,以及每日收盘前平仓的规则。
R-Breaker策略的源码,采用MC版本,详细描述了策略的实现逻辑,包括变量与输入参数的定义。策略的执行逻辑围绕价格变动和特定条件触发,如价格突破关键价位、市场时间限制等,通过设置止损条件来控制风险。
尽管R-Breaker策略在策略设计上具有一定的创新与实用性,但也有专家对其逻辑与设计风格提出了质疑与改进意见。其中,有观点认为,趋势追踪是更合理的交易方式,而非单纯结合趋势与震荡策略。同时,策略对交易对象的单一性与参数数量较多的问题,增加了策略的过度拟合风险,这与CTA策略设计的禁忌不符。此外,策略在出场方式上相对简单,存在优化空间。
对于R-Breaker策略在沪深指数期货中的应用效果,具体案例与分析并未在文中详细展开,但通过对比历史数据与策略表现,可以得出其在特定市场环境下展现出的潜在优势与局限性。
基于VN.PY的CTA策略入门心得
CTA策略简介与VN.PY入门指南
CTA策略,即商品交易顾问(Commodity Trading Advisor),是量化投资领域中重要组成部分,相较于股票量化策略,CTA策略能提供更稳定的收益与更低的风险。通过CTA策略的对冲性和高频性,市场波动趋于平滑,使得对冲做得好时,能无视大盘波动。
开发CTA策略时,选择适合的工具极为关键。市面上的可编程交易软件如TB或MC,价格不菲且语言小众,开发复杂。在比较了多种选项后,VN.PY成为了CTA策略开发的首选平台。本文将为读者介绍VN.PY的入门心得,旨在快速帮助大家了解VN.PY并上手开发,而不涉及策略的深度开发。
一、VN.PY安装
安装VN.PY主要依赖于VNStation,用户可在官网上下载最新版进行安装,版本为2.5.1。安装目录默认为C:\vnstudio。需要注意的是,VNStation自带Python包,建议使用VSCode作为开发IDE,且本地Python环境应保持干净,避免与其他环境混用。此外,VN.PY的源代码位于C:\vnstudio\Lib\site-packages\vnpy目录下,与GitHub上的源代码存在差异,建议使用vnpy目录下的源代码。
二、启动VNStation
启动VNStation前需创建策略代码目录,一般在C:\Users[用户名或Administrator]\strategies下。启动VNStation后,选择VN Trader Pro,配置底层接口为CTP或CTP测试,选择上层应用时,通常选择CTA自动交易模块与CTA回测研究模块。设置运行目录与策略代码目录保持一致。
三、CTA回测与策略
在使用CTA回测或CTA策略前,需要进行数据准备。VNTrader提供RQData数据或本地数据库服务。启动CTA回测功能,选择策略,输入本地代码与回测条件,点击开始回测。回测页面显示各项指标,如账户净值、盈亏分布等。回测过程中,注意理解初始化日的限制、平今仓手续费设置以及优化参数等。
四、策略调试与学习资源
策略调试可选择命令行或Jupyter notebook方式。通过VN Studio Prompt启动VN Station,运行命令行调试,或在Jupyter notebook中导入策略进行调试,修改相关参数,运行代码。学习资源方面,VN.PY公众号视频教程、官网项目文档、知乎频道、蜗牛博客与《Python量化交易》书籍均可作为深入学习的参考资料。
量化交易-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免费版