股票每天最高最低价的黄金分割线买卖点标记
如题,自己备份用。
import datetime
import numpy as np
import scipy.stats as st
import baostock as bs
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
import pandas as pdimport mplfinance as mpf# 获取某支股票过去xx天的数据 dataframe格式 stockCode格式'000001.SZ'
def get_stockData(stockCode, dayRange=50):# 登录系统lg = bs.login()# 显示登录返回信息print(lg.error_code)print(lg.error_msg)# 平安银行股票代码bs_code = stockCode # '000001.SZ'# 过去x days的数据days = dayRangeend_date = datetime.date.today().strftime('%Y-%m-%d')start_date = (datetime.date.today() - datetime.timedelta(days=days)).strftime('%Y-%m-%d')rs = bs.query_history_k_data(code=bs_code,fields='code,date,open,high,low,close,peTTM,pbMRQ,volume', # 代码 日期 etc volume成交量start_date=start_date, end_date=end_date, frequency="d", adjustflag="3")# 获取具体的股价信息stock_list = []while (rs.error_code == '0') & rs.next():# 分页查询,将每页信息合并在一起stock_list.append(rs.get_row_data())stock_data = pd.DataFrame(stock_list, columns=rs.fields)# 如果写入文档可以启用下边这行# stock_data.to_csv("stock_temp.csv", index=False)# 获取原始数据中的部分数据,注意一定用loc,不要用ilocshow_data = stock_data.loc[:, ['date', 'open', 'high', 'low', 'close', 'volume']]# 原数据集中的日期强制修改为日期格式show_data['date'] = pd.to_datetime(show_data['date'])# 选取所有行的股票代码 开收盘价 以及最高低价,并转化为float类型(默认为string)show_data.loc[:, ['open', 'high', 'low', 'close', 'volume']] = show_data[['open', 'high', 'low', 'close', 'volume']].astype(float)# 将日期设定为index主键show_data = show_data.set_index(['date'], drop=True)# 如果上文用到写入文档,这里就可以读取文档了 读取文档就不用上边这一堆罗里吧嗦的转换了# show_data2 = pd.read_csv('stock_temp.csv', index_col=0, parse_dates=True, usecols=[1, 2, 3, 4, 5])bs.logout()return show_data# 计算过去5的股票最高值与最低值之间的黄金分割点数值 返回数组
def get_fibonaciwithDays(stockData, days=5):stockdata = stockDataave_days = dayslen_data = len(stockdata)fibo_points = []for i in range(0, len_data):if i < ave_days:fibo_points.append(np.NaN)else:high_point = 0low_point = 99999999for j in range(0, ave_days):if stockdata.iloc[i - (ave_days - j)]['high'] > high_point:high_point = stockdata.iloc[i - (ave_days - j)]['high']if stockdata.iloc[i - (ave_days - j)]['low'] < low_point:low_point = stockdata.iloc[i - (ave_days - j)]['low']fibo_point_value = low_point + (high_point - low_point) * 0.618fibo_points.append(fibo_point_value)# print(fibo_points)return fibo_points# 计算两个数组的交叉点,返回上穿和下穿两个数组 data1为快线 date2为慢线
def get_crossPoint(stockdata1, stockdata2):if len(stockdata1) != len(stockdata2):print("两个数组长度不一致,请检查数组")returnupCross = [] #上穿数组downCross = [] # 下穿数组data1isbig = Truestart_flag = Truefor i in range(0, len(stockdata1)):if (not np.isnan(stockdata1[i])) and (not np.isnan(stockdata2[i])):# if (stockdata1[i] != np.NaN) and (stockdata2[i] != np.NaN): 这个是错误语法if start_flag:# 刚开始计算 初始化数值if stockdata1[i] < stockdata2[i]:data1isbig = Falseelse:data1isbig = Truestart_flag = Falseif stockdata1[i] < stockdata2[i] and data1isbig:# 下穿data1isbig = FalseupCross.append(np.NaN)downCross.append(stockdata1[i])continueelif stockdata1[i] > stockdata2[i] and (not data1isbig):# 上穿data1isbig = TrueupCross.append(stockdata2[i])downCross.append(np.NaN)continueelse:upCross.append(np.NaN)downCross.append(np.NaN)continueelse:upCross.append(np.NaN)downCross.append(np.NaN)continuereturn upCross, downCrossstock_data = get_stockData('000001.SZ', 200)
# 根据过去5日线和10日线的黄金分割点 判定买入卖出机会
fibo_points_data_5 = get_fibonaciwithDays(stock_data, 5)
fibo_points_data_10 = get_fibonaciwithDays(stock_data, 10)
upScatter, downScatter = get_crossPoint(fibo_points_data_5, fibo_points_data_10)
add_plot = [mpf.make_addplot(upScatter, type='scatter', markersize=50, marker='^', color='purple'),mpf.make_addplot(downScatter, type='scatter', markersize=50, marker='v', color='b'),mpf.make_addplot(fibo_points_data_5, type='line', markersize=100, marker='^', color='orangered'),mpf.make_addplot(fibo_points_data_10, type='line', markersize=100, marker='^', color='aqua'),
]# 画K线图
mpf.plot(stock_data, type='candle', style='yahoo', addplot=add_plot, volume=True) # mav=(5, 10)plt.show()
股票每天最高最低价的黄金分割线买卖点标记相关推荐
- python股票数据接口实战:根据不同均线的关系判断买卖点
同是5日线,但因为计算公式不一样,这两条线不可能完全重合,而我们恰好可以利用这两条均线的不同含义,来找到合适的买卖点! 这次用到的均线分别是WMA(加权移动均线),DEMA(双指数移动均线),KAMA ...
- 股票指标RSI所以的买卖点,附代码
需要程序的关注微信公众号,数据分析与运用,回复rsi买卖点就可以了 运用原则这里的"极强"."强"."弱"."极弱"只是 ...
- Python示例代码之按指定算法判断买卖点计算股票收益
炒股票的小伙伴们一般都有一个神奇的愿景,总认为按照自己的方法选择股票的买卖点,就一定能赚钱,今天我用程序模拟了一把买卖点和收益的实测,结果显示,无论我使用什么买卖点判断方法,总是有些股票赚钱,有些股票 ...
- 通达信缠论买卖点公式_缠论买卖点阐述及选股思路
缠论一部关于如何精确买卖点的理论.它采用顶分型,底分型,笔,线段,中枢等基本构件,利用类背,盘背,背驰等看盘手段,依据区间套原则,在操作级别中找出盘背,背驰段,再在次级别中精确找出盘背,背驰买卖点,是 ...
- 抄底指标:秘密买卖点
应朋友们的请求,我将自己常用的抄底指标奉献出來,该指标捕捉底部买点还较准,但世上的指标毕竟没有百分之百准确的,大家还要在使用中认真摸索经验,根据大盘趋势來使用,在大盘趋势向上时,用它來捕捉探底结束的个 ...
- php实现分时线图,史上最全分时图买卖点图解(转发收藏)!
一.短线操作的真正目的:规避风险 短线操作不是不想赚大钱,而是为了不参与走势中不确定因素太多的调整."走势中的不确定因素"就是一种无法把握的巨大风险,用短线操作的方法,就可以尽量避 ...
- 股市非常态,CCI指标买卖点实例图解
CCI指标即顺势指标,是唐纳德·蓝伯特于上世纪80年代提出的,是一种比较新颖的技术指标.CCI指标是专门用来衡量股价是否超出常态分布范围,是一种 超买超卖类指标,但它与其他超买超卖型指标又有自己比较独 ...
- 《缠中说禅108课》20:缠中说禅走势中枢级别扩张及第三类买卖点
前面已经很明确地指出,缠中说禅走势中枢由前三个连续次级别走势类型的重叠部分确定,其后的走势有两种情况:一.该走势中枢的延伸.二.产生新的同级别走势中枢.而在趋势里,同级别的前后缠中说禅走势中枢是不能有 ...
- 【量化投资】我实现了A股买卖点数量趋势图
注册这个号有一段时间了,但是从2022年初到5月初我都没有玩股票,所以也就一直没有写.我的号不会向大家推荐股票,只做一些数据分析之类的基于数据说话的一些财经分享.比如:今天我给大家带来的分享我自己觉得 ...
最新文章
- 数据流通实现“可用不可见”?腾讯巧夺“天工”
- HttpModule与HttpHandler详解(转)
- js 光标移动到输入框最后位置函数
- Linux 最常用命令:简单易学,但能解决 95% 以上的问题
- information_schema.routines 学习
- oracle定时任务会漂移,定时任务与手动执行脚本时的一个重要注意事项
- 利用Frame Animation实现动画效果,代码正确,就是达不到变换效果
- 给一个正在运行的Docker容器动态添加Volume
- XINS 3.1.0 Alpha2 发布,远程 API 调用规范
- 工作流集成表单的过程
- OpenAI gym Atari游戏的环境设置
- docker国内镜像加速配置
- MySQL子查询的优缺点_浅谈mysql的子查询
- ISS国际空间站SSTV活动接收指南
- 解决liquibase.exception.LockException: Could not acquire change log lock. Currently locked by XXXX
- Web网页基于html、CSS设计——“爱家居”素材
- processing摸索前行(01)
- qq联系我们代码-qq在线客服代码
- bind函数怎么用JAVA_JavaScirpt 的 bind 函数究竟做了哪些事
- IDEA在import时飘红的解决办法
热门文章
- 低代码平台有哪些?织信informat怎么样?
- 神经网络训练样本制作_VOC格式_FOR_YOLO(Darknet)_AND_PVANet(FasterRCNN)
- vue 剪裁图片 剪裁头像 使用vue-cropper剪裁图片
- 关于TSCnbsp;TTP243E条码打印机若干问…
- 云服务器显示内存不足怎么调整,云服务器扩充内存
- 图像的高频信息和低频信息代表的含义(以奇异值分解实现图像压缩为例附实验说明)
- 鹏业软件清单量和定额量一样,水平竖向相差很多的问题
- 百度实习生招聘的一道大数据处理题目(上)
- VS中的工程文件组织
- 26篇计量经济经典论文复现数据和Stata或R代码