分类
外汇交易入门相关问答

移动平均在股票分析

# 查看数据的情况(规模),和训练本身无关,可不执行 new_data.shape, train.shape, valid.shape ((1235, 2), (987, 2), (248, 2))

技術分析常觸及移動平均線 背後原理你知多少呢?|聶振邦

上月與大家分享了一些有關技術分析的觀點,今日會延續此話題,早前指出技術指標有「四大歸類」,分別是成交量型指標,以及三種股價指標,就是順向指標、逆向指標和動力指標。市場上有一種常見的順向指標,就是移動平均線(Moving Average, MA)。筆者視為技術指標的入門好選擇。皆因筆者早前帶出股價指標之一的順向指標,除了MA,當時還列舉了保歷加通道(BB)、抛物線指標(SAR)、指數平滑移動平均線(MACD) 和三重指數平滑移動平均線(TRIX)。其中BB、MACD和TRIX都是由MA衍生出來的指標,這味意著當你學懂看MA,便能打好學習多個順向指標的基礎。

瞭解原理從運算方法開始

加權平均更能見股票實況

以上述10天的觀察時段為例,第10天的收市價位置,參考性最高;反之第1天的則是最低。而算術平均卻無法反映收市價在不同時點的相對重要性,假設了觀察時段內的所有收市價重要性是均等的。為解決此問題,可用加權算術平均(weighted arithmetic average),在計算平均值之前對應每個收市價加入一個權重因子。權重因子是以收市價的相應天數,除以所有收市價集合的相應天數總和,以3天作觀察時段為例,相應天數總和就是6(1 + 2 + 3),對應第1天收市價的權重因子就是1/6、第2天是2/6,以及第3天是3/6。

指數平均與加權平均差別

對於有關注技術指標的投資者,應會留意MACD和TRIX用到的平均數運算方法是指數平均 (exponential average),這是跟加權算術平均一樣,對應不同日子的收市價反映不同的權重之重要性。而兩者差別在於指數平均是由散離(discrete)轉化為連續 (continuous)。好處在於對應股價處於低波動狀態時,對於分析股價變化的敏感度較算術平均和加權算術平均為高。不過由於涉牽的運算步驟較多,因此一般經由電腦進行,簡單已兩天的週期為例,公式如下:

EMA(2) = (1 – α) x 移动平均在股票分析 EMA(1) +(α x C)

α:平滑因子(smoothing factor),計法是2 / (1 + n)。

【財經專欄】 聶振邦(聶Sir).新股聶人 |華盛證券分析師

炒股必看的时序预测基本方法 移动平均在股票分析 —— 移动平均(SMA、EMA、WMA)

Python中文社区 于 2021-12-14 09:00:移动平均在股票分析 00 发布 836 收藏 8

e47b61298456464da894d060e346402e.png

03c2fc57ee56d8e312b193da63556c1f.png

描述趋势特征

48411dc68e9a30b16cac56f9d55cd073.png

从上图可以看出,原序列波动较大,经移动平均后,随机波动明显减少;窗口大小越大,平滑后波动越小,滞后越明显。

简单移动平均

简单移动平均(Simple Moving Average),是最容易使用的一种,也是最容易理解的。

5584e2debc1996500fa43e392ac920ea.png

加权移动平均

加权移动平均(Weighted Moving Average)与SMA类似,但是在计算平均数时并不是等量齐观,可以给最近的观测值相对历史观测值更大的权重。比如股票价格,最近的价格最有影响力,历史价格随着时间拉长影响力越小。

移动平均在股票分析
608fb17879a4fd788644c165b5535854.png

指数移动平均

指数移动平均(Exponential Moving Average)可以看成是一种特殊的加权移动平均,有时也被称为指数加权移动平均线(EWMA)。和WMA类似,但它为以前的数值分配了一系列固定的指数递减权重,即权重系数随着时间呈指数下降。EMA提供了一个更明显的指标,能更快地反映最近的价格趋势。

12eaa1df248cb48ec134bc1081383c5f.png 45d90f3672ccaea8f3271776d8f2f1cf.png

  • ewm()方法中可通过四选一[com or span or halflife or alpha]调整衰减系数。根据质心指定衰减,则;根据跨度指定衰减,则;根据半衰期指定衰减,则;
    也可直接指定衰减系数alpha。

  • adjust参数控制指数移动平均函数的计算方式。
    adjust=False时,

方法对比分析

0046500140292d647102310e135f314d.png

从上图中的权重系数随时间间隔衰减情况可以看出,指数移动平均系数衰减较快,也因此一般也能更快的发现趋势的变化。

b5a60c814e1e0e1b2fe57e03750967ae.png

可以看出,三种方法均有一定的滞后性,所以在使用时用作判断长期趋势,短期股价分析还应结合更多指标。当然也可以互相组合使用,比如SMA+WMA,SMA+EMA;同时也可以通过设置窗口大小进行交叉分析,比如5日均线向上突破10日、30日均线股市中称之为“金叉”,利好。

