海龟策略深入研究-策略回测系列-8 品种选择检验(一)

海龟交易法--本地回测(Python) 他不仅适用于股市,也适用于一切容易形成趋势的交易标的,如期货,股指,加密货币,外汇等。他的交易思想是,趋势形成后赚取的利润会高于下跌周期中损失的本金,所以从整体上看海龟交易法能通过合理设置交易参数带来可观的盈利。设置海龟交易法需要用到的参数,其中n1表示长周期的天数(用于判断做多和做空的进入点),n2表示短周期的天数(用于判断看多或看空趋势结束的点),atr_parameter则是观察和计算平均波幅的天数,平均波幅和每次交易量成一定比例。接着进行交易过程的可视化,包括k线,唐安奇通道及买入卖出点等。 阅读详情

策略回测操作


运行run.ipynb文件

首先进入“examples\TurtleStrategy”文件夹,通过Jupyter Notebook中打开run.ipynb可以执行策略回测。
 
1)调用海龟回测引擎
 

%matplotlib inline
from datetime import datetime
import numpy as np
import matplotlib.pyplot as plt
from turtleEngine import BacktestingEngine

2) 设置回测时间区间和起始资金,读取Csv文件的合约信息进行策略回测,然后显示逐日统计的相关指标和资金图,如图所示。
 

engine = BacktestingEngine()
engine.setPeriod(datetime(2014, 1, 1), datetime(2018, 12, 30))
engine.initPortfolio('setting.csv', 10000000)

engine.loadData()
engine.runBacktesting()
engine.showResult()

 

3)针对投资组合里面单个品种,查阅其逐步开平仓记录,如图所示。

tradeList = engine.getTradeData('J99')
for trade in tradeList:
    print '%s %s %s %s@%s' %(trade.vtSymbol, trade.direction, trade.offset,
                             trade.volume, trade.price)

 
 

配置json文件

在运行海龟策略回测会读取在同一文件夹内的Csv文件,下面以setting.csv为例说明一下,如下图

需要配置的合约信息包括:合约品种、合约规模、最小价格变动、手续费率(如每一手0.00003)、固定手续费(如每一手12块钱)、滑点。其中手续费率与固定手续费是二选一关系。以PTA合约为例,其品种信息为TA99,合约规模是5吨,最小价格变动是2元/吨,手续费率为0,固定手续费为12块,滑点为2元。

 
enter image description here
 

(《海龟交易法则》明确表示其交易信号源于期货指数合约,故用“99”结尾的RQData合约进行策略,等挑选完投资组合品种后,再用主连合约(“88”和“888”结尾)测试观察其差异性。)

 
 

原版投资组合测试


原版海龟策略选择标准主要是流动性强品种,若简单地理解为交易所成交量巨大的热门品种。
 
根据交易所分类所构建的组合历史回测如图所示(测试环境是无手续费,无滑点),图中显示

  • 上期所热门品种组合夏普比率达到1.01,
  • 郑商所的达到0.8,
  • 大商所的达1.31,
  • 中金所因为只有IF股指期货成交量较高,故中金所只测试了一个品种,其夏普比率达0.88。

 
enter image description here
 

总体来看,原版海龟测试夏普比率都不错,有着一定的稳健性。

因为国内四大交易所其品种包含了金融产品,工业品,农业品,金属,化工等不同品种分类,为了分散投资组合各个头寸的风险,从而提高组合的夏普比率,故海龟策略投资组合品种必须涵盖四大交易所的品种,现在简单的把四大交易所热门品种组合起来进行测试,其效果如图1-14所示。
 
enter image description here
 

新组合的夏普比率达到1.34,要高于上面四个组合,年化收益43.91%,百分比最大回撤达到-29.84%,表现出来高风险高收益的特点,与原版海龟策略基本吻合。

当前品种选择的检验非常顺利,那么就有一个问题:能否在新组合中继续筛选,剔除一下表现不好的品种,去构建一个具有更高夏普比率的组合呢?

答案是否定的。这是一个思维误区,对过去历史表现进行优化,然后筛选出拟合历史行情最优品种,显然没有注意到未来函数的过拟合的问题。

那么,下一章将讲述通过样本内外测试来筛选海龟组合。

