Python数据分析之股票双均线策略制定
Python数据分析之股票双均线策略制定
需求:双均线策略制定
库
tushare包
预处理数据
df = pd.read_csv('./maotai.csv').drop(labels='Unnamed: 0', axis=1)
# 将date列转为时间序列且将其作为原数据的行索引
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
均线的计算分析
- 计算该股票历史数据的5日均线和30日均线
- 什么是均线?
- 对于每一个交易日,都可计算出前N天的移动平均值,然后把这些移动平均值连起来成为一条线,就叫做N日移动平均线。常用线有5天、10天、30天、60天、120天和240天的指标。
- 5天和10天的是短线操作的参照指标,称作日均线指标
- 30天和60天的是中期均线指标,称作季均线指标
- 120天和240天的是长期均线指标,称作年均线指标
- 对于每一个交易日,都可计算出前N天的移动平均值,然后把这些移动平均值连起来成为一条线,就叫做N日移动平均线。常用线有5天、10天、30天、60天、120天和240天的指标。
- 均线计算方法:MA=(C1+C2+C3+…+Cn)/N,C:某日收盘价 N:移动平均周期(天数)
- 什么是均线?
ma5 = df['close'].rolling(5).mean() # 五日均值线
ma30 = df['close'].rolling(30).mean() # 30日均值线
# 绘制均线
import matplotlib.pyplot as plt
import matplotlib.pylab as pla
plt.plot(ma5)
plt.plot(ma30)
pla.show()
plt.plot(ma5[50:180])
plt.plot(ma30[50:180])
金叉&死叉
- 分析输出所有金叉日期和死叉日期
- 股票分析技术中的金叉和死叉,可以简单解释为:
- 分析指标中的两根线,一根为短时间内的指标线,另一根为较长时间的指标线
- 如果短时间的指标线方向拐头向上,并且穿过了较长时间的指标线,这种状态叫“金叉”
- 如果短时间的指标线方向拐头向下,并且穿过了较长时间的指标线,这种状态叫“死叉”
- 一般情况下,出现金叉后,操作趋向买入;死叉则趋向卖出。金叉和死叉只是分析指标之一,要和其他很多指标配合使用,才能增加操作的准确性
- 股票分析技术中的金叉和死叉,可以简单解释为:
# 保证索引一样
df = df[30:]
ma5 = ma5[30:]
ma30 = ma30[30:]
s1 = ma5 < ma30 # 短期小于长期,即短从下穿过长
s2 = ma5 > ma30 # 短期大于长期,即短从上穿过长
# 判定死叉的条件,相与为True
death_ex = s1 & s2.shift(1)
death_date = df.loc[death_ex].index
# 判定金叉的条件,相或为False
golden_ex = -(s1 | s2.shift(1)) # 由于False不显示,因此需要求反
golden_date = df.loc[golden_ex].index
双均线策略的测试
- 如果从2010年1月1日开始,初始资金为100000元,金叉尽量买入,死叉全部卖出,则到今天为止,炒股收益率如何?
- 分析:
- 买卖股票的单价使用开盘价
- 买卖股票的时机
- 最终手里会有剩余的股票没有卖出
- 会有。若最后一天为金叉,则买入股票。估量剩余股票的价值计算到总收益
- 剩余股票的单价就是用最后一天的收盘价
- 会有。若最后一天为金叉,则买入股票。估量剩余股票的价值计算到总收益
- 分析:
# 1作为金叉的标识,0作为死叉的标识
t1 = Series(data=1, index=golden_date)
t2 = Series(data=0, index=death_date)
t = t1.append(t2)
t = t.sort_index()
t = t['2010':'2022'] # 存储的金叉与死叉对应的时间
first_money = 100000 # 本金
money = first_money
hold = 0 # 持有股票数量(股数:100股=1手)
for i in range(len(t)): # i表示的t这个Series中的隐式索引if t[i] == 1: # 金叉# 获取股票的单价,即金叉对应的开盘价golden_time = t.index[i] # 金叉时间p_golden = df.loc[golden_time]['open'] # 股票的单价hold += (money // (p_golden * 100)) * 100 # 使用100000尽可能多买入money -= (hold * p_golden) # 减去买入的花费else:# 找出卖出股票的单价death_time = t.index[i] # 死叉时间p_death = df.loc[death_time]['open']money += (p_death * hold) # 加上卖出的收入hold = 0 # 全部卖出
# 如何判定最后一天为金叉还是死叉
last_money = hold * df['close'][-1] # 剩余股票价值
# 总收益
total = money + last_money - first_money
Python数据分析之股票双均线策略制定相关推荐
- 数据分析——股票双均线策略分析
在数据分析中,对于股票双均线策略分析是其中一个应用,这对于短期投资来说是非常有用的(虽然咱们不推荐). 什么是均线? 对于每一个交易日,都可以计算出前N天的移动平均值,然后把这些移动平均值连起来,成为 ...
- Python量化交易02——双均线策略(移动平均线)
参考书目:深入浅出Python量化交易实战 本次带来最经典的交易策略,双均线策略的构建和其回测方法. 双均线一般采用5天均值和10天均值,如果5日均线上穿突破了10日均线,说明股价在最近的涨势很猛,买 ...
- Python股票双均线策略
使用Python的第三方模块pandas,matplotlib和tushare(获取股票数据的接口)来绘制双均线并找出金叉与死叉. 双移动平均线_百度百科 金叉_百度百科 死亡交叉(股市术语)_百度百 ...
- 2020-12-24 如何编写一个简单的双均线策略
如何编写一个简单的双均线策略 目的:编写一个无需写入函数.类的简单策略,对比文字与代码表达的区别,了解编写逻辑与原理 策略类型:双均线策略 策略原理: 双均线策略,指的是运用两条不同周期的移动平均线, ...
- 数据分析项目(python):股票数据导入、计算上涨、计算下跌、收益计算、双均线策略
1.股票数据导入_代码示例 import pandas as pd import numpy as np import tushare as ts # 财经数据接口包#获取某只股票的历史行情 #cod ...
- 利用双均线策略计算中国平安股票收益
一.知识储备 Hello,各位小伙伴们,本篇博文给大家带来的是利用双均线策略,对中国平安601318股票进行炒股,所能获得的大概收益.为了你能正确理解本文的知识,需要你提前做以下准备... pytho ...
- Python双均线策略回测(2021-10-12)
Python双均线策略回测 1.择时策略简介 根据百度百科的解释,择时交易是指利用某种方法来判断大势的走势情况,是上涨还是下跌或者是盘整.如果判断是上涨,则买入持有:如果判断是下跌,则卖出清仓,如果是 ...
- python双均线策略,当五日均线位于十日均线上方则买入,反之卖出。(聚宽量化平台使用)
''' ** python双均线策略,当五日均线位于十日均线上方则买入,反之卖出.(聚宽量化平台使用) ** ''' 初始化函数,设定要操作的股票.基准等等 def initialize(contex ...
- Python量化交易策略--双均线策略及代码
双均线策略是比较经典的策略,股票的价格均线是投资参考的重要指标.均线有快线和慢线之分,当快线向上穿过慢线则是金叉,一般执行买入操作,当快线向下穿过慢线时则形成死叉,一般执行卖出操作.基于这个基本思路, ...
最新文章
- Java中迭代列表中数据时几种循环写法的效率比较
- Java + Vue 实现的在线考试系统
- Tarjan有向图强连通分量
- 学会这几个Redis技巧,让你的程序快如闪电
- 牛客小白月赛37【部分题解】
- API-基本数据类型与字符串的互换
- 【Python CheckiO 题解】Second Index
- MOSS点滴(2):自定义Application Page
- python操作mysql,增,删,改,查
- Linux 之父家断电六天:内核更新延期;华为 EMUI 11 用户突破1亿;美国得州最大电力公司申请破产 | 极客头条...
- 吐槽Javascript系列三:数组的陷阱
- 【软件工程导论】软件工程学概述
- WINDOWS编译OpenJDK8的问题及解决办法
- matlab机器学习之knn算法实例
- 印刷MES管理系统等数字化系统,应用发展如此迅速
- VC中GDI绘图技术基础知识:hdc设备环境句柄,坐标系
- 小学计算机教师应聘简历,应聘小学教师的个人简历模板
- 小白看了也会选:数据分析的常见工具有哪些
- STM32系列 STM32F4xx SPI Flash-读写操作
- 关于 RTOS 的选择