【量化投资】离散傅里叶变换求数组周期

2023-11-10

        好久没有更新量化分析相关的内容,本节将介绍如何通过傅里叶变换求解一组数据当中可能存在的周期性,后续将应用本节的结果实际在量化程序中进行应用。本文计算方法不一定正确,欢迎大家多多指正,并在评论区进行交流

1 离散傅里叶变换

        离散傅里叶变换的公式如下:

        其中N为原始数据的长度,f(n)为原始数据,即随时间变化的序列。F(u)为傅里叶变换结果,可以看到F(u+1)和F(u)的每个频率分量相差1/N个频率间隔。因此,f(n)经过傅里叶变换后得到的F(u)在频域 上的频率间隔为1/N。

        另外,当u=0时,e指数部分取值为1。因此,F(0)是f(n)的平均值。

2 求解数组周期

        利用傅里叶变换求解数组周期的步骤:

        (1)利用1中的公式,求解傅里叶变换结果F(u)。

        (2)求解(1)中傅里叶变换的幅值。

        (3)求解(2)中傅里叶幅值的峰值,幅值越大的地方表示周期性越明显。

        (4)假设峰值出现在u=k处,那么根据1中分析,对应的频率为k/N,那么相应的周期为N/k。

3 示例程序

import numpy as np
from scipy.signal import find_peaks
import matplotlib.pyplot as plt


