量化择时——资金流择时策略(第1部分—因子测算)

2023-10-19 06:50

本文主要是介绍量化择时——资金流择时策略(第1部分—因子测算),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 资金流模型概述
    • 资金流模型的有效性逻辑
    • 资金流向指标MFI(Money Flow Index)
  • MFI指标测算
    • 测算规则
    • 测算结论

资金流模型概述

通常,资金流是一种反映股票供给信息的指标,宏观上来讲,我们知道一个道理:僧多粥少的时候“粥”就格外的值钱。在股市中,一般情况下,股票的总量是固定的,能用来交易的量也是相对固定的,当钱(僧)大量涌入的时候,会使原有的股票更加值钱,反之股票价格会下跌。

市场微观结构理论认为,根据委托流测算的资金流能够有效反映一些市场博弈的状态:

  • 资金净流入导致价格上涨
  • 资金净流出导致价格下跌

在使用资金流模型时,我们通常定义:

  1. 资金流入:证券价格处于上升状态时,产生的成交额被认为是推动价格上涨的力量,记为资金流入
  2. 资金流出:证券价格处于下跌状态时,产生的成交额被认为是推动价格下跌的力量,记为资金流出

如果研究的更加细致的话,可以将资金流划分的更加细致:“大资金流”,“中资金流”,“小资金流”,同样也有针对个股的资金流模型,也有针对板块指数的资金流模型。这篇文章就只研究基本的现金流指标,更加细致的研究后面补充哈~

资金流模型的有效性逻辑

  1. 什么样的交易会促使价格发生变动?

    如果我只想以1元/股成交茅台的股票,显然是不会成功的,卖方漫天要价同理是无法成交的。但如果此时有人愿意以100元/股的价格卖出,而有人愿意以100.01/股的价格买入,那么这个交易按照股市的逻辑是会以100元/股成功的。因此,买方与卖方的边际需求决定成交价,即:
    只有两种情况会导致价格表现为上涨、下跌:

    • 上涨:买方主动以卖方期待的价格成交,买方的行为将价格向上推(最终会以卖一价成交)
    • 下跌:卖方主动以买方期待的价格成交,卖方的行为将价格向下推(最终会以买一价成交)

    而资金流就是通过判断推动力量的方向,预判未来的涨跌幅,并以此为依据做出决策的一种思想

  2. 资金的流入、流出与成交价变化的关系?

    如上所述,“积极主动的买入、卖出”行为会导致成交价发生变化,因此固定时间窗口(如分钟线)下,通过成交量的大小,就可以判断在这一段时间内主动成交的参与者将价格推动到了何种程度。此时我们以价格的上涨或下跌作为资金的方向,就可以判断:

    • 资金流入的动力有多少,推动价格上涨的阻力有多大
    • 资金流出的动力有多少,推动价格下跌的阻力有多大

    但是根据涨跌幅判断资金的流入流出有两种特殊情况:

    • 成交量没有明显变化,但是价格发生明显的偏移(价格踏空):表示买方或卖方的报价之间出现断层,买方与卖方对价格的看法出现分歧。
      注意:此时容易出现虚假的盘面走势,因为盘面价格只代表成交价,这个判断需要对比看十挡价格
    • 成交量特别大,但价格没有明显变化:表示买方卖方在频繁换手,即上涨、下跌阻力较大

    注:在期货中,可以根据持仓总量辅助判断资金的流入、流出。但是股票由于股票交易数量相对固定,因此通常只根据价格的涨跌幅判断资金的流入、流出。

  3. 资金流的逆向选择策略

    在股市中,因为机构投资者与散户的信息不对称,在发生导致价格偏移的信息时,机构投资者会以大资金入场或出逃,增加成交量。散户“跟风”随后决策,此时容易导致“反应过度”。同样,机构投资者也会因为关注同行的投资行为,“羊群效应”的产生会强化超买、超卖的情况发生。

    修正反应过度带来的价格偏移就是资金流策略的思路,因此资金流模型通常赚的就是超买、超卖的钱。

资金流向指标MFI(Money Flow Index)

资金流量指标是RSI相对强弱指标和OBV人气指标两者的结合,用于测度交易量的动量和投资兴趣。根据MFI的值大小,来判断超买、超卖现象是否发生,是否存在获益机会

计算规则如下:

  1. 选定时间窗口,每一个窗口都会计算出一个MFI值,通常窗口长度N=14
  2. 计算当天的:
    • 当天典型价格(TP)=(当天最高价 + 当天最低价 + 当天收盘价)/ 3
    • 当天资金流量(MF)= 当天典型价格(TP)* 当天成交量
  3. 判断资金的流入、流出
    • 如果当日MF > 昨日MF,表示价格向上偏移,资金流入,正资金流量(PMF)
    • 如果当日MF < 昨日MF,代表价格向下偏移,资金流出,负资金流量(NMF)
  4. 资金流动比率 = N天内的PMF / N天内的NMF
  5. IMF = 100 - 100/(1+资金流动比率)

