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天的是长期均线指标,称作年均线指标
    • 均线计算方法: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数据分析之股票双均线策略制定相关推荐

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

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

  2. Python量化交易02——双均线策略(移动平均线)

    参考书目:深入浅出Python量化交易实战 本次带来最经典的交易策略,双均线策略的构建和其回测方法. 双均线一般采用5天均值和10天均值,如果5日均线上穿突破了10日均线,说明股价在最近的涨势很猛,买 ...

  3. Python股票双均线策略

    使用Python的第三方模块pandas,matplotlib和tushare(获取股票数据的接口)来绘制双均线并找出金叉与死叉. 双移动平均线_百度百科 金叉_百度百科 死亡交叉(股市术语)_百度百 ...

  4. 2020-12-24 如何编写一个简单的双均线策略

    如何编写一个简单的双均线策略 目的:编写一个无需写入函数.类的简单策略,对比文字与代码表达的区别,了解编写逻辑与原理 策略类型:双均线策略 策略原理: 双均线策略,指的是运用两条不同周期的移动平均线, ...

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

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

  6. 利用双均线策略计算中国平安股票收益

    一.知识储备 Hello,各位小伙伴们,本篇博文给大家带来的是利用双均线策略,对中国平安601318股票进行炒股,所能获得的大概收益.为了你能正确理解本文的知识,需要你提前做以下准备... pytho ...

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

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

  8. python双均线策略,当五日均线位于十日均线上方则买入,反之卖出。(聚宽量化平台使用)

    ''' ** python双均线策略,当五日均线位于十日均线上方则买入,反之卖出.(聚宽量化平台使用) ** ''' 初始化函数,设定要操作的股票.基准等等 def initialize(contex ...

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

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

最新文章

  1. Java中迭代列表中数据时几种循环写法的效率比较
  2. Java + Vue 实现的在线考试系统
  3. Tarjan有向图强连通分量
  4. 学会这几个Redis技巧,让你的程序快如闪电
  5. 牛客小白月赛37【部分题解】
  6. API-基本数据类型与字符串的互换
  7. 【Python CheckiO 题解】Second Index
  8. MOSS点滴(2):自定义Application Page
  9. python操作mysql,增,删,改,查
  10. Linux 之父家断电六天:内核更新延期;华为 EMUI 11 用户突破1亿;美国得州最大电力公司申请破产 | 极客头条...
  11. 吐槽Javascript系列三:数组的陷阱
  12. 【软件工程导论】软件工程学概述
  13. WINDOWS编译OpenJDK8的问题及解决办法
  14. matlab机器学习之knn算法实例
  15. 印刷MES管理系统等数字化系统,应用发展如此迅速
  16. VC中GDI绘图技术基础知识:hdc设备环境句柄,坐标系
  17. 小学计算机教师应聘简历,应聘小学教师的个人简历模板
  18. 小白看了也会选:数据分析的常见工具有哪些
  19. STM32系列 STM32F4xx SPI Flash-读写操作
  20. 关于 RTOS 的选择

热门文章

  1. 推荐 :教你用神经网络求解高级数学方程!
  2. 智能微型断路器的功能有哪些?和网关搭配的作用在哪?
  3. 通过代码实现重启手机
  4. 使用 commit tran 需注意
  5. 通过游戏编程学Python(1)— 猜数字
  6. uniapp实现左右滑动
  7. 英雄!「安可心」请你跳支舞
  8. 苹果电脑Mac中delete键的七种用法
  9. 2018最新精选的Go框架,库和软件的精选列表 三
  10. ESP-Hosted:降低物联网设备的部署成本与复杂性