python 完整的海龟策略_【干货分享】从零开始学量化:13海龟策略 # encoding: utf8import loggingimport logging.configimport pandas as pdimport numpy as npfrom gmsdk import *class TurtleStrategy(StrategyBase):def __init__(self, *args, **kwargs):super(TurtleStrategy, ... 阅读详情

相关推荐

量化策略深入研究

摘要:本文系统解析量化交易策略体系,涵盖趋势跟踪、均值回归、统计套利、高频交易和机器学习五大核心策略。详细阐述各类策略的数学模型(如双均线、布林带、协整套利)、适用场景及风险特征,并提供完整的策略评估指标体系(夏普比率、卡玛比率等)。重点强调风险控制体系,包括资金管理模型和止损策略。最后指出深度学习、另类数据等前沿方向,并推荐经典论文与开源工具。核心观点:量化策略开发是持续优化的系统工程,需兼顾逻辑驱动、严格风控和技术支撑,多策略组合是穿越市场周期的关键。

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 789

命令行下运行.ipynb文件

每次运行.ipynb文件都要打开jupyter notebook就比较麻烦 解决方案 1. 安装runipy pip3 install runipy runipy test.ipynb # 获取每一个cell的输出 runipy -o test.ipynb # 将输出保存为html文件 runipy test.ipynb --html report.html 2. 利用jupyter 自带的功能 jupyter nbconvert --to notebook --execute test.ipynb -

tanshiqian的博客 1万+

python量化交易:海龟交易法则复盘

通过设定海龟交易法则的参数,复盘历史行情中的平均收益率。通过测试某些个股的日收益率能够有2%。程序能够通过网格法优化参数,提高收益率

如何在linux命令行(终端)执行ipynb 文件。可以不依赖jupyter

在终端命令行执行shell脚本,(也可以在。1.安装 runipy。

qq_53682472的博客 2323

DeepSeek Harness桌面版安装教程:从零配置到实用插件推荐

在AI编程工具逐步普及的今天,开发者越来越关注如何将大模型能力无缝融入日常编码流程。这类工具的核心在于构建一个连接模型服务与本地开发环境的中间层,通过项目级上下文理解、终端指令执行和插件机制,让AI真正成为能动手干活的编程副驾驶。安装配置过程中,环境准备、模型服务连接与工具权限设置是三个关键环节。完成基础搭建后,选择合适的插件能显著提升代码质量与问题排查效率,例如基于代码审查的规范对齐和安全扫描,以及面向运行时日志关联分析与性能告警的诊断工具。本文以DeepSeek Harness桌面版为例,从环境自查、安

weixin_31286719的博客 316

Windows 下安装 Hermes Agent 完整教程(含踩坑记录)

不支持原生 Windows,必须通过 WSL2 (Windows Subsystem for Linux 2) 运行。WSL2 是 Windows 内置的 Linux 兼容层,可以在 Windows 上运行完整的 Linux 环境。

weixin_50191542的博客 4283

海龟策略深入研究-策略回测系列-10 品种选择检验(三)

本章主要讲述构建海龟组合的痛点和解决方案 构建海龟组合痛点 在追求策略稳健性前提下,通过传统的滚动测试的方法不能筛选出盈利组合,即这种适用于日内CTA策略的检验方法针对海龟组合是无效的。 构建海龟组合困难表现为以下几点:   a. 历史数据过于少 从2014年到2018年这5年间,其日线数据仅仅是1,200根。其数据过少导致调整回望周期的灵活性降低,即最多回望周期只能设置为2年、3年、4...

智能量化交易 1696

永磁同步电机解耦控制实战:从电流反馈到内模解耦的算法演进与选型指南

本文深入探讨了永磁同步电机高性能驱动中的核心挑战——交叉耦合问题,并对比分析了电流反馈解耦和内模解耦两大主流算法的原理、性能与适用场景。文章指出,电流反馈解耦动态响应快但对参数敏感,内模解耦鲁棒性更强但略有滞后,为工程师在不同应用需求下的算法选型提供了清晰的实战指南。

weixin_29039773的博客 265

海龟策略深入研究-策略回测系列-9 品种选择检验(二)

传统筛选品种的方法 传统意义上,为保证策略的稳健性,应该进行样本内外检验,其具体步骤如下: 设定好历史回测周期,如2年的回望周期 设置固定的筛选标准,如夏普比率大于0.6 基于筛选标准,对每个品种进行策略回测,然后选择合格的品种组成投资组合 通过样本内筛选出来的组合,去预测其未来表现,如预测1年的策略表现 回望周期向后滚动,基于新组合再次筛选品种,直到预测最新年份未知     1 初...

智能量化交易 1266

三分钟解决RKNN-Toolkit2安装失败:从模块报错到成功验证的完整记录

本文详细记录了RKNN-Toolkit2安装失败的解决方案,从环境配置到模型转换实战,特别针对常见的'No module named 'rknn''报错提供了完整修复指南。通过YOLOv8模型转换示例,展示了从ONNX到RKNN格式的完整流程,并分享了在RK3588芯片上的部署优化技巧。

html8的博客 266

从jieba分词到BERT-wwm——中文自然语言处理(NLP)基础分享系列(12)

今天是本系列的最后一期,完整代码呈现Huggingface transformers平台上微调BERT-wwm-ext的过程方法。

weixin_49518391的博客 3766

海龟策略深入研究-策略回测系列-11 品种选择检验(四)

重新构建投资组合 1)初步筛选 初步筛选从仅仅基于历史行情外,还加多了品种波动率和自相关性的要求,故总的来说其初步筛选条件为三点: 历史行情:2014年1月1日前上市 调整后波动率比值>1 ADF值>10% 根据初步筛选标准,剔除了不符合要求品种后,测试样本从调整前的35个缩小至27个,根据其调整后波动率比值的大小按从大到小排序,如图所示。 结合高成交量特征,...

