# 基于macd、kdj、ma技术指标分析股票多空方向——应用开发4 分析技术指标一系列形态结果

#获取前12天的数据
total_df=total_df.iloc[-12:,:]

total_df 对应列的数字0～9，待会作数据分析时用得上

result_df = pd.DataFrame(columns=['日期','MACD','KDJ','均线','收盘价'])

for i in range(2,len(total_df)):

result_df = pd.DataFrame(columns=['日 期','MACD','KDJ','均线','收盘价'])

for i in range(2,len(total_df)):
date= toatal_df.index[i].strftime('%Y-%m-%d')
result_df.loc[i,'日 期'] = date
result_df.loc[i,'收盘价'] = total_df.iloc[i,9]

### 基于MACD形态分析

#MACD形态分析
if total_df.iloc[i-1,0]total_df.iloc[i,2] and total_df.iloc[i-1,1]0:
result_df.loc[i,'MACD']='低位金叉'

#MACD形态分析
if total_df.iloc[i-1,0]total_df.iloc[i,2] and total_df.iloc[i-1,1]0:
result_df.loc[i,'MACD']='低位金叉'
elif total_df.iloc[i-1,0]total_df.iloc[i,2]:
result_df.loc[i,'MACD']='金叉'
elif total_df.iloc[i-1,0]>0 and total_df.iloc[i-1,2]>0 and total_df.iloc[i,0]>0 and total_df.iloc[i,2]>0 and total_df.iloc[i-1,0]>total_df.iloc[i-1,2] and total_df.iloc[i,0]0 and total_df.iloc[i,1]total_df.iloc[i-1,2] and total_df.iloc[i,0]0:
result_df.loc[i,'MACD']='DIF上穿0轴'
else:
result_df.loc[i,'MACD']='中性'

### 基于KDJ形态分析

#KDJ形态分析
if total_df.iloc[i-1,3]total_df.iloc[i,4] and total_df.iloc[i,3]total_df.iloc[i,4]:
result_df.loc[i,'KDJ']='金叉'
elif total_df.iloc[i-1,3]>total_df.iloc[i-1,4] and total_df.iloc[i,3]50 and total_df.iloc[i,4]>50 and total_df.iloc[i,5]>50:
result_df.loc[i,'KDJ']='高位死叉'
elif total_df.iloc[i-1,3]>total_df.iloc[i-1,4] and total_df.iloc[i,3]0:
result_df.loc[i,'KDJ']='J线上穿0轴'
elif total_df.iloc[i-1,5]>90 and total_df.iloc[i,5]>90 and total_df.iloc[i-1,5]>total_df.iloc[i,5]:
result_df.loc[i,'KDJ']='适当减仓'
elif total_df.iloc[i-1,5]

### 基于均线形态分析

#定义判断均线多种形态函数
if total_df.iloc[i-1,6]total_df.iloc[i,7]:
result_df.loc[i,'均线']='5交10金叉'
elif total_df.iloc[i-1,6]total_df.iloc[i,8]:
result_df.loc[i,'均线']='5交20金叉'
elif total_df.iloc[i-1,6]>total_df.iloc[i-1,7] and total_df.iloc[i,6]total_df.iloc[i-1,8] and total_df.iloc[i,6]total_df.iloc[i,6]:
result_df.loc[i,'均线']='5天线向下拐'
elif total_df.iloc[i-2,6]>total_df.iloc[i-1,6] and total_df.iloc[i-1,6]total_df.iloc[i,6]:
result_df.loc[i,'均线']='5天线上'
elif total_df.iloc[i,9]

def get_analyse(total_df):
result_df = pd.DataFrame(columns=['日期','MACD','KDJ','均线','收盘价'])