CN101004817A - 移动平均在股票分析 移动平均在股票分析 金融股市趋势的分析系统和方法 - Google Patents

Publication number CN101004817A CN101004817A CNA2006100009514A CN200610000951A CN101004817A CN 101004817 A CN101004817 A CN 101004817A CN A2006100009514 A CNA2006100009514 A CN A2006100009514A CN 200610000951 A CN200610000951 A CN 200610000951A CN 101004817 A CN101004817 A CN 101004817A Authority CN China Prior art keywords trend district stock market uplift finance Prior art date 2006-01-16 Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as 移动平均在股票分析 to the accuracy of the status listed.) Pending Application number CNA2006100009514A Other languages English ( en ) Inventor 卓国裕 Original Assignee 卓国裕 Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.) 2006-01-16 Filing date 2006-01-16 Publication date 2007-07-25 2006-01-16 Application filed by 卓国裕 filed Critical 卓国裕 2006-01-16 Priority to CNA2006100009514A priority Critical patent/CN101004817A/zh 2007-07-25 Publication of CN101004817A publication Critical patent/CN101004817A/zh Status Pending legal-status Critical Current

如何预测股票分析--移动平均

#import packages 导入pandas、numpy库

import pandas as pd

import numpy as np

#to plot within notebook 移动平均在股票分析 绘图的库,如果不是在jupytor里面运行的话第二行可以省略

import matplotlib.pyplot as plt

%matplotlib inline

#setting figure size设定画布大小

from matplotlib.pylab import rcParams

rcParams['figure.figsize'] = 20,10

#for normalizing data 数据归一化

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler(feature_range=(0, 1))

#read the file 读取文件夹,注意这里的数据集要放在同一个文件夹下面

df = pd.read_csv('NSE-TATAGLOBAL(1).csv')

#print the head 打印数据前几行

df.head()移动平均在股票分析

#setting index as date 把date这一列作为索引

df['Date'] = pd.to_datetime(df.Date,format='%Y-%m-%d')

df.index = df['Date']

#plot 打印收盘价(按照上面的索引来)

plt.figure(figsize=(16,8))

plt.plot(df['Close'], label='Close Price history')

利用一组先前观测值的平均值作为每天的预期收盘价,移动平均法使用最近的一组数据计算预测值。换句话说,对于后续的每个新的时间,在考虑预测值时,将从集合中删除最早的观测值,并加入上一个观测值。下面是一个简单的图,它将帮助您更清楚地理解这一点。

取黄色的部分的平均值作为黄色的下一个的预测,之后扔掉最开始的,把预测的上,继续预测再下一个区域,可以理解为一个固定的窗口的滑动,每次取窗口内的a v g,预测窗口后一个的值

#creating dataframe with date and the target variable创建一个只包含日期和收盘价列的数据框

data = df.sort_index(ascending=True, axis=0)移动平均在股票分析 移动平均在股票分析

new_data = pd.DataFrame(index=range(0,len(df)),columns=['Date', 'Close'])

# 将所有日期和收盘价列的数据放到一个list中来

for i in range(0,len(data)):

new_data['Date'][i] = data['Date'][i]

new_data['Close'][i] = data['Close'][i]

#splitting into train and validation 数据分割为训练和验证集

train = 移动平均在股票分析 new_data[:987]

valid = new_data[987:]

# 查看数据的情况(规模),和训练本身无关,可不执行

new_data.shape, train.shape, valid.shape

((1235, 2), (987, 2), (248, 2))

# 查看数据的情况(最大最小值),和训练本身无关,可不执行

train['Date'].min(), 移动平均在股票分析 train['Date'].max(), valid['Date'移动平均在股票分析 ].min(), valid['Date'].max()

(Timestamp('2013-10-08 00:00:00'),

Timestamp('2017-10-06 00:00:00'),

Timestamp('2017-10-09 00:移动平均在股票分析 00:00'),

Timestamp('2018-10-08 00:00:00'))

#make predictions 为验证集创建预测值

preds = []

for i 移动平均在股票分析 in range(0,248):

a = train['Close'][len(train)-248+i:].sum() + sum(preds)

b = a/248

preds.append(移动平均在股票分析 b)

#calculate rmse 计算RMSE误差。

rms=np.sqrt(np.mean(np.power((np.array(valid['Close'])-preds),2)))

rms

104.51415465984348

#plot 画出训练的数据(绿线)、预测值(蓝线)与训练集的观测值(橙线)

# 对于第一行的作用为什么是0不是很理解,如果有知道的 大佬 麻烦留言处指点迷津

valid['Predictions'] = 0

valid['Predictions'] = preds

plt.plot(train['Close'])

plt.plot(valid'Close', 'Predictions')