量化择时——资金流择时策略(第1部分—因子测算)
文章目录
- 资金流模型概述
- 资金流模型的有效性逻辑
- 资金流向指标MFI(Money Flow Index)
- MFI指标测算
- 测算规则
- 测算结论
资金流模型概述
通常,资金流是一种反映股票供给信息的指标,宏观上来讲,我们知道一个道理:僧多粥少的时候“粥”就格外的值钱。在股市中,一般情况下,股票的总量是固定的,能用来交易的量也是相对固定的,当钱(僧)大量涌入的时候,会使原有的股票更加值钱,反之股票价格会下跌。
市场微观结构理论认为,根据委托流测算的资金流能够有效反映一些市场博弈的状态:
- 资金净流入导致价格上涨
- 资金净流出导致价格下跌
在使用资金流模型时,我们通常定义:
- 资金流入:证券价格处于上升状态时,产生的成交额被认为是推动价格上涨的力量,记为资金流入
- 资金流出:证券价格处于下跌状态时,产生的成交额被认为是推动价格下跌的力量,记为资金流出
如果研究的更加细致的话,可以将资金流划分的更加细致:“大资金流”,“中资金流”,“小资金流”,同样也有针对个股的资金流模型,也有针对板块指数的资金流模型。这篇文章就只研究基本的现金流指标,更加细致的研究后面补充哈~
资金流模型的有效性逻辑
-
什么样的交易会促使价格发生变动?
如果我只想以1元/股成交茅台的股票,显然是不会成功的,卖方漫天要价同理是无法成交的。但如果此时有人愿意以100元/股的价格卖出,而有人愿意以100.01/股的价格买入,那么这个交易按照股市的逻辑是会以100元/股成功的。因此,买方与卖方的边际需求决定成交价,即:
只有两种情况会导致价格表现为上涨、下跌:- 上涨:买方主动以卖方期待的价格成交,买方的行为将价格向上推(最终会以卖一价成交)
- 下跌:卖方主动以买方期待的价格成交,卖方的行为将价格向下推(最终会以买一价成交)
而资金流就是通过判断推动力量的方向,预判未来的涨跌幅,并以此为依据做出决策的一种思想
-
资金的流入、流出与成交价变化的关系?
如上所述,“积极主动的买入、卖出”行为会导致成交价发生变化,因此固定时间窗口(如分钟线)下,通过成交量的大小,就可以判断在这一段时间内主动成交的参与者将价格推动到了何种程度。此时我们以价格的上涨或下跌作为资金的方向,就可以判断:
- 资金流入的动力有多少,推动价格上涨的阻力有多大
- 资金流出的动力有多少,推动价格下跌的阻力有多大
但是根据涨跌幅判断资金的流入流出有两种特殊情况:
- 成交量没有明显变化,但是价格发生明显的偏移(价格踏空):表示买方或卖方的报价之间出现断层,买方与卖方对价格的看法出现分歧。
注意:此时容易出现虚假的盘面走势,因为盘面价格只代表成交价,这个判断需要对比看十挡价格 - 成交量特别大,但价格没有明显变化:表示买方卖方在频繁换手,即上涨、下跌阻力较大
注:在期货中,可以根据持仓总量辅助判断资金的流入、流出。但是股票由于股票交易数量相对固定,因此通常只根据价格的涨跌幅判断资金的流入、流出。
-
资金流的逆向选择策略
在股市中,因为机构投资者与散户的信息不对称,在发生导致价格偏移的信息时,机构投资者会以大资金入场或出逃,增加成交量。散户“跟风”随后决策,此时容易导致“反应过度”。同样,机构投资者也会因为关注同行的投资行为,“羊群效应”的产生会强化超买、超卖的情况发生。
修正反应过度带来的价格偏移就是资金流策略的思路,因此资金流模型通常赚的就是超买、超卖的钱。
资金流向指标MFI(Money Flow Index)
资金流量指标是RSI相对强弱指标和OBV人气指标两者的结合,用于测度交易量的动量和投资兴趣。根据MFI的值大小,来判断超买、超卖现象是否发生,是否存在获益机会
计算规则如下:
- 选定时间窗口,每一个窗口都会计算出一个MFI值,通常窗口长度N=14
- 计算当天的:
- 当天典型价格(TP)=(当天最高价 + 当天最低价 + 当天收盘价)/ 3
- 当天资金流量(MF)= 当天典型价格(TP)* 当天成交量
- 判断资金的流入、流出
- 如果当日MF > 昨日MF,表示价格向上偏移,资金流入,正资金流量(PMF)
- 如果当日MF < 昨日MF,代表价格向下偏移,资金流出,负资金流量(NMF)
- 资金流动比率 = N天内的PMF / N天内的NMF
- IMF = 100 - 100/(1+资金流动比率)
根据指标计算公式,可知:
-
资金流动比率的值域是(0,正无穷),IMF的值域是(0,100)
-
如果资金在N天内一直流入,此时IMF=100
-
IMF与指数走势图如下所示:
-
IMF与典型价格TP的走势图如下所示:
MFI指标测算
测算规则
这一部分,我们测算MFI指标对个股的影响,同时将时间段分为两个部分:
- 测算:2015年1月1日至2020年1月1日
- 回测:2020年1月1日至2022年11月1日
测算时,只挑选2015年1月1日至2020年1月1日这个时间段内,数据量大于200个交易日的股票。
按照交易策略:
- 当MFI<20时为超卖,当其向上突破20时,为买点
- 当MFI>80时为超买,当其向下跌破80时,为卖点
这里我们统计每一次交易(从买点到卖点)的收益率:
- 转化为年化收益率
- 以年化收益率>2%记为胜,胜率=胜的次数/总交易次数
测算结论
胜率最高,且交易次数最高的前10只个股如下:
胜率最低,且交易次数最高的前10只个股如下:
综合3037只个股,综合统计的胜率如下:
胜率 | 交易次数 | 年化收益率-均值 | 年化收益率-方差 | 年化收益率-25% | 年化收益率-75% | 年化收益率-中位数 | |
---|---|---|---|---|---|---|---|
均值 | 0.56 | 4.43 | 0.67 | 1.29 | -0.02 | 1.04 | 0.38 |
方差 | 0.25 | 1.72 | 1.35 | 1.45 | 1.11 | 1.57 | 1.24 |
最小值 | 0 | 1 | -1.44 | 0 | -4.38 | -1.44 | -1.44 |
25% | 0.4 | 3 | 0.08 | 0.52 | -0.32 | 0.26 | -0.08 |
50% | 0.57 | 4 | 0.43 | 0.92 | -0.14 | 0.72 | 0.18 |
75% | 0.75 | 6 | 0.96 | 1.58 | 0.1 | 1.42 | 0.57 |
最大值 | 1 | 11 | 51.65 | 27.21 | 51.65 | 51.65 | 51.65 |
相关文章:

