当前位置: 首页 > ai >正文

历史交易数据涨跌分级

历史交易数据涨跌分级

# encoding:utf-8
import sys,traceback
from loguru import loggersys.path.append("..")
from QhSpiderTool import QhDorpFiled
from QhCsvMode import *def QhZhangDieFenJi(QhDfData,QhFangFa="A"):"""历史交易数据涨跌分级作者:阙辉:param QhDfData::return:"""QhZDFZ10 = 0.1QhZDFZ20 = 0.2QhJYBK = QhDfData["JYBK"].values[0]  # 交易板块,从流数据获取QhZhangTingBiCanShu = {  # 涨跌停分级参数"ZhangDieFu": [{# SHA|上证A股,SZA|深证A股,BJA|北证A股,"TiaoJian": ["SHA", "SZA", "BJA"],"BiLi": 0.1,},{# KCB|科创板,CYB|创业板,"TiaoJian": ["KCB", "CYB"],"BiLi": 0.2,},],"ZhangDieFu0": {"SHA": QhZDFZ10, # SHA|上证A股"SZA": QhZDFZ10,  # SZA|深证A股"BJA": QhZDFZ10,  # BJA|北证A股"KCB": QhZDFZ20,  # KCB|科创板"CYB": QhZDFZ20,  # CYB|创业板},"FanWei": [-0.98, -0.8, -0.7, -0.5, -0.2, 0, 0.2, 0.5, 0.7, 0.8, 0.98],  # 计算比例参数"FenJiCanShu":{# 涨跌分级参数  "FZ":[] 作为阀值缓存使用,暂时不用-6:{"FW":[0,-0.2],"PD":"<|>=","FZ":[]},-5:{"FW":[-0.2,-0.5],"PD":"<|>=","FZ":[]},-4:{"FW":[-0.5,-0.7],"PD":"<|>=","FZ":[]},-3:{"FW":[-0.7,-0.8],"PD":"<|>=","FZ":[]},-2:{"FW":[-0.8,-0.98],"PD":"<|>=","FZ":[]},-1:{"FW":[-0.98],"PD":"<","FZ":[]}, # 跌停0:{"FW":[0],"PD":"==","FZ":[]},     # 平1:{"FW":[0.98],"PD":">","FZ":[]},   # 涨停2:{"FW":[0.8,0.98],"PD":">|<=","FZ":[]},3:{"FW":[0.7,0.8],"PD":">|<=","FZ":[]},4:{"FW":[0.5,0.7],"PD":">|<=","FZ":[]},5:{"FW":[0.2,0.5],"PD":">|<=","FZ":[]},6:{"FW":[0,0.2],"PD":">|<=","FZ":[]},},}# 获取参数 阙辉QhZhangDieFuDic = QhZhangTingBiCanShu["ZhangDieFu"]QhFanWeiA = QhZhangTingBiCanShu["FanWei"]FenJiCanShuDic = QhZhangTingBiCanShu["FenJiCanShu"]ZhangDieFu0Dic = QhZhangTingBiCanShu["ZhangDieFu0"]if QhFangFa == "A":# 计算比例 阙辉# JYBK 代表交易板块for QhRow in QhZhangDieFuDic:QhTiaoJian = QhRow["TiaoJian"]   #QhBiLi = QhRow["BiLi"]  # 涨跌比例for QhRow01 in QhFanWeiA:QhFaZhi = QhRow01  # 阀值# 根据不同板块计算阀值,用于分级比较,阀值存储在df中,比较完后,阀值再删除掉   阙辉QhDfData.loc[(QhDfData["JYBK"].isin(QhTiaoJian)),"QFZ_{}".format(str(QhFaZhi))] = round(QhBiLi * QhFaZhi,4)  # 计算阀值比例# 分级判断 阙辉for QhKey,QhValue in FenJiCanShuDic.items():QhFenJi = QhKey   # 分级值QhFanWei = QhValue["FW"]   # 分级范围QhFanWeiLen = len(QhFanWei)QhPanDuan = QhValue["PD"]  # 分级判断值print(QhFanWei)# print(QhFanWeiLen)if QhFanWeiLen > 2:logger.error("【涨跌分级】分级范围参数超范围,请检查,本次不计算,QueHui!")continue# QZDFJ|涨跌分级QhFiledZD = "ZDF"if QhFanWeiLen == 1:  # 单条件QhFanWei0 = QhFanWei[0]if QhPanDuan == ">":  # 涨停QhDfData.loc[(QhDfData[QhFiledZD] > QhDfData["QFZ_{}".format(str(QhFanWei0))]),"QZDFJ"] = QhFenJielif QhPanDuan == "==":  # 平QhDfData.loc[(QhDfData[QhFiledZD] == QhDfData["QFZ_{}".format(str(QhFanWei0))]), "QZDFJ"] = QhFenJielif QhPanDuan == "<":  # 跌停QhDfData.loc[(QhDfData[QhFiledZD] < QhDfData["QFZ_{}".format(str(QhFanWei0))]), "QZDFJ"] = QhFenJielif QhFanWeiLen == 2:  # 多条件QhFanWei0 = QhFanWei[0]QhFanWei1 = QhFanWei[1]if QhPanDuan == ">|<=":  # 涨QhDfData.loc[(QhDfData[QhFiledZD] > QhDfData["QFZ_{}".format(str(QhFanWei0))]) &(QhDfData[QhFiledZD] <= QhDfData["QFZ_{}".format(str(QhFanWei1))]),"QZDFJ"] = QhFenJielif QhPanDuan == "<|>=":  # 跌QhDfData.loc[(QhDfData[QhFiledZD] < QhDfData["QFZ_{}".format(str(QhFanWei0))]) &(QhDfData[QhFiledZD] >= QhDfData["QFZ_{}".format(str(QhFanWei1))]),"QZDFJ"] = QhFenJi# 删除用于比较的阀值QhDfData = QhDorpFiled(QhDfData,["QFZ_{}".format(str(QhRow)) for QhRow in QhFanWeiA])else:# 分级判断 阙辉for QhKey, QhValue in FenJiCanShuDic.items():QhFenJi = QhKey  # 分级值QhFanWei = QhValue["FW"]  # 分级范围QhFanWeiLen = len(QhFanWei)QhPanDuan = QhValue["PD"]  # 分级判断值QhZDFRow = ZhangDieFu0Dic[QhJYBK]    # 找到板块的涨跌幅if QhFanWeiLen > 2:  # 校验参数是否超范围logger.error("【涨跌分级】分级范围参数超范围,请检查,本次不计算,QueHui!")continue# QZDFJ|涨跌分级  直接法QhFiledZD = "ZDF"if QhFanWeiLen == 1:  # 单条件QhFanWei0 = QhFanWei[0]QhFZ0 = round(QhFanWei0 * QhZDFRow,4)  # 阀值0if QhPanDuan == ">": QhDfData.loc[(QhDfData[QhFiledZD] > QhFZ0), "QZDFJ"] = QhFenJi       # 涨停elif QhPanDuan == "==": QhDfData.loc[(QhDfData[QhFiledZD] == QhFZ0), "QZDFJ"] = QhFenJi   # 平elif QhPanDuan == "<": QhDfData.loc[(QhDfData[QhFiledZD] < QhFZ0), "QZDFJ"] = QhFenJi     # 跌停elif QhFanWeiLen == 2:  # 多条件QhFanWei0 = QhFanWei[0]QhFZ0 = round(QhFanWei0 * QhZDFRow, 4)  # 阀值0QhFanWei1 = QhFanWei[1]QhFZ1 = round(QhFanWei1 * QhZDFRow, 4)  # 阀值1if QhPanDuan == ">|<=": QhDfData.loc[(QhDfData[QhFiledZD] > QhFZ0) & (QhDfData[QhFiledZD] <= QhFZ1),"QZDFJ"] = QhFenJi    # 涨elif QhPanDuan == "<|>=": QhDfData.loc[(QhDfData[QhFiledZD] < QhFZ0) & (QhDfData[QhFiledZD] >= QhFZ1),"QZDFJ"] = QhFenJi  # 跌return QhDfDataif __name__ == '__main__':QhDfData = QhStockHisJiaoYiModel(QhScode="Q000001",QhFrom="DF",QhShiChang="SZA",QhZhouQi="日",QhFuQuan="前复权")QhDfData = QhZhangDieFenJi(QhDfData)QhDfData.to_csv("test.csv",encoding="gbk")print(QhDfData)pass