x = np.array([ 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])
N = x.shape[0]
print(N)
f = np.fft.fftn(x)  #全部变换,f[0]为全部取值累加结果
f = f[:N//2]

peaks, p = find_peaks(abs(f), height=0.1)
print(peaks)

# print(f)
# plt.plot(abs(x), '.')
plt.plot(abs(f), '.')
print(abs(f))
print(f[6])
real =  f[13].real
im = f[13].imag
theta = np.arctan(im/(real+1e-6))
pos = np.angle(f[13])/2/np.pi*5
print(np.angle(f[13]))
print(theta, pos)
# plt.show()

4 求解结果

 

         T =5。

        求解后的周期,最好进行验证,以免出现误差。本文计算方法不一定正确,欢迎大家多多指正,并在评论区进行交流

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【量化投资】离散傅里叶变换求数组周期 的相关文章

  • 为什么 statsmodels 和 R 的逻辑回归结果不同?

    我正在尝试比较 python 的 statsmodels 和 R 中的逻辑回归实现 Python版本 import statsmodels api as sm import pandas as pd import pylab as pl i
  • 在numpy中,[:,None]选择有什么作用?

    我正在学习 Udacity 的深度学习课程 我遇到了以下代码 def reformat dataset labels dataset dataset reshape 1 image size image size astype np flo
  • 代码运行时出现内存问题(Python、Networkx)

    我编写了一个代码来生成具有 379613734 条边的图 但由于内存问题 代码无法完成 当经过 6200 万行时 大约会占用服务器内存的 97 所以我杀了它 您有解决这个问题的想法吗 我的代码是这样的 import os sys impor
  • 我应该将Python的pyc文件添加到.dockerignore吗?

    我见过几个例子 dockerignorePython 项目的文件 其中 pyc文件和 或 pycache 文件夹被忽略 pycache pyc 由于无论如何这些文件 文件夹都会在容器中重新创建 我想知道这样做是否是一个好习惯 是的 这是一个
  • Visual Studio Code 调试控制台中的 pydevd 警告

    我已经搜索了一段时间但找不到任何相关问题 当使用 Visual Studio Code 和 Python 扩展来调试大型元素时 计算表示或获取属性可能需要一些时间 在这些情况下 会出现如下警告 pydevd 警告 计算 DataFrame
  • 如何检查Docker中是否安装了python包?

    我使用Dockerfile成功构建了一个容器 但是 我的代码在容器中不起作用 如果我手动安装所有软件包 它确实有效 我假设我搞砸了一些导致 docker 没有正确安装软件包的事情 所以 我想检查Docker容器中是否安装了python包 最
  • 字典键中的通配符

    假设我有一本字典 rank dict V 1 A 2 V 3 A 4 正如您所看到的 我在一个 V 的末尾添加了一个 虽然 3 可能只是 V 的值 但我想要 V1 V2 V2234432 等的另一个密钥 我想检查它 checker V30
  • 使用 Python 将 Json 转换为换行 Json 标准

    我有一个获取嵌套对象并删除所有嵌套的代码 使对象平坦 def flatten json y param y Unflated Json return Flated Json out def flatten x name if type x
  • 如何在 Python 中从 C++/C# 紧密实现 ?: ?

    在 C 中 我可以轻松编写以下内容 string stringValue string IsNullOrEmpty otherString defaultString otherString 有没有一种快速的方法可以在 Python 中做同
  • While 在范围内循环用户输入

    我有一些代码 我想要求用户输入 1 100 之间的数字 如果他们在这些数字之间输入一个数字 它将打印 Size input 并打破循环 但是 如果他们在外部输入一个数字1 100 它将打印 大小 输入 并继续向他们重新询问一个数字 但我遇到
  • python 从字典中获取唯一值

    我想从我的字典中获取唯一的值 Input 320 167 316 0 319 167 401 167 319 168 380 167 265 166 期望的输出 167 0 168 166 我的代码 unique values sorted
  • 有没有比 ` except: pass` 更简洁的替代方案?

    我有一个函数 可以按偏好顺序返回多个组的随机成员 事情是这样的 def get random foo or bar I d rather have a foo than a bar if there are foos return get
  • 在 Django 中删除特定用户的所有会话的最优化方法?

    我正在运行 Django 1 3 使用会话中间件和身份验证中间件 settings py SESSION ENGINE django contrib sessions backends db Persist sessions to DB S
  • Mxnet - 缓慢的数组复制到 GPU

    我的问题 我应该如何在 mxnet 中执行快速矩阵乘法 我的具体问题 数组复制到 GPU 的速度很慢 对此我们能做些什么呢 我创建随机数组 将它们复制到上下文中 然后相乘 import mxnet as mx import mxnet nd
  • 如何在 Windows 10 上将 ipynb 文件与 Jupyter Lab(来自 Anaconda)关联

    我使用 Windows 10 Jupiter Lab 是从 Anaconda 安装的 我想交往ipynb使用 Jupyter Lab 保存文件 这样 当我双击ipynb文件应使用 Jupyter Lab 打开 我该怎么做 Install n
  • 通过 Selenium 和 python 切换到 iframe

    我如何在硒中切换到这个 iframe 只知道 您可以使用 XPath 来定位 iframe driver find element by xpath iframe name Dialogue Window Then switch to th
  • 在 envoy 中使用 rm *(通配符):没有这样的文件或目录

    我正在使用 Python 和 Envoy 我需要删除目录中的所有文件 除了一些文件外 该目录是空的 在终端中 这将是 rm tmp my silly directory 常识表明 在特使中 这转化为 r envoy run rm tmp m
  • 忽略稀疏矩阵中的重复条目

    我尝试过初始化csc matrix and csr matrix从列表中 data rows cols 值如文档所示 sparse csc matrix data rows cols shape n n 问题是 我实际上拥有的生成方法dat
  • 检查一个数是否是完全平方数

    如何检查一个数是否是完全平方数 速度并不重要 目前 只是工作 See also Integer square root in python https stackoverflow com questions 15390807 依赖任何浮点计
  • Python DNS服务器IP地址查询

    我正在尝试使用 python 获取 DNS 服务器 IP 地址 要在 Windows 命令提示符下执行此操作 我将使用 ipconfig 全部 如下所示 我想使用 python 脚本做同样的事情 有什么方法可以提取这些值吗 我成功提取了设备

随机推荐

  • WebStorm2023新版设置多个窗口,支持同时显示多个项目工程

    调整设置 Appearance Behavior gt System Settings gt Project open project in New window
  • type='file' 标签选取文件/文件夹

    一般网页上传文件大家都会用到这个标签
  • tcp port numbers reused出现原因_从TCP协议的原理来谈谈rst复位攻击

    在谈RST攻击前 必须先了解TCP 如何通过三次握手建立TCP连接 四次握手怎样把全双工的连接关闭掉 滑动窗口是怎么传输数据的 TCP的flag标志位里RST在哪些情况下出现 下面我会画一些尽量简化的图来表达清楚上述几点 之后再了解下RST
  • element-ui样式篇:修改样式不影响全局,不影响其他组件

    element ui每个控件都自带了样式 使用时候很多时候需要修改样式 但是大多数遇到的情况是修改的样式要么不起作用 要么修改了默认样式 导致其他组件用到的地方样式都改了 如何修改样式起作用且不影响其他组件 一 如何找到element样式类
  • iwebsec靶场 SQL注入漏洞通关笔记5- updatexml注入(报错型盲注)

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1 数字型注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2 字符型注入 宽字节注入 mooyuan的博客 CSDN博客 iwebsec靶场 SQL
  • 数据结构与算法(二)(Python版)

    数据结构与算法 一 Python版 文章目录 递归动规 初识递归 数列求和 递归三定律 递归的应用 任意进制转换 递归的应用 斐波那契数列 递归调用的实现 分治策略与递归 优化问题和贪心策略 找零兑换问题 贪心算法和动态规划的区别 贪心策略
  • kotlin 协程

    协程 也叫微线程或者轻量级线程 协程和线程的关系 类似于 线程和进程的关系 一个进程可以创建多个线程 一个线程可以创建多个协程 协程也可以嵌套协程 特征 协程是运行在单线程中的并发程序 串行执行 协程简单理解 协程可以类比 Runnable
  • Mybaits面试题整理

    1 MyBatis是什么 MyBatis 是一款优秀的持久层框架 一个半 ORM 对象关系映射 框架 它支持定制化 SQL 存储过程以及高级映射 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBatis
  • HTML表格里分割线是否显示的问题

    使用HTML制作表格 关于表格中间的分割线显示与否的问题 不显示分割线示例 此时的代码为 这样的情况下 对于背景颜色的属性设定是加在了table标签后面的bgcolor red 此时 表格没有显示分割线 显示分割线示例 这样的情况下 对于背
  • OpenWrt 安装pip这种情况咋办!

    root OpenWrt tmp python get pip py DEPRECATION Python 2 7 will reach the end of its life on January 1st 2020 Please upgr
  • 单片机学习——存储器详解(程序存储器、片内RAM、拓展RAM、EEPROM)

    单片机必学系列 单片机学习 中断系统 单片机学习 存储器详解 程序存储器 片内RAM 拓展RAM EEPROM 单片机学习 定时器 计数器 单片机学习 A D转换 更新ing 单片机学习 存储器详解 程序存储器 片内RAM 拓展RAM EE
  • NAT类型理解

    参考 Web前端的WebRTC攻略 NAT穿越与ICE 掘金 NAT的四种类型 eydwyz的专栏 CSDN博客 nat类型 假定 内网clientA 192 168 0 100 800 与routeB 10 201 16 18 1000
  • 机器学习西瓜书吃瓜笔记之(二)决策树分类 附一键生成决策树&可视化python代码实现

    决策树分类 附一键生成可视化python代码实现 决策树 决策树是用于分类任务的树结构 它的叶子结点为类别 其余节点为判断操作 决策树类似于日常中判断分类的方法 对某个样本进行分类时 从根节点开始 得到所处节点的判断结果 移动到满足结果的子
  • keil调试stm32无法退出debug

    keil调试stm32 debug之后有时会遇到这种情况 导致无法退出debug 只能任务管理器强制结束任务 原因 keil对中文的支持不够友好 工程路径过深或路径中有中文 调试过程中打了断电 解决方式 把工程的路径改浅 改成英文路径 例如
  • VS2015出现“在当前源文件目录或生成系统文件目录中未找到xxx.h”完美解决

    用VS打开一个项目 在编译的时候会出现 corecrt h Nosuchfileordirectory 这样一个问题 其实这就是找不到对应的头文件 这个是VS自带的 说白了就是路径的问题 后来 我在vc 包含目录和库目录添加了对应的头文件和
  • git提交新项目到github上

    博客引用处 以下内容在原有博客基础上进行补充或更改 谢谢这些大牛的博客指导 如何将idea本地已有的新项目完整提交到gitlab上 利用git提交代码 1 Idea的方式 使用idea开发工具新建了一个项目工程 此时该项目工程是没有任何的版
  • C++ 基本的输入输出

    C 标准库提供了一组丰富的输入 输出功能 我们将在后续的章节进行介绍 本章将讨论 C 编程中最基本和最常见的 I O 操作 C 的 I O 发生在流中 流是字节序列 如果字节流是从设备 如键盘 磁盘驱动器 网络连接等 流向内存 这叫做输入操
  • 5.27下周黄金行情走势预测及开盘操作策略

    近期有哪些消息面影响黄金走势 下周黄金多空该如何研判 黄金消息面解析 周五 5月26日 黄金大幅下跌 主要受到美国数据影响 美国公布的4月PCE和耐用品订单数据向好 再次强化市场对美联储的鹰派押注 现货黄金收报1946 63美元 盎司 目前
  • 联想拯救者2020R7000双系统装机记录_自用

    文章目录 材料 一 启动盘制作 1 下载ubuntu镜像文件 2 下载刻录工具UltralSO 3 使用UltralSO刻录Ubuntu镜像到U盘内 二 电脑设置 1 创建硬盘空白分区 2 设置BIOS 三 安装系统 1 重新开机的过程中摁
  • 【量化投资】离散傅里叶变换求数组周期

    好久没有更新量化分析相关的内容 本节将介绍如何通过傅里叶变换求解一组数据当中可能存在的周期性 后续将应用本节的结果实际在量化程序中进行应用 本文计算方法不一定正确 欢迎大家多多指正 并在评论区进行交流 1 离散傅里叶变换 离散傅里叶变换的公