根据指标计算公式,可知:

  1. 资金流动比率的值域是(0,正无穷),IMF的值域是(0,100)

  2. 如果资金在N天内一直流入,此时IMF=100

  3. IMF与指数走势图如下所示:
    在这里插入图片描述

  4. IMF与典型价格TP的走势图如下所示:
    在这里插入图片描述

MFI指标测算

测算规则

这一部分,我们测算MFI指标对个股的影响,同时将时间段分为两个部分:

  • 测算:2015年1月1日至2020年1月1日
  • 回测:2020年1月1日至2022年11月1日

测算时,只挑选2015年1月1日至2020年1月1日这个时间段内,数据量大于200个交易日的股票。

按照交易策略:

  1. 当MFI<20时为超卖,当其向上突破20时,为买点
  2. 当MFI>80时为超买,当其向下跌破80时,为卖点

这里我们统计每一次交易(从买点到卖点)的收益率:

  1. 转化为年化收益率
  2. 以年化收益率>2%记为胜,胜率=胜的次数/总交易次数

测算结论

胜率最高,且交易次数最高的前10只个股如下:
在这里插入图片描述

胜率最低,且交易次数最高的前10只个股如下:

在这里插入图片描述

综合3037只个股,综合统计的胜率如下:

胜率交易次数年化收益率-均值年化收益率-方差年化收益率-25%年化收益率-75%年化收益率-中位数
均值0.564.430.671.29-0.021.040.38
方差0.251.721.351.451.111.571.24
最小值01-1.440-4.38-1.44-1.44
25%0.430.080.52-0.320.26-0.08
50%0.5740.430.92-0.140.720.18
75%0.7560.961.580.11.420.57
最大值11151.6527.2151.6551.6551.65

这篇关于量化择时——资金流择时策略(第1部分—因子测算)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/238069

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

缓存策略使用总结

缓存是提高系统性能的最简单方法之一。相对而言,数据库(or NoSQL数据库)的速度比较慢,而速度却又是致胜的关键。 如果使用得当,缓存可以减少相应时间、减少数据库负载以及节省成本。本文罗列了几种缓存策略,选择正确的一种会有很大的不同。缓存策略取决于数据和数据访问模式。换句话说,数据是如何写和读的。例如: 系统是写多读少的吗?(例如基于时间的日志)数据是否是只写入一次并被读取多次?(例如用户配

Flink任务重启策略

概述 Flink支持不同的重启策略,以在故障发生时控制作业如何重启集群在启动时会伴随一个默认的重启策略,在没有定义具体重启策略时会使用该默认策略。如果在工作提交时指定了一个重启策略,该策略会覆盖集群的默认策略默认的重启策略可以通过 Flink 的配置文件 flink-conf.yaml 指定。配置参数 restart-strategy 定义了哪个策略被使用。常用的重启策略: 固定间隔 (Fixe

项目实战系列三: 家居购项目 第四部分

购物车 🌳购物车🍆显示购物车🍆更改商品数量🍆清空购物车&&删除商品 🌳生成订单 🌳购物车 需求分析 1.会员登陆后, 可以添加家居到购物车 2.完成购物车的设计和实现 3.每添加一个家居,购物车的数量+1, 并显示 程序框架图 1.新建src/com/zzw/furns/entity/CartItem.java, CartItem-家居项模型 /***

码蹄集部分题目(2024OJ赛9.4-9.8;线段树+树状数组)

1🐋🐋配对最小值(王者;树状数组) 时间限制:1秒 占用内存:64M 🐟题目思路 MT3065 配对最小值_哔哩哔哩_bilibili 🐟代码 #include<bits/stdc++.h> using namespace std;const int N=1e5+7;int a[N],b[N],c[N],n,q;struct QUERY{int l,r,id;}que

Java后端微服务架构下的API限流策略:Guava RateLimiter

Java后端微服务架构下的API限流策略:Guava RateLimiter 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在微服务架构中,API限流是保护服务不受过度使用和拒绝服务攻击的重要手段。Guava RateLimiter是Google开源的Java库中的一个组件,提供了简单易用的限流功能。 API限流概述 API限流通过控制请求的速率来防止

未雨绸缪:环保专包二级资质续期工程师招聘时间策略

对于环保企业而言,在二级资质续期前启动工程师招聘的时间规划至关重要。考虑到招聘流程的复杂性、企业内部需求的变化以及政策标准的更新,建议环保企业在二级资质续期前至少提前6至12个月启动工程师招聘工作。这个时间规划可以细化为以下几个阶段: 一、前期准备阶段(提前6-12个月) 政策与标准研究: 深入研究国家和地方关于环保二级资质续期的最新政策、法规和标准,了解对工程师的具体要求。评估政策变化可