http://www.xdnf.cn/news/13863.html

相关文章:

  • 《信号与系统》第 9 章 拉普拉斯变换
  • Chainlink VRF 深度解析与实战
  • 进阶四 带记忆功能的000-255 计数器
  • 基于Python的热门微博数据可视化分析-Flask+Vue
  • 蚂蚁集团法人变更:韩歆毅接任,公司治理的正常安排
  • 第17篇:数据库中间件的弹性伸缩与容量规划实战
  • MySQL库操作
  • 升级openssl后无法使用cmake和curl的解决方法
  • Logic Error: 如何识别和修复逻辑错误
  • C++题解 P4933 2.间谍原题:
  • 斗式提升机的负载特性对变频驱动的要求
  • 三星MZQL2960HCJR-00BAL高性能固态硬盘控制器SSD云计算和高端存储专用 电子元器件解析
  • 深刻理解深度学习的注意力机制Attention
  • Python 轻量化环境管理利器 UV 入门与 Windows 下安装实战
  • liquibase 集成 pt-online-schema-change
  • 穿越时空的刀剑之旅:走进VR刀剑博物馆​
  • python打卡day53
  • java中LinkedList和ArrayList的区别和联系?
  • python第51天
  • React Native【实战范例】网格导航 FlatList
  • oceanbase导出导入数据csv
  • 【Python教程】CentOS系统下Miniconda3安装与Python项目后台运行全攻略
  • visual studio2019+vcpkg管理第三方库
  • Vastbase的常用操作
  • 表格对比工具推荐,快速比对Excel文件
  • 用AI思维重塑人生:像训练神经网络一样优化自己
  • 图数据库如何构筑 Web3 风控防线 | 聚焦批量注册与链上盗转
  • Node.js 检测视频链接是否可以播放(批量检测)
  • C++题解 P1525 Cantor表
  • (十四)自然语言处理中的深度学习:语言表征、模型架构与计算语言学基础