量化择时——资金流择时策略(第1部分—因子测算)
文章目录资金流模型概述资金流模型的有效性逻辑资金流向指标MFI(Money Flow Index)MFI指标测算测算规则测算结论资金流模型概述 通常,资金流是一种反映股票供给信息的指标,宏观上来讲,我们知道一个道理:僧…...

Openwrt中动态IPV6 防火墙的正确设置方法
环境:光猫桥接公网IPV6 问题:动态IPV6地址不知道怎么设置防火墙 解决办法:模糊匹配前缀,特定后缀 背景:将家中光猫桥接后,获得了公网的IPV6地址,可以从外部用IPV6访问家中的设备,但I…...
JS的基本数据类型和引用数据类型
ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number&…...

mars3d基础项⽬常⻅报错
1.在⼤家使⽤mars3d基础项⽬的时候经常遇到这个报错,截图如下 回答: 1.原因是因为使⽤了cnpm安装依赖,导致了⼀些依赖问题 2.解决⽅式也很简答,重新使⽤ npm 或 yarn 或 pnpm安装依赖即可 2.本地加载地图时,出现报错回…...

【阿旭机器学习实战】【35】员工离职率预测---决策树与随机森林预测
【阿旭机器学习实战】系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流。 本文的主要任务是通过决策树与随机森林模型预测一个员工离职的可能性并帮助人事部门理解员工为何离职。 目录1.获取数据2.数据预处理3.分析数据3.…...

