2.2.1.3-移动平均线(python画k线、均线、5日线、买卖点图、python均线策略)

python股票分析挖掘预测技术指标知识之均线指标详解(6) 本人股市多年的老韭菜,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择python因为够强大,它提供了很多高效便捷的数据分析工具包。我们已经初步的接触与学习其中数据分析中常见的3大利器---Numpy,Pandas,Matplotlib库。也简单介绍一下数据获取的二种方法,通过金融数据接口和爬虫获取。同时介绍了指标之王MACD,随机指标KDJ和BOLL指标线和。 阅读详情

跳转到根目录:知行合一:投资篇

已完成:
1、投资&技术
  1.1.1 投资-编程基础-numpy
  1.1.2 投资-编程基础-pandas
  1.2 金融数据处理
  1.3 金融数据可视化
2、投资方法论
  2.1.1 预期年化收益率
  2.1.2 一个关于y=ax+b的故事
  2.1.3-数据标准化
  2.1.4-相关性分析
  2.2.1.1-一个关于定投的故(姿)事(势)
  2.2.1.3-移动平均线

3、投资实证
  [3.1 2023这一年] 被鸽
todo…

1. 定义

移动平均线,Moving Average,简称MA,MA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根MA,用以观察证券价格变动趋势的一种技术指标。

2. 目标

  • 绘制一个k线图,也就是蜡烛图
  • 计算5日均线值、10日均线值
  • 在k线图上,绘制5日线和10日线图
  • 在5日线上,绘制与10日线的交叉点(上穿、下穿时)

3. 加载数据

这次主要是绘图和数据处理,所以数据就使用现成的csv来做(之前的文章,有专门的数据获取方法,参考:《1.2-金融数据处理》)

import pandas as pd
import ssl  # # URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)>
ssl._create_default_https_context = ssl._create_unverified_context
#导入pyecharts
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode

df = pd.read_csv("https://gitee.com/kelvin11/public-resources/raw/master/SH510300.csv", parse_dates=['date'])
df.set_index('date', inplace=True)

解释1:

pd.read_csv("https://gitee.com/kelvin11/public-resources/raw/master/SH510300.csv", parse_dates=['date'])

是读取一个网络csv文件的内容,并且将其date列转换成日期类型。ssl._create_default_https_context = ssl._create_unverified_context是解决https访问的时候的报错。

解释2:

df.set_index('date', inplace=True)是将date列设为索引,并且将其从数据列中移除。移除的意思是,在遍历时,就无法通过df.loc[x, "date"]这样取到date列的值了。

4. 计算5日线值

这个就比较简单了,直接通过pandas的rolling函数就行

import math
import pandas as pd
import ssl  # URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)>
ssl._create_default_https_context = ssl._create_unverified_context
# 导入pyecharts
from pyecharts.charts import *
from pyecharts import options as opts

# 加载数据
df = pd.read_csv("https://gitee.com/kelvin11/public-resources/raw/master/SH510300.csv", parse_dates=['date'])
df.set_index('date', inplace=True)

# 计算5日线值、10日线值
df['ma5'] = df.close.rolling(5).mean()
df['ma10'] = df.close.rolling(20).mean()

5. 确定买卖点

什么时候买?什么时候卖?

当5日线上穿10日线时,是买点,当5日线下穿10日线时,是卖点。这个很好理解,代码实现在上面的基础上,继续操作:

# 导入数据分析和量化常用库
import math
import pandas as pd
import ssl  # URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)>
ssl._create_default_https_context = ssl._create_unverified_context
# 导入pyecharts
from pyecharts.charts import *
from pyecharts import options as opts

# 加载数据
df = pd.read_csv("https://gitee.com/kelvin11/public-resources/raw/master/SH510300.csv", parse_dates=['date'])
df.set_index('date', inplace=True)

# 计算5日线值、10日线值
df['ma5'] = df.close.rolling(5).mean()
df['ma10'] = df.close.rolling(20).mean()
# df['ma20']=df.close.rolling(20).mean()
# df['macd'],df['macdsignal'],df['macdhist']=ta.MACD(df.close,fastperiod=12,slowperiod=26,signalperiod=9)