智能量化交易 1069

展锐双摄帧同步实战:从配置到调试的完整避坑指南

本文深入剖析了在展锐平台上实现双摄帧同步的完整流程与核心技术。详细对比了硬件帧同步与软件帧同步的差异、应用场景及核心挑战,提供了从XML配置、驱动层适配到调试验证的实战指南。重点强调了硬件帧同步必须与固定帧率强绑定这一关键避坑点,并分享了针对景深虚化等场景的同步质量验证方法及长稳测试策略。

kiwi8的博客 403

海龟策略深入研究-策略回测系列-12 品种选择检验(五)

3)3年回望周期测试 选择标准:回归夏普比率>0.4 a.2014-2016测试 对初步筛选出来的样本进行2014-2016年回测,选择回归夏普比率>0.4的品种,然后构成组合,如图所示。 根据回归夏普比率>0.4的准则,筛选出了17个品种,其历史表现和2017年预测表现如图6-31所示。投资组合在2014-2016年年化收益73.7%,百分比最大回撤-22.9...

智能量化交易 926

PNG编解码算法详解

1.PNG介绍 PNG是便携式网络图型( Portable Network Graphics)的缩写,由于PNG带有透明通道,无损压缩,可提升设计元素的呈现效果,因此设计上对PNG情有独钟,广泛的运用在设计、游戏、网页、app开发里,实际使用上由于存在很多误区,导致被滥用,这里对之前学习png的心得做个整理。 首先,PNG和诞生跟GIF格式有较大关系,这中间有很多趣事,可自行查阅。PNG的压缩过程是完全无损的,压缩过的文件可以准确的还原出原图,可封装多种pixfmt格式的数据,并且是一种可扩展的封装格式,

lemonHe的博客 1万+

2.4 提示词优化

我们在使用大模型的时候,同一任务使用不同表述的提示词,可能得到差异巨大的结果,因为模型的性能高度依赖输入提示词的质量。我们可以通过提示词优化来更高效地获取理想输出。

从0到1,突破自己 1010

海龟策略深入研究-策略回测系列-16 单位头寸限制检验

vn.py实现了2个维度上的单位头寸限制,分别是单品种头寸上限是4,单个方向整体头寸上限是10。那么现在测试一下适用于国内期货品种的新海龟策略,其最优单位头寸限制数值是否与原版海龟策略一致。 实现步骤: 对单品种头寸上限分类,直接分成3、4、5, 然后基于各自的单品种头寸上限再对当个方向的整体头寸上限进行细分,分别是8、9、10、12、14、无限大。 故一共构成了3*6 = 18个测...

智能量化交易 910

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

海龟策略深入研究-策略回测系列-13 长短周期信号检验

