需求:双均线策略制定¶
1.使用tushare包获取某股票的历史行情数据2.计算该股票历史数据的5日均线和30日均线什么是均线?
对于每一个交易日,都可以计算出前N天的移动平均值,然后把这些移动平均值连起来,成为一条线,就叫做N日移动平均线。移动平均线常用线有5天、10天、30天、60天、120天和240天的指标。
5天和10天的是短线操作的参照指标,称做日均线指标;
30天和60天的是中期均线指标,称做季均线指标;
120天和240天的是长期均线指标,称做年均线指标。
均线计算方法:MA=(C1+C2+C3+...+Cn)/N C:某日收盘价 N:移动平均周期(天数)3.分析输出所有金叉日期和死叉日期
股票分析技术中的金叉和死叉,可以简单解释为:
分析指标中的两根线,一根为短时间内的指标线,另一根为较长时间的指标线。
如果短时间的指标线方向拐头向上,并且穿过了较长时间的指标线,这种状态叫“金叉”;
如果短时间的指标线方向拐头向下,并且穿过了较长时间的指标线,这种状态叫“死叉”;
一般情况下,出现金叉后,操作趋向买入;死叉则趋向卖出。当然,金叉和死叉只是分析指标之一,要和其他很多指标配合使用,才能增加操作的准确性。4.如果我从假如我从2010年1月1日开始,初始资金为100000元,金叉尽量买入,死叉全部卖出,则到今天为止,我的炒股收益率如何?
分析:买卖股票的单价使用开盘价买卖股票的时机最终手里会有剩余的股票没有卖出去会有。如果最后一天为金叉,则买入股票。估量剩余股票的价值计算到总收益。剩余股票的单价就是用最后一天的收盘价。
import tushare as ts
import pandas as pd
import matplotlib.pyplot as pltdf = ts.get_k_data('000001',start='1990-01-01')
df.head()
df.info()# 将date作为行索引,使用to_datetime()
df['date'] = pd.to_datetime(df['date'])
# 发现date那行的Dtype由object变为了datetime64
df.info()
# 更改date为行索引
df.set_index('date',inplace=True)
df.head()# 将字符串改为整型
df['code'] = df['code'].astype('int')
# code已变
df.info()# 目前数据已经处理好
# 计算该股票历史数据的5日均线和30日均线
ma5 = df['close'].rolling(5).mean()
ma30 = df['close'].rolling(30).mean()
# 为什么前四项为空,因为只有从第五个开始,才有五日均值,正如前29个为空。
# ma5# 将ma5与ma30的值加入到表中
df['ma5'] = ma5
df['ma30'] = ma30
df.head()# 将空值对应的行数据删掉,ma30的前29行,基本没影响,可以用切片.
# 此时data为新数据,但是df还是有空的。
data = df[30:]# 把ma5和ma30的线画出来,取其中100个点
plt.plot(data['ma5'][100:200],label='ma5')
plt.plot(data['ma30'][100:200],label='ma30')
plt.legend()
# ma5和ma30的交叉点就是金叉或者死叉
# 短期均线和长期均线谁更敏感一点?短期均线
# 如果短时间的指标线方向拐头向上,并且穿过了较长时间的指标线,这种状态叫“金叉”;简单来说就是,短期上穿长期
# 如果短时间的指标线方向拐头向下,并且穿过了较长时间的指标线,这种状态叫“死叉”;简单来说就是,短期下穿长期# 找到data中的金叉和死叉日期,肯定有很多,.shift(1),右移一位
s1 = ma5 > ma30
s2 = ma5 < ma30
s3 = s2.shift(1)death_cross_time = data.loc[s1&s3].index
golden_cross_time = data.loc[~(s1|s3)].index# 获取前两个金叉和死叉
# death_cross_time[[1,2]],golden_cross_time[[1,2]]# 接下来就是实现金叉买,死叉卖new_df = data['2010':'2020']
new_df# 获取2010-2020年的金叉和死叉
s1 = ma5 < ma30
s2 = ma5 > ma30
s3 = s2.shift(1)
death_cross_time = new_df.loc[s1&s3].index
golden_cross_time = new_df.loc[~(s1|s3)].indexdeath_cross_timefirst_money = 100000 # 本金
cost_money = 100000  # 流动资金
# 将金叉和死叉的时间全部整合到一个Series中
# 金叉用1表示,死叉用0表示
s1 = pd.Series(data=1,index=golden_cross_time)
s2 = pd.Series(data=0,index=death_cross_time)
# Series级联操作
s = s1.append(s2)# s按照索引排序,1就买,0就卖
s = s.sort_index()
shold = 0 # 持有股票数量
for i in range(len(s)):if s[i] == 1:date = s.index[i] # 拿到金叉时间,买入price = new_df.loc[date]['open'] # 买股票单价,用开盘价hand_count = cost_money // (100*price) # 最多买入多少手hold = hand_count*100 # 持有股票数量cost_money -= hold * priceelse: # 卖股票death_time = s.index[i]sell_price = new_df.loc[death_time]['open']cost_money += (sell_price*hold)hold = 0# 考虑是否有股票剩余,看最后一天
last_price = new_df['open'][-1] # 剩余股票的单价
last_money = hold * last_price
print('总收益:',cost_money+last_money-first_money)总收益: 426296.2999999997

