python编写股票公式_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. 效果图

以上这篇Python绘制股票移动均线的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持谷谷点程序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值