原版海龟策略的出入场交易信号分成2个版本: 短周期版本:1)入场信号:若期货指数价格突破20日最高价/最低价,买入/卖出1个头寸单位。过滤条件是上一次突破是盈利性突破,则当前入市信号无效(其保障性突破点为在55日通道入市)。 2)离场信号:采用10日唐奇安通道突破退出法则,即多头价格跌破10日最低点离场,空头价格超过10日最高点离场。 长周期版本:1)入场信号若价格突破55日最高价...

智能量化交易 1178

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

海龟策略深入研究-策略回测系列-14 上一笔盈利过滤检验

上一笔盈利过滤的意思是,若上一次交易为盈利的,则当前的交易信号无效,即当前不进行交易。 基于20日唐奇安通道,费思认为若上一次突破是盈利的,那么新突破点可能离当前价格,因为有可能跑到55日突破点上面去;若上一次突破点亏损,那么新突破点将更加接近当前价格。 若基于传统日内中高频CTA策略的视角,这是非常主观的解释:费思认为这几乎不可能连续2次出现大行情,但是事实是分钟级别的CTA策略有可...

智能量化交易 1138

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

海龟策略深入研究-策略回测系列-15 手续费滑点检验

理论上,基于日线数据的中低频趋势跟踪策略,手续费和滑点是可以忽略不计的。为了验证这个结论,进行对比测试,如图所示。 右图为包含手续费和滑点版本的海龟策略,其中手续费设置为交易所手续费的1.1倍,滑点设置为期货合约的最小价格变动。 其结果是总手续费为635364,总滑点为636794,加上手续费和滑点后,其影响在于: 结束资金从77605953降低至76333794, 年化收...

智能量化交易 1186

【手把手教你】用backtrader量化回测海龟交易策略

01引言海龟交易策略是比较经典的趋势交易系统之一,涵盖了从入场交易(品种选择)、仓位管理(基于ATR加减仓)、离场(触发条件)的整个过程。机械套用海龟交易法则在A股上进行交易可能效果不佳...

Python金融量化 1万+

海龟策略深入研究-策略回测系列-3:原版海龟策略(下)

首先呢,还是那副图,现在介绍剩下的3个关键要素 5.逐步建仓 在突破点建立1个单位的头寸,然后按0.5*ATR的价格间隔一步步扩大头寸。(1/2的间隔以上一份订单的实际成交价格为基础的) 这个过程将继续下去,直到头寸规模达到上限,即单个合约最大4个单位头寸。 该书举了纽约商品交易所(COMEX)黄金期货指数的例子作为说明 6.止损 止损曾经在入场信号中简单提及,即价格反方向偏离2*A...

智能量化交易 1473

手把手:AlphaGo有啥了不起,我也能教你做一个(附Python代码)

在2016年3月,Deepmind研发的AlphaGo以4:1的成绩,击败了曾荣获18次世界冠军的围棋选手,李世石(Lee Sedol)。超过2亿观众见证了这一历史时刻。一台机器已经学会了一种超越人类的围棋策略。这在以前被认为是一项不可能完成的任务,或者至少需要十年之功。 AlphaGo与李世石的第3场比赛 这已是一项了不起的成就。然而,在2017年1...

weixin_33790053的博客 323

海龟策略深入研究-策略回测系列-1:海龟的历史

(本系列主要在于探讨海龟策略在国内市场的可行性,目标群体是有一定基础的量化新手。)   海龟策略的故事 海龟策略是一个基于日线级别期货数据的中低频趋势跟踪策略。其高盈利性名扬海外,同时也创造出非常多赚钱的案例。 其实海龟策略背后还隐藏一个有趣的故事,而且与赌局有关,你信么? 1983年两位交易大师理查德.丹尼斯与威廉.埃克哈特之间的一次赌约,赌约的内容是伟大的期货交易者能否通过后天的培养产...

智能量化交易 3410

如何运行.ipynb文件

12f

mizzle_up的博客 1万+

如何在ipynb脚本中执行ipynb脚本

如何在ipynb脚本中调用另外一个ipynb脚本

weixin_47747428的博客 860
上一篇: 海龟策略深入研究-策略回测系列-7 海龟策略要素代码解析
下一篇: 海龟策略深入研究-策略回测系列-9 品种选择检验(二)
Trader_Python
博客等级 码龄11年 392粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值