already_buy = False
# 遍历确定买卖点
for x in df.index:
    if df.loc[x, "ma5"] > df.loc[x, "ma10"] and not already_buy:
        df.loc[x, "买卖"] = '买'
        already_buy = True
    if df.loc[x, "ma5"] < df.loc[x, "ma10"] and already_buy:
        df.loc[x, "买卖"] = '卖'
        already_buy = False

6. 测算收益

如果我们严格按照上穿买入,下穿卖出,不考虑浮盈浮亏的情况下,这个策略,盈利性如何?

我们按照大约10000元作为交易金额,因为每次买入卖出最小的1手是100股,要做向上取整。
这里就只贴测算收益部分的代码:

# 测算收益
money = 10000.0   # 1个w左右的买卖金额
shares = 0  # 买入的股数
buy_price = 0  # 实际买入的金额
for x in df.index:
    if df.loc[x, "买卖"] == '买':
        buy_price = df.loc[x, "close"]
        shares = math.floor(money / df.loc[x, "close"
【实战】——基于GUI编程的python股票量化交易策略之双均线策略 目录前言一、概念二、tkinter的使用1、模块的导入2、窗口和文本框的创建3、处理函数的定义4、按钮的创建5、运行结果三、实战案例——根据界面输入绘制动态K线和均线图1、模块的导入2、窗口界面和文本框的创建3、处理函数的定义3.1、获取股票数据3.2、【绘制】按钮的处理函数3.3、【计算买卖点】按钮的处理函数3.4、【重置】按钮的处理函数4、按钮的创建及canvas控件5、运行结果结语及源代码1、“登录窗口”源代码2、“股票K线均线”源代码 前言 如果有对于股票数据分析或者量化交易经典策略–双均线策略不熟 阅读详情

相关推荐

跟着小K开始零基础Python量化分析之旅 5: 闯荡量化江湖 —— 回测框架初体验

本章带领你走进了量化回测的实战世界。你已经学会了如何生成模拟数据、计算移动平均线、产生交易信号,并通过一个简单的回测框架模拟了策略在历史数据上的表现。通过图表,你可以直观地看到每次买卖的时机与净值变化,为后续的策略优化与风险管理打下坚实基础。就像小K那样,每一行代码、每一幅图表都是你在量化江湖中的实战印记。现在,就让我们继续这段激动人心的旅程,用回测这面神奇的“照妖镜”不断审视、改进自己的策略,在量化投资的战场上书写属于自己的传奇!

qq_41611586的博客 1541

用python画股票分时图 github_用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)...

在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将在此基础上再引入成交量效果图,并结合量价理论,给出并验证一些交易策略. 1成交量对量化分析的意义 美国的股市分析家葛兰碧(Joe Granville)在他所著的一书里提出著名的“量价理论”.“量价理...

weixin_39811036的博客 2323

Python量化交易:使用双均线策略进行股票交易

通过上述程序,我们可以模拟出根据双均线策略进行交易的情况,并且及时输出买入和卖出的信息以及收益情况。当然,在实际运用过程中,我们需要考虑更多的因素,比如交易成本、风险控制等,才能够进行更加有效的股票交易。其中,双均线策略是一种非常基础的技术分析方法,该策略能够有效地识别趋势,并且能够在趋势发生变化时及时进行调整,因此被广泛地应用于股票交易中。下面,我们将使用Python语言编写一个简单的双均线策略程序,帮助大家更好地理解和应用该策略。接下来,我们可以计算出5日均线和10日均线,并且绘制出它们的图像。

2301_78484069的博客 366

数字货币量化交易策略—基于移动平均线MA

本文介绍金融市场中的量化交易策略之移动平均线MA策略。 一、概念 移动平均线,Moving Average,简称MA,MA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根MA,用以观察证券价格变动趋势的一种技术指标。 移动平均线是由著名的美国投资专家Joseph E.Granville(葛兰碧,又译为格兰威尔)于20世纪中期提出来的。均线理论是当今应用最普遍的技术指标之一,它帮助交易者确认现有趋势、判断将出现的趋势、发现过度延生即将反转的趋势。其图如下:

比特量化 1万+

Python-利用快均线上穿满均线抄底效果不错

利用快均线上穿满均线抄底,效果不错

从SRIOV到SIOV:PCIe虚拟化技术下一代革命

如果说SR-IOV是过去十年PCIe虚拟化的“标杆方案”,那SIOV就是为超大规模云数据中心、AI集群量身打造的“破局者”——它解决了SR-IOV难以逾越的扩展性瓶颈,同时平衡了性能、成本与生态兼容性。今天就从“为什么需要SIOV”到“SIOV到底强在哪”,再到“未来要解决什么问题”,做一次全方位深度拆解。

存储随笔 2542

银河麒麟高级服务器操作系统V10SP2(X86)PXE无人值守批量部署实战指南

本文详细介绍了银河麒麟高级服务器操作系统V10SP2(X86)PXE无人值守批量部署的实战指南。通过PXE网络引导技术,实现全自动化、高效率的系统部署,特别适用于企业级数据中心和国产化替代项目。文章涵盖基础环境准备、关键服务配置、Kickstart高级定制及部署测试等核心内容,帮助用户快速掌握批量部署技巧。

weixin_42525637的博客 376

WRF实战:自定义Vtable解析ECMWF海温数据的关键步骤与技巧

本文详细介绍了在WRF模型中自定义Vtable以解析ECMWF海温数据的关键步骤与技巧。通过解剖GRIB文件、编写自定义Vtable条目以及配置METGRID.TBL,解决了ECMWF数据与WRF模型对接的难题,为海洋气象和台风模拟研究提供了高精度数据输入方案。

weixin_29279101的博客 331

PCIe-Orders set Blocks之symbol对齐

有序集的使用场合很多,如在链路link阶段,进入polling后,便开始有序集的发送。一个 Ordered Set Block 包含一个同步头,后跟一个有序集。多通道链路的所有 Lane 必须同时传输相同的有序集,而且有序集的第一个符号定义了有序集的类型。但在PCIE中,8GT/s及以上的速率,采用的是128b/130b编码。128-bit是想要传输的payload,实际会传输130-bit,多出来的2-bit就是sync header。Block有两种,通过Sync header区分:10b:表示data

weixin_44700185的博客 811

深度学习笔记——Transformer

本文详细介绍面试过程中可能遇到的Transformer知识点。

haopinglianlian的博客 1696

ros入门(八)---TF坐标转换

TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换。

weixin_51157015的博客 3381

数据挖掘在人力资源分析中的实战案例

在当今竞争激烈的商业环境中,人力资源管理对于企业的成功至关重要。有效的人力资源管理能够提高员工绩效、降低员工流失率、优化人才招聘等。而数据挖掘技术为人力资源管理提供了强大的工具,通过对大量人力资源数据的分析,可以发现潜在的规律和模式,为企业的决策提供有力支持。本文的目的是通过实际案例展示数据挖掘在人力资源分析中的具体应用,涵盖员工绩效预测、人才招聘筛选、员工流失分析等多个方面。通过详细的案例分析,帮助读者理解数据挖掘技术在人力资源管理中的实际操作和应用价值。

移动开发前沿的博客 486

人形机器人电源系统硬件开发:从原理图设计到PCB布局的完整流程

人形机器人是“移动的智能终端”,其电源系统如同“心脏+血管”:既要为大脑(主控)、肌肉(电机)、感官(传感器)提供稳定能量,又要在有限体积内应对高动态负载(如跳跃时电机瞬间大电流)。本文聚焦“硬件开发”维度,覆盖从需求分析到PCB制板的完整流程,适合硬件工程师、机器人爱好者快速掌握工程实战方法。

AI天才研究院 2159

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 2.2.1.1-一个关于定投的故(姿)事(势)
下一篇: 2.2.1.2-网格交易(python网格交易附实战交易记录)
Kelvin写代码
博客等级 码龄14年 1445粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值