python数据分析04--双均线策略、金叉与死叉的理解相关推荐

  1. 数据分析——股票双均线策略分析

    在数据分析中,对于股票双均线策略分析是其中一个应用,这对于短期投资来说是非常有用的(虽然咱们不推荐). 什么是均线? 对于每一个交易日,都可以计算出前N天的移动平均值,然后把这些移动平均值连起来,成为 ...

  2. 4、Python量化交易-双均线策略

    目录 一.数据准备 二.5日均线和30日均线 1 - 均线的概念 2 - 计算5日均线与30日均线 3 - 画出MA5和MA30 三.金叉和死叉 1 - 金叉和死叉概念 2 - 分析所有金叉日期和死叉 ...

  3. Python数据分析之股票双均线策略制定

    Python数据分析之股票双均线策略制定 需求:双均线策略制定 库 tushare包 预处理数据 df = pd.read_csv('./maotai.csv').drop(labels='Unnam ...

  4. python量化 双均线策略(金叉死叉)

    #小策略,策略逻辑是在金叉时候买进,死叉时候卖出,所谓金叉死叉是两条均线的交叉,当短期均线上穿长期均线为金叉,反之为死叉 #下面是策略代码及结构 # 导入函数库 from jqdata import ...

  5. 数据分析项目(python):股票数据导入、计算上涨、计算下跌、收益计算、双均线策略

    1.股票数据导入_代码示例 import pandas as pd import numpy as np import tushare as ts # 财经数据接口包#获取某只股票的历史行情 #cod ...

  6. Python双均线策略回测(2021-10-12)

    Python双均线策略回测 1.择时策略简介 根据百度百科的解释,择时交易是指利用某种方法来判断大势的走势情况,是上涨还是下跌或者是盘整.如果判断是上涨,则买入持有:如果判断是下跌,则卖出清仓,如果是 ...

  7. Python量化交易策略--双均线策略及代码

    双均线策略是比较经典的策略,股票的价格均线是投资参考的重要指标.均线有快线和慢线之分,当快线向上穿过慢线则是金叉,一般执行买入操作,当快线向下穿过慢线时则形成死叉,一般执行卖出操作.基于这个基本思路, ...

  8. 用Python写一个简单的双均线策略分析

    用Python写一个简单的双均线策略 双均线策略 先罗列一下我知道的量化策略: 双均线:一句话来讲就是金叉买死叉卖. 布林带:突破压力线(上轨)清仓,跌破支撑线(下轨)持仓. PEG:根据PE/G调整 ...

  9. Python量化交易实战-38使用开源项目回测双均线策略

    B站配套视频教程观看 使用PyAlgoTrade回测双均线策略 双均线策略:长短周期均线,通过金叉,死叉的方式买入卖出股票,获取收益的策略. 回顾上节课代码的部分,上节课完成了可视化代码的部分, 主要 ...

  10. Python量化编程如何判断均线数据是金叉还是死叉?-股市数据均线策略编程分析

    Python量化编程如何判断均线数据是金叉还是死叉?-股市数据均线策略编程分析 以平安银行的股票数据为例进行分析 1.使用tushare获取股市数据,直接上代码: import pandas as p ...

最新文章

  1. android5.0(Lollipop) BLE Peripheral深入理解系统篇之提高篇
  2. Tornado基本使用
  3. addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用
  4. SAP各种凭证的取消小结
  5. idea上一些比较有用的插件
  6. 负载均衡环境搭建实战之nginx和tomcat
  7. 谈谈自己对于Auth2.0的见解
  8. Android Jetpack 之 ViewModel
  9. 精心整理的十个必须要知道CSS+DIV技巧
  10. 漏洞CNNVD-201805-248的复现与提权
  11. Java字符串排序-带数字字母的字符串混合排序
  12. 矩阵迹的常用性质,导数,以及推导过程
  13. 【AAAA级LED护眼学习台灯照明方案】PWM内部转模拟,调光深度1%,无频闪顾虑,低亮无抖动LED恒流驱动芯片FP7102/FP7103/FP7208/FP7209
  14. Cesium为3dTile模型添加气泡框
  15. 对比MySQL和Pandas计算用户最大连续登录天数
  16. 解决win8 64位版本下无法使用debug
  17. 基于android的手机选课系统的实现
  18. Leetcode 1324. Print Words Vertically
  19. emoji unicode java_4字节emoji表情对应的Unicode编码获取和编码转换
  20. 新型多功能、高性能量子点,可以用于医学成像、量子计算

热门文章

  1. 安装 Vmware和创建虚拟机即密码破解
  2. 助力运动:实时乒乓球视频分析
  3. [C0] 人工智能大师访谈 by 吴恩达
  4. 微软拼音输入法自定义短语
  5. Android短信发送,监听,及其工具类封装
  6. 2009-2019年五级(到村/居委会)行政区划代码数据
  7. ts中简单的用法和存储器 get set 的用法
  8. python 函数嵌套和嵌套调用
  9. 细数黑帽seo七宗罪
  10. 吉特仓库管理系统- 斑马打印机 ZPL语言的腐朽和神奇