如题,自己备份用。

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()

股票每天最高最低价的黄金分割线买卖点标记相关推荐

  1. python股票数据接口实战:根据不同均线的关系判断买卖点

    同是5日线,但因为计算公式不一样,这两条线不可能完全重合,而我们恰好可以利用这两条均线的不同含义,来找到合适的买卖点! 这次用到的均线分别是WMA(加权移动均线),DEMA(双指数移动均线),KAMA ...

  2. 股票指标RSI所以的买卖点,附代码

    需要程序的关注微信公众号,数据分析与运用,回复rsi买卖点就可以了 运用原则这里的"极强"."强"."弱"."极弱"只是 ...

  3. Python示例代码之按指定算法判断买卖点计算股票收益

    炒股票的小伙伴们一般都有一个神奇的愿景,总认为按照自己的方法选择股票的买卖点,就一定能赚钱,今天我用程序模拟了一把买卖点和收益的实测,结果显示,无论我使用什么买卖点判断方法,总是有些股票赚钱,有些股票 ...

  4. 通达信缠论买卖点公式_缠论买卖点阐述及选股思路

    缠论一部关于如何精确买卖点的理论.它采用顶分型,底分型,笔,线段,中枢等基本构件,利用类背,盘背,背驰等看盘手段,依据区间套原则,在操作级别中找出盘背,背驰段,再在次级别中精确找出盘背,背驰买卖点,是 ...

  5. 抄底指标:秘密买卖点

    应朋友们的请求,我将自己常用的抄底指标奉献出來,该指标捕捉底部买点还较准,但世上的指标毕竟没有百分之百准确的,大家还要在使用中认真摸索经验,根据大盘趋势來使用,在大盘趋势向上时,用它來捕捉探底结束的个 ...

  6. php实现分时线图,史上最全分时图买卖点图解(转发收藏)!

    一.短线操作的真正目的:规避风险 短线操作不是不想赚大钱,而是为了不参与走势中不确定因素太多的调整."走势中的不确定因素"就是一种无法把握的巨大风险,用短线操作的方法,就可以尽量避 ...

  7. 股市非常态,CCI指标买卖点实例图解

    CCI指标即顺势指标,是唐纳德·蓝伯特于上世纪80年代提出的,是一种比较新颖的技术指标.CCI指标是专门用来衡量股价是否超出常态分布范围,是一种 超买超卖类指标,但它与其他超买超卖型指标又有自己比较独 ...

  8. 《缠中说禅108课》20:缠中说禅走势中枢级别扩张及第三类买卖点

    前面已经很明确地指出,缠中说禅走势中枢由前三个连续次级别走势类型的重叠部分确定,其后的走势有两种情况:一.该走势中枢的延伸.二.产生新的同级别走势中枢.而在趋势里,同级别的前后缠中说禅走势中枢是不能有 ...

  9. 【量化投资】我实现了A股买卖点数量趋势图

    注册这个号有一段时间了,但是从2022年初到5月初我都没有玩股票,所以也就一直没有写.我的号不会向大家推荐股票,只做一些数据分析之类的基于数据说话的一些财经分享.比如:今天我给大家带来的分享我自己觉得 ...

最新文章

  1. 数据流通实现“可用不可见”?腾讯巧夺“天工”
  2. HttpModule与HttpHandler详解(转)
  3. js 光标移动到输入框最后位置函数
  4. Linux 最常用命令:简单易学,但能解决 95% 以上的问题
  5. information_schema.routines 学习
  6. oracle定时任务会漂移,定时任务与手动执行脚本时的一个重要注意事项
  7. 利用Frame Animation实现动画效果,代码正确,就是达不到变换效果
  8. 给一个正在运行的Docker容器动态添加Volume
  9. XINS 3.1.0 Alpha2 发布,远程 API 调用规范
  10. 工作流集成表单的过程
  11. OpenAI gym Atari游戏的环境设置
  12. docker国内镜像加速配置
  13. MySQL子查询的优缺点_浅谈mysql的子查询
  14. ISS国际空间站SSTV活动接收指南
  15. 解决liquibase.exception.LockException: Could not acquire change log lock. Currently locked by XXXX
  16. Web网页基于html、CSS设计——“爱家居”素材
  17. processing摸索前行(01)
  18. qq联系我们代码-qq在线客服代码
  19. bind函数怎么用JAVA_JavaScirpt 的 bind 函数究竟做了哪些事
  20. IDEA在import时飘红的解决办法

热门文章

  1. 低代码平台有哪些?织信informat怎么样?
  2. 神经网络训练样本制作_VOC格式_FOR_YOLO(Darknet)_AND_PVANet(FasterRCNN)
  3. vue 剪裁图片 剪裁头像 使用vue-cropper剪裁图片
  4. 关于TSCnbsp;TTP243E条码打印机若干问…
  5. 云服务器显示内存不足怎么调整,云服务器扩充内存
  6. 图像的高频信息和低频信息代表的含义(以奇异值分解实现图像压缩为例附实验说明)
  7. 鹏业软件清单量和定额量一样,水平竖向相差很多的问题
  8. 百度实习生招聘的一道大数据处理题目(上)
  9. VS中的工程文件组织
  10. 26篇计量经济经典论文复现数据和Stata或R代码