for i in range(2,len(total_df)):
date= total_df.index[i].strftime('%Y-%m-%d')
result_df.loc[i,'日 期'] = date
result_df.loc[i,'收盘价'] = total_df.iloc[i,9]
#MACD形态分析
if total_df.iloc[i-1,0]total_df.iloc[i,2] and total_df.iloc[i-1,1]0:
result_df.loc[i,'MACD']='低位金叉'
elif total_df.iloc[i-1,0]total_df.iloc[i,2]:
result_df.loc[i,'MACD']='金叉'
elif total_df.iloc[i-1,0]>0 and total_df.iloc[i-1,2]>0 and total_df.iloc[i,0]>0 and total_df.iloc[i,2]>0 and total_df.iloc[i-1,0]>total_df.iloc[i-1,2] and total_df.iloc[i,0]0 and total_df.iloc[i,1]total_df.iloc[i-1,2] and total_df.iloc[i,0]0:
result_df.loc[i,'MACD']='DIF上穿0轴'
else:
result_df.loc[i,'MACD']='中性'

#KDJ形态分析
if total_df.iloc[i-1,3]total_df.iloc[i,4] and total_df.iloc[i,3]total_df.iloc[i,4]:
result_df.loc[i,'KDJ']='金叉'
elif total_df.iloc[i-1,3]>total_df.iloc[i-1,4] and total_df.iloc[i,3]50 and total_df.iloc[i,4]>50 and total_df.iloc[i,5]>50:
result_df.loc[i,'KDJ']='高位死叉'
elif total_df.iloc[i-1,3]>total_df.iloc[i-1,4] and total_df.iloc[i,3]0:
result_df.loc[i,'KDJ']='J线上穿0轴'
elif total_df.iloc[i-1,5]>90 and total_df.iloc[i,5]>90 and total_df.iloc[i-1,5]>total_df.iloc[i,5]:
result_df.loc[i,'KDJ']='适当减仓'
elif total_df.iloc[i-1,5]total_df.iloc[i,7]:
result_df.loc[i,'均线']='5交10金叉'
elif total_df.iloc[i-1,6]total_df.iloc[i,8]:
result_df.loc[i,'均线']='5交20金叉'
elif total_df.iloc[i-1,6]>total_df.iloc[i-1,7] and total_df.iloc[i,6]total_df.iloc[i-1,8] and total_df.iloc[i,6]total_df.iloc[i,6]:
result_df.loc[i,'均线']='5天线向下拐'
elif total_df.iloc[i-2,6]>total_df.iloc[i-1,6] and total_df.iloc[i-1,6]total_df.iloc[i,6]:
result_df.loc[i,'均线']='5天线上'
elif total_df.iloc[i,9]

### 完整代码

import tushare as ts
import pandas as pd
import datetime
import pandas_ta as ta

token='你的token'
ts.set_token(token)
pro=ts.pro_api()

def get_stock(num):
stocknum=num
today = datetime.datetime.today()
startday=today+datetime.timedelta(days=-365)
today = today.strftime('%Y%m%d')
startday =startday.strftime('%Y%m%d')

stock_df= pro.daily(ts_code=stocknum, start_date=startday,end_date=today)

stock_df=stock_df.rename(columns={'vol':'volume'})
stock_df=stock_df.iloc[::-1]
return stock_df

def get_technical(stock_df):
#MACD
macd_df = ta.macd(stock_df['close'])
#KDJ
kdj_df = ta.kdj(stock_df['high'],stock_df['low'],stock_df['close'])
#均线 5、10、20天
ma5_df = pd.DataFrame(ta.sma(stock_df['close'],length=5))
ma10_df = pd.DataFrame(ta.sma(stock_df['close'],length=10))
ma20_df = pd.DataFrame(ta.sma(stock_df['close'],length=20))

#连接所有技术指标结果与收盘价以列形式在一个DataFrame
total_df = pd.concat([macd_df,kdj_df,ma5_df,ma10_df,ma20_df,stock_df['close']],axis=1)
#获取前12天的数据
total_df=total_df.iloc[-12:,:]
return macd_df,kdj_df,ma5_df,ma10_df,ma20_df,total_df

