为什么回测效果非常好的策略实盘却不行?

news2024/11/24 13:44:13

这是一个絮絮叨叨的专题系列,跟大伙儿唠一唠量化相关的小问题,有感而发写到哪算哪,这是第二期,来唠个12块钱的~

之前在某乎看到这个问题,说的是自己的MACD策略回测绩效不错,但实盘比较拉胯,希望大伙儿给出出建议。

图片

看了题干当中的量化策略回测描述,总共回测了10年时间,成功率61%,盈亏比1.9,这算是一个非常亮眼的回测结果了,但是实盘效果就很差,这算是量化界当中比较常见的现象,可能的原因咱来从头到尾捋一下。

一、回测是否正确

首先,回测效果非常好,实盘要复现出八九不离十的收益,那就要首先评估自己的回测是不是正确的。

数据源、数据处理和计算方式是否正确呢?

数据源是不是经过“清洗”干净了呢?停牌日期的数据是如何处理,计算MACD的时候是保留停牌日期的收盘价还是不保留,实盘的计算方式是否与之对应呢?

股票原始价格有除权除息,一般会使用复权数据,如果使用了前复权数据的话,那就相当变相使用了未来数据,那实盘效果肯定要大打折扣。

二、是否有未来函数

其次,如果在数据源、数据处理和计算方式都正确和对应的情况下,要确保自己的策略没有引入未来函数,以下举2种可能出现的情况。

策略当中有这样的描述“N字形突破+MACD”,这大概率是一个趋势策略,趋势策略往往就容易买入大涨的股票,其中就包括涨停股,那在回测当中是否对涨跌停股票进行特殊处理呢?比如,涨停的股票无法买入,跌停的股票无法卖出。

还有一种可能,题主可能在回测当中使用的是收盘价计算N字形指标和MACD指标,以此产生交易信号并以收盘价成交,这也是变相引入了未来函数,因为在实际当中无法知道收盘价,知道收盘价时已经收盘无法再以收盘价成交,这样相当于提前预知了收盘价。

三、是否过度拟合

再次,排除了未来函数的影响,就需要看看策略是否是过拟合了,过拟合也是量化策略回测当中非常容易犯的错误。

MACD本身带有3个参数,假设N字形突破只带1个参数,总共有4个参数,假设每个参数有10个可能的值,那这个策略就可能有10000种参数组合。

通过对4个参数的参数寻优,人性的贪婪往往只会选择其中看起来效果最好的参数,有可能这组参数恰好是参数平面上的孤岛。要排除这方面的过拟合,最少要做一个参数敏感性分析吧。

四、真实交易环境的限制

最后,经过重重的检查,保证回测的正确性和准确性,让实盘效果大打折扣的原因就是真实交易环境的限制。

这个策略是典型的趋势策略抓突破,股价可能处在一种快速上涨的过程当中,在回测当中能成交的价格,在实际交易当中由于行情延迟和流动性等因素的影响,要以更高的价格成交,产生非常大的滑点,削弱了收益。

还有就是,回测当中的数据是“死的”,而在实盘当中数据是“活的”,自己的交易行为会反作用于市场,把股价推向更高位置,也会产生大滑点,这就是量化中常说的“冲击成本”。资金量不大,又是活跃股的话,这段就当我没说过,掐了吧。

五、策略失效

最后的最后,那就是咱都不想面对的情况了——策略失效。每一个策略都是有周期的,雷总说“站在风口上,猪都会飞”,当风停了之后,策略处在失效回撤期,磨人的时间开始了。

回测没有错,策略也没有错,只是老天爷不赏饭吃了,“此天之亡我,非战之罪也”,收拾好心情,收拾好行囊,重新出发,优化改进让策略重新焕发生机活力。

这5个就是导致“回测很丰满,实盘很骨感”的常见原因,对了,别问我是怎么知道的~~~很多东西听起来都是很轻松,听过了也就过了,唯有真金白银的损失才会让自己回想反思,还是那句话说的好嘛,“人教人,教不会,事教人,一次就够了”。

原文首发链接:《为什么回测效果非常好的策略实盘却不行?》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pxe666666

1.下载图形化工具 2.init 5进入 3.配个ip 4.安装图形化生成kickstart自动安装脚本的工具 5.配置httpd 6.浏览器查看 7.设置 保存 8.检查有无问题 9.共享 10.测试 11编辑配置文件37及后的脚本,并注释掉 27 28 12.安装pxe 13.共享pxelinux.0数据文件的网络服务 14.查询…

函数实例讲解(四)

文章目录 提取不重复值(INDEX、MATCH、COUNTIF)1、INDEX2、MATCH3、COUNTIF 提取不重复的值的经典套路(LARGE、SMALL、ROW)1、ROW2、LARGE3、SMALL) 制作Excel动态查询表四舍五入函数(ROUND、ROUNDUP、ROUNDDOWN&#…

shell 环境变量

shell 变量加载顺序 set设置了当前shell进程的本地变量,本地变量只在当前shell的进程内有效,不会被子进程继承和传递。 env仅为将要执行的子进程设置环境变量。 export将一个shell本地变量提升为当前shell进程的环境变量,从而被子进程自动继…

搭建pxe网络安装环境

实验目的: 搭建pxe网络安装环境实现服务器自动部署 实验原理: PXE 网络安装环境实现服务器自动部署的实验原理为: 待安装的服务器(PXE 客户端)开机时,BIOS 设置从网络启动,向网络发送请求。…

54 GRE-VPN 点到点

一 理论 1 GRE 概念 GRE(Generic Routing Encapsulation,通用路由封装)协议用来对某种协议(如IP、以太网)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如IP)中传…

