Python绘制股票移动均线的实例
作者:微岩 发布时间:2023-07-15 10:31:06
标签:Python,股票,移动,均线
1. 前沿
移动均线是股票最进本的指标,本文采用numpy.convolve计算股票的移动均线
2. numpy.convolve
numpy.convolve(a, v, mode='full')
Returns the discrete, linear convolution of two one-dimensional sequences.
The convolution operator is often seen in signal processing, where it models the effect of a linear time-invariant system on a signal [R17]. In probability theory, the sum of two independent random variables is distributed according to the convolution of their individual distributions.
If v is longer than a, the arrays are swapped before computation.
Parameters:
a : (N,) array_like
First one-dimensional input array.
v : (M,) array_like
Second one-dimensional input array.
mode : {‘full', ‘valid', ‘same'}, optional
‘full':
By default, mode is ‘full'. This returns the convolution at each point of overlap, with an output shape of (N+M-1,). At the end-points of the convolution, the signals do not overlap completely, and boundary effects may be seen.
‘same':
Mode same returns output of length max(M, N). Boundary effects are still visible.
‘valid':
Mode valid returns output of length max(M, N) - min(M, N) + 1. The convolution product is only given for points where the signals overlap completely. Values outside the signal boundary have no effect.
Returns:
out : ndarray
Discrete, linear convolution of a and v.
计算公式:
eg:
>>> import numpy as np
>>>
>>> np_list = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>>
>>> np_list
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> x = np.convolve(np_list, 2)
>>> x
array([ 2, 4, 6, 8, 10, 12, 14, 16, 18])
>>> x = np.convolve(np_list, [0.5, 0.5])
>>> x
array([ 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 4.5])
3. 移动均线计算
def moving_average(x, n, type='simple'):
x = np.asarray(x)
if type == 'simple':
weights = np.ones(n)
else:
weights = np.exp(np.linspace(-1., 0., n))
weights /= weights.sum()
a = np.convolve(x, weights, mode='full')[:len(x)]
a[:n] = a[n]
return a
ma10 = moving_average(close_data, 10, 'simple')
ma20 = moving_average(close_data, 20, 'simple')
ax1.plot(data['date'], ma10, color='c', lw=2, label='MA (10)')
ax1.plot(data['date'], ma20, color='red', lw=2, label='MA (20)')
4. 效果图
来源:https://blog.csdn.net/matrix_laboratory/article/details/50700018
0
投稿
猜你喜欢
- 本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下题目:写一个简单的图书借阅系统
- 在IE6中背景属性加 a 与 a:hover 两者的伪类结合,在正常逻辑下为何不起作用?测试这问题存在IE6及以下浏览器,这问题我经常遇到在
- 前言大家做开发的应该都知道,在开发程序中很重要的一点是测试,我们如何保证代码的质量,如何保证每个函数是可运行,运行结果是正确的,又如何保证写
- JAVA程序想要访问数据库,需要进行如下准备:1.安装一个数据库(这里使用mysql免安装版)2.下载该数据库的驱动包(这里使用mysql官
- 1、利用File Watchersgoland->Preferences->搜索框内输入 file watchers->选
- startswith()方法Python startswith() 方法用于检查字符串是否是以指定子字符串开头如果是则返回 True,否则返
- 这些常量在 PHP 的内核中定义。它包含 PHP、Zend 引擎和 SAPI 模
- 如何限制上传文件的大小?要限制上传大小,只需如下设置一个属性即可: &
- bootstrap.js的大概1154行:this.$element.css({ paddingLeft: !this.bod
- 多线程-共享全局变量#coding=utf-8from threading import Threadimport timeg_num =
- 一、前言最近趁空闲之余,在对MySQL数据库进行插入数据测试,对于如何快速插入数据的操作无从下手,在仅1W数据量的情况下,竟花费接近47s,
- CSS的出现使网页制作者在对网页元素的控制方便许多,当然,有利必有弊,CSS只能对颜色、大小、距离等静
- 版本:MySQL-5.7.32前言:对于业务繁忙的数据库来说,在运行了一定时间后,往往会产生一些数据量较大的表,特别是对于每天新增数据较多的
- 本文实例讲述了Python实现嵌套列表及字典并按某一元素去重复功能。分享给大家供大家参考,具体如下:#! /usr/bin/env pyth
- 1、MySQL8.0.16解压其中dada文件夹和my.ini配置文件是解压后手动加入的,如下图所示2、新建配置文件my.ini放在D:\F
- 本文实例讲述了Python实现删除列表中满足一定条件的元素。分享给大家供大家参考,具体如下:从列表中删除满足一定条件的元素。如:删除一个列表
- 一、模拟数据库数据1-1 创建数据库及表脚本 - vim slap.sh#!/bin/bash HOSTNA
- python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without an
- Atlassian是一家软件开发商, 2002年创建于澳大利亚悉尼,在旧金山、阿姆斯特丹也有办公室,2011年收入为1亿美元,较2010年增
- 哈夫曼树原理秉着能不写就不写的理念,关于哈夫曼树的原理及其构建,还是贴一篇博客吧。https://www.jb51.net/article/