Python学习-----模块4.0(json字符串与json模块)
目录 1.json简介: 2.json对象 3.json模块 (1)json.dumps() 函数 (2)json.dumps() 函数 (3)json.loads() 函数 (4) json.load() 函数 4.总结: 1.json简介: SON(…...

open3d最大平面检测,平面分割
1.点云读入 读入文件(配套点云下载链接) # 读取点云 pcd o3d.io.read_point_cloud("point_cloud_00000.ply")配套点云颜色为白色,open3d的点云显示默认背景为白色,所以将点云颜色更改为黑色 pcd.colors o3d.utilit…...
【C++】4.类和对象(下)
1.再谈构造函数 1赋值 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day; };构造函数体中的语句只能将其称作为赋初值,而不能称作初始化。因为初始化只能初始化一次…...

自动驾驶仿真:ECU TEST 、VTD、VERISTAND连接配置
文章目录一、ECU TEST 连接配置简介二、TBC配置 test bench configuration三、TCF配置 test configuration提示:以下是本篇文章正文内容,下面案例可供参考 一、ECU TEST 连接配置简介 1、ECU TEST(简称ET),用于HIL仿…...
postgres数据库连接管理
1.连接命令psql -d postgres -h 10.0.0.51. -p 1921 -U postgres(-d指定数据库名字)2.pg防火墙介绍(pg实例层面的权限控制)pg_hba.conf文件配置文件分为5部分:配置示例#TYPE DATABASE USER ADDRESS METHODhost all loc…...

【华为OD机试模拟题】用 C++ 实现 - 环中最长子串(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...
Spring:@Async 注解和AsyncResult与CompletableFuture使用
Async概述 Spring中用Async注解标记的方法,称为异步方法,它会在调用方的当前线程之外的独立的线程中执行, 其实就相当于我们自己new Thread(()-> System.out.println("hello world !"))这样在另一个线程中去执行相应的业务逻辑…...

tidb ptca,ptcp考证
PingCAP 认证 TiDB 数据库专员 V6 考试(2023-02-23)https://learn.pingcap.com/learner/exam-market/list?categoryPCTA PingCAP 认证 TiDB 数据库管理专家(PCTP - DBA)认证考试范围指引 - ☄️ 学习与认证 - TiDB 的问答社区:lo…...

关于用windows开发遇到的各种乌龙事件之node版本管理---nvm install node之后 npm 找不到的问题
友情提醒,开发最好用nvm控制node版本 nrm 控制镜像源,能少掉很多头发开发过程中技术迭代更新的时候最要老命的就是 历史项目的node版本没有记录,导致开启旧项目的时候就会报错。尤其是npm 升级到8.x.x以后,各种版本不兼容。 真…...

JMeter做UI自动化
插件安装搜插件selenium,安装添加config添加线程组右键线程组->添加->配置元件->jpgc - Chrome Driver Configoption和proxy不解释了添加Sampler右键线程组->添加->取样器->jpgc - WebDriver Samplerscript language 选择:JavaScript&…...

Kibana与Elasticsearch
下载与安装Kibanahttps://www.elastic.co/cn/downloads/kibanaKibana的版本与Elasticsearch的版本是一致的,使用方法也和Elasticsearch一致。由于我的英文不是特别好,我们找到config/kibana.yml末尾添加i18n.locale: "zh-CN" ,汉化…...

[数据结构]:03-栈(C语言实现)
目录 前言 已完成内容 单链表实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-StackCommon.cpp 04-StackFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容,除其中使用到C引用外,全为C语言代码。使用C引用主要是为了简…...

1W+企业都在用的数字化管理秘籍,快收藏!
企业数字化,绕不开的话题。 随着国家相继出台各种举措助力中小企业数字化转型,积极推动产业数字化转型,培育数字经济新生态,企业想要谋生存,求发展,必然需要做好数字化转型和管理。 本篇文章想跟大家一起…...

多模态机器学习入门——文献阅读(一)Multimodal Machine Learning: A Survey and Taxonomy
文章目录说明论文阅读AbstractIntroductionIntroduction总结Applications:A Historical Perspective补充与总结3 MULTIMODAL REPRESENTATIONS总结Joint Repersentations(1)总结和附加(一)Joint Repersentations(2)总结…...
通过哲学家进餐问题学习线程间协作(代码实现以leetcode1226为例)
哲学家进餐问题(代码实现以leetcode1226为例)问题场景解决思路解决死锁问题代码实现cgo(代码实现以leetcode1226为例) 提到多线程和锁解决问题,就想到了os中哲学家进餐问题。 问题场景 回想该问题产生场景,五个哲学家共用一张圆桌,分别坐在…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...