职场“老油条”的常规操作,会让你少走许多弯路,尤其这三点

有句话说得好:“在成长的路上,要么受教育,要么受教训。” 挨过打才知道疼,吃过亏才变聪明,从职场“老油条”身上能学到很多经验,不一定全对,但至少有可以借鉴的地方,至少能让你少走…

Python实现AI自动化微信回复脚本

脚本相关技术 wxauto Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人 GitHub地址 AI 脚本联动的是讯飞星火的api(主要是免费且无限token数(必须实名后才能领…

嵌入式学习---DAY19:标准IO

1. I: input 输入 键盘 O:output 输出 显示器 2.Linux操作系统当中IO都是对文件的操作,linux下一切皆文件,文件用来存储数据(数据,指令)。 3.stdio.h 标准输入输出头文件。 …

最新全国各省市水系矢量数据(2024年更新)

【数据简介】 来源于OSM在2024年7月份更新的全国范围的水系数据,并将其处理成各省、各市区域。OpenStreetMap(OSM)是一个全球性的开放源地图项目,旨在通过用户合作创建一个免费的、可编辑的世界地图。其数据广泛被用于地理信息系…

K个一组翻转链表(LeetCode)

题目 给你链表的头节点 ,每 个节点一组进行翻转,请你返回修改后的链表。 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值&…

Java单元覆盖率工具JaCoCo使用指南

JaCoCo(Java Code Coverage Library)是一款开源的Java代码覆盖率工具,它提供了详细的代码覆盖信息,帮助开发人员了解测试用例对代码的覆盖情况,从而发现潜在的问题和改进空间。以下是关于JaCoCo的详细介绍:…

[算法]二叉搜索树(BST)

二叉搜索树(Binary Search Tree),也称二叉排序树或二叉查找树。 一、二叉搜索树的性质 二叉搜索树是一棵二叉树,可以为空。 当二叉搜索树不为空时: 1、非空左子树的所有键值小于其根结点的键值。 2、非空右子树的所有…

linux开发板配置-双网卡桥接-问题记录

韦东山i.mx6ull开发板 使用usb网卡连接电脑,ubuntu进行双网卡配置 问题: mount: mounting 192.168.96.131:/home/book/nfs_rootfs on /mnt failed: No route to host 乱七八糟各种配置,能ping通,但是nfs挂载不上 解决&#xff1a…

推荐系统与搜索系统架构

一、推荐系统逻辑 推荐的本质就是为了解决信息过载造成的“选择困难症”,便于用户能够在自己选物之前,系统已经帮用户筛选到了最想要的信息。 以下是我按照用户打开APP进入推荐页面时,推荐系统返回给该用户推荐列表的整体流程: …

Xshell安装图文

1.下载 通过百度网盘分享的文件:Xshell安装图文 链接:https://pan.baidu.com/s/1k4ShbhUVQmdxpM9H8UYOSQ 提取码:kdxz --来自百度网盘超级会员V3的分享 2.安装 3.连接与使用 见下载

vector 简单模拟实现

目录 一. vector成员变量 二. vector的构造函数和析构函数 三. vector的成员函数 1. 容量操作函数 扩容操作 (1). finish更新问题 (2). 扩容深浅拷贝问题 resize与尾插、尾删与判空 insert与erase与clear 2. 函数重载 (1). 赋值运算符重载 (2). [ ]重载进行访问 四. …

phpstudy搭建sqlilabs本地靶场

请先在网上解决好前置条件的下载和安装:phpstudy、vscode、navicat premium(非必要)、sqlilab的压缩包/文件夹 phpstudy--安装sqlilabs 1.打开phpstudy后,我们会用到MySQL5.7.26和Nginx1.15.11 #mysql5.7.26是因为sqlilabs靶场不支持高版本MySQL 2.在软…

练习实践 web中间件httpd-id:2-编译安装-web登录认证设置

参考来源: 用编译的方式安装apache httpd服务 编译安装过程记录 1.下载准备环境: yum -y install gcc gcc-c make pcre pcre-devel gd-devel openssl-devel zlib zlib-devel apr-*根据之前的操作文档和实际安装经验,提前将所需依赖项安装…

sqli-labs注入练习1,2关

sqli-labs第一关 判断是否存在sql注入 可见,根据输入数字的不同,结果也不同 判断sql语句是否是拼接,且是字符型还是数字型 由上可见,这关指定是字符型且存在sql注入漏洞 使用联合注入 第一步:首先知道表格有几列&…

PyCharm 2024.1 最新变化

文章目录 PyCharm 2024.1 最新变化一、新的 AI Assistant 功能 PyCharm Professional1、一键创建包含生成代码的文件2、生成架构感知型 SQL 查询 二、缩小整个 IDE 的选项三、新终端 Beta PyCharm 2024.1 最新变化 pycharm是什么 作为 JetBrains 旗下的一款专为 Python 开发者设…