Flask发布一个及时止损(止盈)服务(二)

生成可视化的止盈止损结果(图片)

妈的,还是得用 akshare,还需要指定python版本3.9以上

conda remove -n fonxsys --all
conda search pythonconda create -n fonxsys python=3.9
conda activate fonxsys
python.exe -m pip install --upgrade pip --userpip install --upgrade pip #失败,网络问题
pip install pip -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --user --upgrade #失败python.exe -m pip install pip -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --user --upgradeconda config --show channels 

安装AKShare 

使用阿里云安装 akshare基于 Python 的代码如下(不是本次重点)
pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --upgrade基于 Anaconda 的代码如下,"pip install --user" 的意思是使用当前用户的权限安装 Python 包
pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --user --upgrade

 安装spyder(不知道清华源的为啥又不行了)

conda install spyder

安装基本的一些包

conda install numpy pandas pyquery

  安装金融绘图库

pip install mplfinance --user

添加引用代码

import mplfinance as mpf
import matplotlib.pyplot as plt

函数,获取历史数据

def getdata_his(code,date_buy):df = pd.DataFrame(columns=['日期','开盘','收盘','最高','最低','成交量'])    #print(code)#print(date_buy)if (code[0] == '0' or code[0] == '3' or code[0] == '6'):        df = ak.stock_zh_a_hist(symbol=code, period="daily", start_date=date_buy.replace("-", ""), adjust="qfq")df = df[['日期','开盘','收盘','最高','最低','成交量']] df.columns = ['date', 'open','close','high','low','volume']      df['date'] = pd.to_datetime(df['date'])df.set_index('date', inplace=True)elif (code[0] == '1' or code[0]=='5'):#ETF基金的处理比较特殊,要分,历史行情,当前行情if code[0] == '1':symbol = "sz"+code        else:symbol = "sh"+code#历史行情        df = ak.fund_etf_hist_sina(symbol)df['date'] = pd.to_datetime(df['date'])df.set_index('date', inplace=True)df = df[df.index>= pd.Timestamp(date_buy)]    #当日行情df_today = ak.fund_etf_spot_em()    #print(df_today)df_today = df_today.loc[df_today['代码']==code] df_today = df_today[['名称','开盘价','最新价','最高价','最低价','成交量']]df_today.columns = ['date', 'open','close','high','low','volume']df_today.loc[df_today.index[0],'date']=dt.datetime.now().strftime("%Y-%m-%d")                      df_today['date'] = pd.to_datetime(df_today['date'])df_today.set_index('date', inplace=True)        #合并行情if df.index[-1] != pd.to_datetime(dt.datetime.now().strftime("%Y-%m-%d")):df = pd.concat([df,df_today],ignore_index = False)#df['ma5'] = df['close'].rolling(5).mean()print(df)return df

函数,获取当前信息(主要就是股票名称了)

def getdata_online(code):if code[0] == '0':symbol = "sz"+codeelif code[0] == '1':symbol = "s_sz"+codeelif code[0] == '3':symbol = "sz"+codeelif code[0] == '5':symbol = "s_sh"+codeelif code[0] == '6':symbol = "sh"+codeurl = "http://hq.sinajs.cn/list="+symbolheaders={'Referer':'https://finance.sina.com.cn/'}page = requests.get(url,headers=headers)stock_info = page.text#print(stock_info)mt_info = stock_info.split(",")#爬取到数据信息name    = mt_info[0].split("\"")[1]return name

函数 生成数据

code="002962"
price_buy=14.682
date_buy="2024-03-05"
price_stop_loss=14.40def make_data(code,price_buy,date_buy):#具体计算开始df_his = getdata_his(code,date_buy)    if len(df_his) <= 0 : return Nonename = getdata_online(code)if name == "" : return Nonereturn name,df_his

函数 图片绘制的一些初始化