def get_analyse(total_df):
result_df = pd.DataFrame(columns=['日期','MACD','KDJ','均线','收盘价'])

for i in range(2,len(total_df)):
date= total_df.index[i].strftime('%Y-%m-%d')
result_df.loc[i,'日 期'] = date
result_df.loc[i,'收盘价'] = total_df.iloc[i,9]
#MACD形态分析
if total_df.iloc[i-1,0]total_df.iloc[i,2] and total_df.iloc[i-1,1]0:
result_df.loc[i,'MACD']='低位金叉'
elif total_df.iloc[i-1,0]total_df.iloc[i,2]:
result_df.loc[i,'MACD']='金叉'
elif total_df.iloc[i-1,0]>0 and total_df.iloc[i-1,2]>0 and total_df.iloc[i,0]>0 and total_df.iloc[i,2]>0 and total_df.iloc[i-1,0]>total_df.iloc[i-1,2] and total_df.iloc[i,0]0 and total_df.iloc[i,1]total_df.iloc[i-1,2] and total_df.iloc[i,0]0:
result_df.loc[i,'MACD']='DIF上穿0轴'
else:
result_df.loc[i,'MACD']='中性'

#KDJ形态分析
if total_df.iloc[i-1,3]total_df.iloc[i,4] and total_df.iloc[i,3]total_df.iloc[i,4]:
result_df.loc[i,'KDJ']='金叉'
elif total_df.iloc[i-1,3]>total_df.iloc[i-1,4] and total_df.iloc[i,3]50 and total_df.iloc[i,4]>50 and total_df.iloc[i,5]>50:
result_df.loc[i,'KDJ']='高位死叉'
elif total_df.iloc[i-1,3]>total_df.iloc[i-1,4] and total_df.iloc[i,3]0:
result_df.loc[i,'KDJ']='J线上穿0轴'
elif total_df.iloc[i-1,5]>90 and total_df.iloc[i,5]>90 and total_df.iloc[i-1,5]>total_df.iloc[i,5]:
result_df.loc[i,'KDJ']='适当减仓'
elif total_df.iloc[i-1,5]total_df.iloc[i,7]:
result_df.loc[i,'均线']='5交10金叉'
elif total_df.iloc[i-1,6]total_df.iloc[i,8]:
result_df.loc[i,'均线']='5交20金叉'
elif total_df.iloc[i-1,6]>total_df.iloc[i-1,7] and total_df.iloc[i,6]total_df.iloc[i-1,8] and total_df.iloc[i,6]total_df.iloc[i,6]:
result_df.loc[i,'均线']='5天线向下拐'
elif total_df.iloc[i-2,6]>total_df.iloc[i-1,6] and total_df.iloc[i-1,6]total_df.iloc[i,6]:
result_df.loc[i,'均线']='5天线上'
elif total_df.iloc[i,9]

Original: https://blog.csdn.net/m0_64902855/article/details/122606899
Author: 宇文终君
Title: 基于macd、kdj、ma技术指标分析股票多空方向——应用开发4 分析技术指标一系列形态结果

(0)

### 大家都在看

• #### 电竞级还带主动降噪，莱仕达X2无线蓝牙耳机实测，品控值得安利