def init_plt():'''# 设置mplfinance的蜡烛颜色,up为阳线颜色,down为阴线颜色my_color = plt.make_marketcolors(up='r',down='g',edge='inherit',wick='inherit',volume='inherit')# 设置图表的背景色my_style = plt.make_mpf_style(marketcolors=my_color,figcolor='(0.82, 0.83, 0.85)',gridcolor='(0.82, 0.83, 0.85)')plt.plot(df_his,type='candle',style=my_style,ylabel='price(RMB)')sys.exit()'''plt.figure(figsize=(8,4),  # inchesdpi=200, # dot-per-inchfacecolor='#BBBBBB',frameon=True, # 画布边框) # X轴范围#plt.xlim((2000,2010))  # X轴的起点和终点# Y轴范围#plt.ylim(6e9,7e9) # Y轴的起点和终点# X轴刻度#plt.xticks(df_his.index,df_his.index.strftime("%m-%d"))# X轴刻度#plt.yticks(np.arange(6e9,7e9+1e8,1e8))'''df.plot(kind = "line",figsize = (6, 4),title = "title",legend = True,ylim = [-20, 20], yticks = list(range(-20, 20, 10)),grid = False,style = "--g", colormap = "cool", alpha = 0.8,rot = 45,use_index = True,subplots = True)'''plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置字体为简黑(SimHei)plt.rcParams['font.sans-serif'] = 'FangSong'  # 设置字体为仿宋(FangSong)plt.rcParams['axes.unicode_minus']=False

函数 生成可视化的图片

def makepic(code,price_buy,date_buy,name,df_his):now = df_his.iloc[-1,1]            price_stop_loss = df_his.min()['low']      price_high = df_his.max()['high']df_his['price_buy'] = price_buydf_his['price_high'] = price_highdf_his['price_stop_loss'] = price_stop_lossprofit_base = 0.618price_stop_surplus = price_buy+(price_high-price_buy)*profit_base;df_his['price_stop_surplus'] = price_stop_surplusprint("{} {}\n当前日期 {}\n购入日期 {}\n购入价格 {}\n止损价格 {:.3f}\n区间高价 {:.3f}\n当前价格 {:.3f}\n止盈价格 {:.3f}".format(\code,\name,\dt.datetime.now().strftime("%Y-%m-%d"),\date_buy,\price_buy,\price_stop_loss,\float(price_high),\float(now),\price_stop_surplus))plt.title("{} {} {} 止损止盈动态图".format(code,name,dt.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))plt.xlabel('日期')plt.ylabel('价格')plt.plot(df_his[['price_high']],linestyle='-',color='orange',label="最高(%.3f)" % (price_high))     plt.plot(df_his[['high']],linestyle='-',color='orange',label="每日最高")         plt.plot(df_his[['price_stop_surplus']],linestyle='--',color='red',label="止盈(%.3f)" % (price_stop_surplus))         plt.plot(df_his[['price_buy']],linestyle='-',color='blue',label="成本线(%.3f)" % (price_buy))#plt.plot(df_his[['close']],marker='o',color='blue',label="每日收盘" )              plt.scatter(df_his.index,df_his[['close']], marker='o',color='blue',label="每日收盘" )        plt.plot(df_his[['low']],linestyle='-',color='green',label="每日最低")plt.plot(df_his[['price_stop_loss']],linestyle='-',color='green',label="止损线(%.3f)" % (price_stop_loss)) legend = plt.legend(loc='best')

主函数

if __name__=='__main__':#三花智控code="002050"price_buy=24.222date_buy="2024-03-07"#长江电力code="600900"price_buy=24.83date_buy="2024-04-01"#五方光电code="002962"price_buy=14.682date_buy="2024-03-05"#天威视讯code="002238"price_buy=9.883date_buy="2024-04-18"#晋拓股份code="603211"price_buy=18.28date_buy="2024-03-13"#科力远code="600478"price_buy=4.4date_buy="2024-05-06"#太平洋code="601099"price_buy=3.591date_buy="2024-05-15"#一心堂code="002727"price_buy=20.57date_buy="2024-04-16"#我爱我家code="000560"price_buy=3.156date_buy="2024-05-27"#祥源文旅code="600576"price_buy=5.570date_buy="2024-05-09"    #卡倍亿code="300863"price_buy=48.905date_buy="2024-06-03"       #春秋电子code="603890"price_buy=11.39date_buy="2024-06-03"#蓝帆医疗code="002382"price_buy=5.073date_buy="2024-05-30"   #皖能电力code="000543"price_buy=8.041date_buy="2024-06-03"#处理数据name,df_his= make_data(code,price_buy,date_buy)#初始化绘图init_plt()makepic(code, price_buy, date_buy, name,df_his)# 新浪日K线图#http://image.sinajs.cn/newchart/daily/n/sh000001.gif

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【粉丝福利 | 第8期】值得收藏!推荐10个好用的数据血缘工具

⛳️ 写在前面参与规则&#xff01;&#xff01;&#xff01; ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论三次&#xff09; ⛳️本次送书1~4本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越多】 目前市面上绝…

数据迁移探索

概念 数据迁移是指将数据从一个计算环境或存储系统移动到另一个计算环境或存储系统。 随着公司业务的发展&#xff0c;出于成本优化、系统升级、分库分表、整合数据等原因。数据迁移工作在日常工作中会陆续出现。 我们可以将数据迁移分成两个部分&#xff0c;第一部分是数据…

springboot高职院校毕业生信息管理系统-计算机毕业设计源码27889

摘 要 基于Java语言开发的高职院校毕业生信息管理系统旨在提供一个便捷、高效的方式来管理毕业生的相关信息。系统包括学生基本信息管理、成绩管理、就业信息管理等模块&#xff0c;通过界面友好、操作简单的设计&#xff0c;方便管理员快速查询和更新学生信息。系统还提供数据…

采用前后端分离技术架构+java语言开发的全套产科信息管理系统源码 可与医院HIS、LIS、PACS、RIS等系统进行对接

采用前后端分离技术架构java语言开发的全套产科信息管理系统源码 可与医院HIS、LIS、PACS、RIS等系统进行对接 什么是产科信息管理系统-建档管理&#xff1f; 产科信息管理系统建档管理通过信息技术实现了孕产妇健康信息的电子化、网络化和智能化管理&#xff0c;提高了医疗服…

Riscv 架构的合规测试

为啥直接关注riscv-arch-test&#xff0c;是因为RISCOF 测试框架使用的是riscv-arch-test 1. The architectural test 架构测试是一个单一的测试&#xff0c;代表了可编译和运行的最小测试代码。它是用汇编代码编写的&#xff0c;其产品是test signature。一个架构测试可能由…

微信小程序推送消息java版

需求背景 使用springboot2微信小程序推送消息。百度了一下看了一篇文章整体还可以&#xff0c;这里推荐一下。 教程解析 1、微信平台开通订阅消息。 2、添加模板。 3、springboot后台接口开发 微信平台验证地址接口开发&#xff0c;然后部署到公网服务器。 4、微信平台验…

基于FPGA的数字信号处理(15)--定点数的舍入模式(6)向0取整fix

前言 在之前的文章介绍了定点数为什么需要舍入和几种常见的舍入模式。今天我们再来看看另外一种舍入模式&#xff1a;向上取整fix。 10进制数的fix fix&#xff1a;也叫 向0取整。它的舍入方式是数据往0的方向&#xff0c;舍入到最近的整数&#xff0c;比如1.75 fix到2&#xf…

Docker技术简介

Docker是一种开源的容器化平台&#xff0c;旨在简化应用程序的创建、部署和运行过程。它通过将应用程序及其所有依赖项打包到一个称为容器的可移植单元中来实现这一目标。以下是Docker技术的简介&#xff1a; Docker的核心概念 1、容器&#xff08;Container&#xff09;&…

将WordPress的文章重新排序的3个方法

有效的调整文章显示顺序看开可以更好突出内容&#xff0c;还可以保持网站的新鲜感&#xff0c;今天我将带您了解三种方法&#xff0c;通过重新排序文章显著提升网站的吸引力。我们将逐步讲解从调整设置到使用插件以及“置顶”文章的每一种方法&#xff0c;确保WordPress 新手也…

Linux将mysql导出

1、基础导出 要在Linux系统中将MySQL数据库导出&#xff0c;通常使用mysqldump命令行工具。以下是一个基本的命令示例&#xff0c;用于导出整个数据库&#xff1a; mysqldump -u username -p database_name > export_filename.sql 其中&#xff1a; username 是你的MySQL用…

利用python进行数据分析 —— python正则表达式(持续更新中!)

文章目录 利用python进行数据分析 —— python基础知识进阶重点笔记&#xff1a;正则表达式re.match 匹配开头re.search 全文匹配re.sub 替换删除re.compile 编译正则findall 返回列表finditer 返回迭代器re.split 分割返回列表(?P...) 分组匹配正则表达符号、修饰符通配符1 ^…

谷歌上新!最强开源模型Gemma 2,27B媲美LLaMA3 70B,挑战3140亿Grok-1

文章目录 LMSYS Chatbot Arena&#xff1a;开源模型性能第一Gemma为什么这么强&#xff1f;架构创新对AI安全性的提升 A领域竞争激烈&#xff0c;GPT-4o 和 Claude 3.5 Sonnet 持续发力&#xff0c;谷歌迅速跟进。 谷歌为应对AI竞争所采取的策略&#xff1a;依靠 Gemini 闭源模…

hdu物联网硬件实验3 按键和中断

学院 班级 学号 姓名 日期 成绩 实验题目 按键和中断 实验目的 实现闪灯功能转换 硬件原理 无 关键代码及注释 /* Button Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached…

AI端侧大模型未来发展趋势

一、定义与优势 端侧AI大模型是指基于移动终端设备上的大型神经网络模型&#xff0c;这些模型能够在本地设备&#xff08;如智能手机、PC、汽车、XR以及物联网设备等&#xff09;上直接运行和处理人工智能算法&#xff0c;实现如图像识别、语音识别、自然语言处理等任务。端侧…

解决WSL2报错:当前电脑配置不支持WSL2,请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化

事情要追溯到突发奇想下载了腾讯的手游模拟器开始。。。因为一直闪退&#xff0c;模拟器自检就要求把虚拟化功能关闭了&#xff0c;结果还是一直闪退&#xff0c;WSL2也给我报错了。。。大无语 主要通过以下两个步骤解决&#xff0c;操作了之后需要把电脑重启&#xff1a; 一、…

docker里日志分割的方法

在Docker中对日志进行按大小分割&#xff08;log rotation&#xff09;是一个常见的需求&#xff0c;因为长时间运行的容器可能会生成大量日志&#xff0c;导致磁盘空间不足。Docker提供了内置的日志管理功能&#xff0c;可以通过配置日志驱动来实现日志的自动分割。以下是具体…

安卓系统裁剪原生app

目录 前言一、修改build目录main.mk二、修改build目录product.mk三、在.mk中使用PRODUCT_DEL_PACKAGES属性 前言 安卓系统裁剪预置应用或服务基本步骤 一、修改build目录main.mk ifdef FULL_BUILD# The base list of modules to build for this product is specified# by th…

小程序做自定义分享封面图,Canvas base64图片数据真机上不显示?【已解决】

首选说一下需求&#xff0c;做一个小程序分享&#xff0c;但是封面图要自定义&#xff0c;除了要有对应商品还有有背景图&#xff0c;商品名。类似这种 实现逻辑&#xff0c;把商品图和背景图&#xff0c;再加上价格和商品名用canvas 渲染出来 这是弄好之后的效果图&#xff0…

管理者要勇敢做“坏人”

有点正义感的人都对坏人深恶痛绝&#xff0c;但在团队管理上&#xff0c;有一种观念或许会让你感到意外&#xff0c;那就是管理者要敢于做“坏人”。这并不是让管理者去做恶&#xff0c;而是在某些关键时刻&#xff0c;要有勇气打破常规的“好人”形象&#xff0c;做出不受欢迎…

执行数据库语句时没有报错,并且提示执行成功,但在数据库中没有新增数据

这可能是因为你没有提交事务。在执行 INSERT、UPDATE 或 DELETE 等修改数据的操作后&#xff0c;需要明确地提交事务才能将更改持久化到数据库中。 以下是一个示例&#xff0c;展示python中如何在执行 INSERT 语句后提交事务&#xff1a; import pymysql# MySQL数据库连接配置…