今年的春节先锋和家人都是宅家没有到处逛，给家人孩子都制定了宅家的娱乐项目，自己也入手了一副莱仕达X2(Dongle版）电竞级无线蓝牙耳机，打算没事玩玩小游戏，升级有声游戏的声觉体验…

人工智能 2023年5月25日
0196
• #### MySQL启动不了,无法启动MySQL服务解决技巧

最近在Windows2003上的MySQL出现过多次正常运行时无法连接数据库故障，现象是无法连接数据库，也无法停止MySQL或重启MYSQL，重启机子也没有效果，由于每次都是草草尝…

人工智能 2023年7月30日
0126
• #### 猿创征文｜OpenCV 如何提高条形码识别率

猿创征文｜OpenCV 如何提高条形码识别率 今天介绍一个使用OpenCV提高条形码识别率的算法 * 平台及OpenCV库简介 强烈建议：先学习一下OpenCV的课程 步入正题：从…

人工智能 2023年7月18日
0199
• #### 在Ubuntu20.04 LTS中安装OpenCV4.5.4

系统配置： Intel® Core™ i5-8500 CPU ；Ubuntu 20.04.3 LTS 一、简介 Opencv是一个开源的计算机视觉库，目前，在众多的图像处理相关领域…

人工智能 2023年7月20日
0197
• #### 图像处理–阈值分割函数《python基础篇》

3.如何实现呢？ 说了这么多，只是让大家能够更好地理解阈值二值化操作，还有就是为什么我们选择二值化，她的目的是什么！（不多说了），下面来看一般的阈值二值化函数。 1》典型的全局阈值…

人工智能 2023年6月22日
0162
• #### 机器学习—-使用Sklearn构建逻辑回归模型

| 1.1 什么是Sclkit-Learn? 现在我们已经建立了逻辑回归工作原理的基础，您可以参见《》。让我们深入研究一些代码来构建模型。 为此，我们将介绍一个名为 scikit-…

人工智能 2023年6月15日
0238
• #### 知识图谱简介

一．知识图谱（knowledge graph） ： Definition： 基于图的一种数据结构，使得知识域可视化，显示知识发展进程与结构关系。可视化的图谱形象展示学科的核心结构、…

人工智能 2023年6月1日
0246
• #### 你给文字描述，AI艺术作画，精美无比！附源码，快来试试！

💡 作者：韩信子@ShowMeAI📘 深度学习实战系列：https://www.showmeai.tech/tutorials/42📘 TensorFlow 实战系列：https:…

人工智能 2023年6月16日
0155
• #### SimpleUrlHandlerMapping类的功能简介说明

前言 1. 简介 1.1. 概览 1.1.1. 使用场景 2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean…

人工智能 2023年6月26日
0187
• #### 常用数据特征提取，时域特征、频域特征、小波特征提取汇总；特征提取；有效matlab代码

人工智能 2023年6月19日
0196
• #### 知识图谱发展历程简介

目录 * – 1.万维网简介 – 2.语义网简介 – 3.知识图谱简介 – 4. 参考文献 1.万维网简介 1990年，Tim Be…

人工智能 2023年6月1日
0183
• #### 基本概念—回归、分类、聚类

原文作者：机器之心 原文地址：回归、分类与聚类：三大方向剖解机器学习算法的优缺点 在本教程中，作者对现代机器学习算法进行了简要梳理。虽然类似的总结有很多，但是它们都没有真正解释清楚…

人工智能 2023年6月2日
0172
• #### 巴西针对电源产品的新法规

巴西ANATEL近日发布了一项新的5159法案，该法案内容主要是关于移动电话使用的有线和无线电源和充电器。 法案称为《手机用充电器合格评定技术要求及测试程序》，涵盖了产品安全性和E…

人工智能 2023年6月4日
0162
• #### Centos7环境下kaldi的安装（包含gcc4.8.5 – 6.1.0升级）

本文用于记录linux下kaldi的安装过程 环境 基础环境： Centos7（几乎是裸机环境）其他说明：自带的gcc版本为 4.8.5，并且用 yum install 相关的命令…

人工智能 2023年5月27日
0160
• #### 【因果推断论文】中国新冠死亡率更高？- 新冠死亡率的辛普森悖论

Authors: Julius von Kügelgen , Luigi Gresele , and Bernhard Schölkopf IEEE Trans on AI 202…

人工智能 2023年6月6日
0160
• #### Pytorch学习笔记(四):nn.MaxPool2d()函数详解

相关文章 Pytorch学习笔记(一):torch.cat()模块的详解Pytorch学习笔记(二):nn.Conv2d()函数详解Pytorch学习笔记(三):nn.BatchN…

人工智能 2023年7月24日
0124