自己做量化交易软件(18)小白量化平台

自己做量化交易软件(18)小白量化平台

小白量化平台框架是本地化量化平台,用户的策略在用户自己电脑中执行,操作习惯仿股票软件,指标算法支持类通达信指标,回测也支持通达信大智慧等自定义股票格式。
小白量化平台框架是跨平台的,任何平台都能使用,但是要安装必要的支持模块。
(1)安装必要的包。
pygame,matplotlib,mpl_finance,PILlow,jieba
requests,bs4,sklearn,keras
(2)金融数据包
tushare,jqdatasdk,quantaxis,opendatatools,pytdx
安装好这些模块,我们的平台已经搭建好了。

小白全部模块以及全部代码随书
《零基础搭建量化投资系统――以Python为工具》下载。
在这里插入图片描述
书中提供的演示源码如下。
在这里插入图片描述
在这里插入图片描述
上面2套源代码随书下载。支持多种行情源。
作者又为读者设计了新一代小白量化平台系统,支持pytdx实时行情、期货等行情。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#框架中[增强插件]在view目录中
#框架中[用户程序]在user目录中
#股票代码框输入:fst分时图 rxt日线图 f10 F10信息
在这里插入图片描述
在这里插入图片描述
下面我们看看[日线图]插件的写法。

# -*- coding: utf-8 -*-
#日线图.py
# 显示日线图的模板
import  tkinter  as  tk   #导入Tkinter
import  tkinter.ttk  as  ttk   #导入Tkinter.ttk
import  tkinter.tix  as  tix   #导入Tkinter.tix
import time
import pandas as pd
import numpy as np
import HP_global as g 
import HP_data as hp
from HP_view import * #菜单栏对应的各个子页面 
import HP_tdx as htdx#系统设定了g.tab1--g.tab9,系统只是用了g.tab1--g.tab6
#控件结构 g.G_root -〉 g.tabControl  -〉g.tab1
#增加tab,用add()
#删除tab,用forget()
#当然用户可以设置更多的tab窗口。必须使用全局变量g.变量名
#重复建立新tab窗会出错,所以我们先检测是否None,不是就先做删除旧tab窗口。
g.gtype=g.book_s.get()
stockn=g.stock_i.get()
stockn=stockn.strip()
stockn=stockn.zfill(6)
stock.set(stockn)
g.stock=stockn
ds=date_s.get()
de=date_e.get()
g.sday=ds.strip()
g.eday=de.strip()
df2=htdx.get_k_data(g.stock,ktype='D',start=g.sday,\end=g.eday,index=False,autype='qfq')
if g.tab3!=None:g.tabControl.forget(g.tab3)g.tab3=None#用户自建新画面
g.tab3 = tk.Frame(g.tabControl)
g.tabControl.add(g.tab3, text='日线图') 
g.tabControl.select(g.tab3)
axview3x(g.tab3,df2,t=g.stock+' '+g.stock_names[g.stock],n=2,f1='VOL',f2=g.gtype)
g.tabControl.select(g.tab3)
g.tabs=3

下面是KDJ回测代码。

# -*- coding: utf-8 -*-
"""
#功能:小白股票分析软件框架 回测工具
#版本:Ver1.00
#设计人:独狼荷蒲
#电话:18578755056
#QQ:2775205
#百度:荷蒲指标
#开始设计日期: 2018-07-08
#公众号:独狼股票分析
#使用者请同意最后<版权声明>
#最后修改日期:2019年12月22日
"""global CLOSE,LOW,HIGH,OPEN,VOL
ds=g.hcdate_s.get()  #获取框架开始日期
de=g.hcdate_e.get()  #获取框架结束日期
stockn=g.hcstock.get()  #获取框架股票代码
df2=htdx.get_k_data(stockn,ktype='D',start=ds,end=de,index=False,autype='qfq')
df3=df2##数据规格化 
df3.dropna(inplace=True)mydf=df3.copy()
CLOSE=mydf['close']
LOW=mydf['low']
HIGH=mydf['high']
OPEN=mydf['open']
VOL=mydf['volume']
C=mydf['close']
L=mydf['low']
H=mydf['high']
O=mydf['open']
V=mydf['volume']##KDJ交易策略 
def KDJ(N=9, M1=3, M2=3):RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100K = SMA(RSV,M1,1)D = SMA(K,M2,1)J = 3*K-2*Dreturn K, D, Jk,d,j=KDJ(22,11,22)
mydf = mydf.join(pd.Series( k,name='K'))  
mydf = mydf.join(pd.Series( d,name='D'))  
mydf = mydf.join(pd.Series( j,name='J')) 
mydf['S80']=80  #增加上轨80轨迹线
mydf['X20']=20  #增加下轨20轨迹线
mydf['Z50']=50  #增加中轨50轨迹线##下面开始生成RSI指标买卖点
##买点J上穿数值20
b1=CROSS(mydf['J'],mydf['X20'])
mydf = mydf.join(pd.Series( b1,name='B1'))  ##卖点J下穿80
s1=CROSS(mydf['S80'],mydf['J'])#卖点J下穿50
s2=CROSS(mydf['Z50'],mydf['J'])#合并所有卖点信号
s3=s1 | s2mydf = mydf.join(pd.Series( s1,name='S1'))  
mydf = mydf.join(pd.Series( s2,name='S2'))  
mydf = mydf.join(pd.Series( s3,name='S3'))  g.tabControl.select(g.tab5)
##回测
tt=hpQuant()   ##初始化类
tt.code=stockn  #证券代码,必须输入
tt.stop_loss_on=False    #关闭自动止损
df3=tt.Trade_testing(mydf,'B1','S3','HL')   #开始回测tt.PrintTrade()    #打印交易过程
print('\n打印持仓信息')
tt.PrintSecurity()   #打印持仓信息if g.UserCanvas!=None:g.UserPlot.cla() g.UserPlot.close()g.UserCanvas._tkcanvas.pack_forget() g.UserCanvas=None######下面是绘图
# 开启一个双图例的窗口,定义为211和212
fig=plt.figure(2, figsize=(12,8), dpi=80)
g.UserFig=fig
g.UserPlot=plt
ax1 = plt.subplot(211)
ax2 = plt.subplot(212)# ax1(211窗口)
plt.sca(ax1)
#添加标题
ax_K(ax1,df3,stockn)  
plt.suptitle(stockn+' '+g.stock_names[stockn]+'  KDJ回测结果')# ax2(212窗口)
plt.sca(ax2)
df3.HL.plot(color='orange', grid=True,label="获利")
df3.B1.plot(color='red',label="$B$")
df3.S3.plot(color='blue',label="$S$")plt.legend() # 显示图中右上角的提示信息。
ax2.grid(True)
ax2.axhline(0, color='blue')
plt.gca().yaxis.set_major_locator(mticker.MaxNLocator(prune='upper'))
ax2.xaxis.set_major_locator(mticker.MaxNLocator(8))  #x轴分成几等分     
ax2.yaxis.set_major_locator(mticker.MaxNLocator(nbins=3, prune='upper'))
plt.close()
canvas =FigureCanvasTkAgg(fig, master=g.UserFrame)canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
g.UserCanvas=canvas
canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=1)

在这里插入图片描述
独狼荷蒲qq:2775205
Python Tkinter小白量化群:524949939
电话微信:18578755056
微信公众号:独狼股票分析

其他QQ群:
PythonTkinterGUI : 517029284
Python学习交流: 647866213

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

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

相关文章

一位从事量化交易的实战者,手把手带你入门量化交易!

大数据文摘出品 来源&#xff1a;quantstart 编译&#xff1a;LYLM、笪洁琼 本文作者是一位从事量化交易的实战者&#xff0c;他将他的实战心得写成一个量化交易系列&#xff0c;本篇则是系列的第一篇&#xff0c;从文中你会对整个量化交易的框架、流程、以及策略思路的来源地都…

自己做量化交易软件(38)小白量化实战11--双向高频马丁交易策略

自己做量化交易软件(38)小白量化实战11–双向高频马丁交易策略 上一篇文章我们介绍了做多的马丁策略,见文章<自己做量化交易软件(37)小白量化实战10–操作方法与MetaTrader5高频策略的进化>. 这一篇介绍双向高频马丁交易策略,也就是说能够多空两个方向的开单策略. 小白量…

自己做量化交易软件(22)小白量化之MetaTrader5自动交易1

自己做量化交易软件(22)小白量化之MetaTrader5自动交易1 小白量化框架源代码是《零基础搭建量化投资系统――以Python为工具》的随书演示代码. 作者其中之一杨老师利用小白量化系统参加外汇期货实战比赛,取得了8天获利860%的战绩. 我看了这个战绩,我从心里羡慕、嫉妒、外加眼…

微信客服后台SDK

微信客服后台SDK功能介绍 微信客服回调自动获取客户在微信发送给客服的消息并入库发送客服消息自动发动客服欢迎语获取客户基础信息并入库获取客服帐号列表添加客服帐号修改客服帐号删除客服帐号获取客服帐号链接上传临时素材&#xff08;需等待ivx后台文件接口支持file对象&a…

微信开发之客服消息的使用

之前的消息发送与接收都是用户给微信发一条&#xff0c;之后微信回复给用户&#xff0c;也就是API上面所说的被动回复消息&#xff0c;那么微信是否支持主动给关注用户发消息吗&#xff0c;答案是肯定的&#xff0c;但是却有一些限制。看下微信开发文档上怎么说就明白了&#x…

最新30万字312道Java经典面试题52道场景题总结(附答案PDF)

最近有很多粉丝问我&#xff0c;有什么方法能够快速提升自己&#xff0c;通过阿里、腾讯、字节跳动、京东等互联网大厂的面试&#xff0c;我觉得短时间提升自己最快的手段就是背面试题&#xff1b;花了3个月的时间将市面上所有的面试题整理总结成了一份30万字的300道Java高频面…

CAD必练图形

这次我们用CAD梦想画图软件绘制一个CAD新手必练图形&#xff0c;它用到的有CAD矩形、直线、圆弧、等分等命令结合起来完成绘制的&#xff0c;可以跟着一起操作一下。 目标图形 操作步骤 1.使用CAD矩形命令&#xff08;快捷键&#xff1a;REC&#xff09;绘制一个长80宽30的矩形…

将CAD图纸中的线型和文字样式合并的方法技巧(一)

在使用浩辰CAD软件绘制CAD图纸的过程中&#xff0c;很多CAD制图初学入门者不太了解如何把CAD图纸中的线型和文字样式合并&#xff0c;虽然图层中提供了图层合并功能&#xff0c;但是线型和文字样式却并没有&#xff0c;其实如果想实现这个功能&#xff0c;可以通过CAD的标准检查…

图片转cad用什么软件?转换有技巧

在工程和建筑行业中&#xff0c;CAD已经成为了必不可少的工具&#xff0c;它可以提高设计效率并减少错误。但是&#xff0c;有时候我们需要将手绘图或者图片转换为CAD文件&#xff0c;因为这些图像可能是原始设计的基础&#xff0c;或者是为了方便修改和编辑而需要转换的。在这…

cad怎样编辑标注文字?分享一个方法

我们经常需要在CAD上进行编辑标注文字&#xff0c;CAD编辑软件可以帮助咱们准确地编辑CAD文件&#xff0c;让我们标注CAD文件中的图形元素。包括多种类型的图形元素&#xff0c;如线条、圆弧、文字等&#xff0c;并且可以自定义标注的文字内容、字体、大小等。此外&#xff0c;…

用手机怎么修改CAD图纸中的文字?

手机中收到其他人发送过来的一张CAD图纸&#xff0c;想要对图纸中的部分文字进行修改&#xff0c;手机CAD看图软件可以调整图纸中的文字吗&#xff1f;具体该如何进行操作呢&#xff1f;接下来的CAD教程就让小编来给大家分享一下手机CAD看图软件——浩辰CAD看图王中修改图纸上文…

如何使用CAD看图软件来修改CAD图纸中的文字?

手机中收到其他人发送过来的一张CAD图纸&#xff0c;想要对图纸中的部分文字进行修改&#xff0c;手机CAD看图软件可以调整图纸中的文字吗&#xff1f;具体该如何进行操作呢&#xff1f;接下来的CAD教程就让小编来给大家分享一下手机CAD看图软件——浩辰CAD看图王中修改图纸上文…

使用Teigha(OpenDesign)操作CAD的dwg文件

说起来&#xff0c;其实我自己也感觉这个要求挺奇怪的&#xff0c;Java操作CAD&#xff0c;好吧&#xff0c;目前比较完善的类库有一个是jdwglib&#xff0c;但是我没找到&#xff0c;而且公司刚好有OpenDesign的账号&#xff0c;因此&#xff0c;需要使用Teigha来进行操作&…

免费的绘图和图表工具Tldraw

什么是 Tldraw &#xff1f; Tldraw 是一款免费的绘图和图表工具&#xff0c;具有手绘风格和智能箭头、捕捉和便签等便捷功能。并可以导出 svg 等图片格式&#xff0c;可以作为组件嵌入到其他应用中。比如号称下一代笔记的 AFFiNE 就用了 Tldraw 来完成白板协同功能。 官方有演…

产品经理面试指南,常见面试题及回答思路

产品经理面试指南&#xff0c;常见面试题及回答思路 一、项目 自我介绍&#xff0c;这个不用说是所有面试都要的 2-3分钟之内介绍完&#xff0c;不要过于冗余或者简短&#xff0c;不要把重点放在个人生活&#xff0c;要突出和工作有关的项目、做事能力、性格等等&#xff0c;当…

产品经理面试,说一下你是怎么做产品规划的?

阅读本文大概需要1分12秒 “你做为产品经理或产品线负责人&#xff0c; 是如何规划未来 3-6 个月的产品发展计划&#xff1f;” 有的说是产品总监规划&#xff0c;自己不参与&#xff1b;&#xff08;那麻烦问问你总监要不要过来&#xff09; 有的说看业务部或公司战略规划&…

如何回答「为什么想做产品经理」【面试核心问题3】

当问出“为什么想做产品经理/为什么转行做产品经理”时&#xff0c;面试官的动机&#xff0c;是想知道&#xff1a;我为什么要录用你做产品经理 今日问题&#xff1a;为什么想做产品经理 面试时很多问题是相通的&#xff1a; 为什么想做产品经理为什么你适合做产品经理你做产品…

常见B端产品经理面试问题及答案(一)

↑↑↑我会一直给你分享B端产品经理面试问题及答案&#xff0c;请点击上方关注&#xff01; 你好&#xff0c;我是B端产品经理面试官Aadi&#xff0c;任职某大厂&#xff0c;11年面试官&#xff0c;10年产品经理&#xff0c; 我是站在面试官角度&#xff0c;只告诉你拿来即用的…

产品经理笔试面试准备

产品经理聊面试&#xff1a;http://m.ximalaya.com/album/18917184 1、解释以下名词&#xff1a; 蝴蝶效应&#xff1a;初始条件十分微小的变化&#xff0c;结果不断放大&#xff0c;对未来状态可能造成巨大的差异。破窗效应&#xff1a;如果一个窗子破了&#xff0c;但不及时…

Alpha-GO打败⼈类的秘籍- 强化学习(Reinforcement Learning)

为了深⼊理解强化学习&#xff08;Reinforcement Learning&#xff0c;简称RL&#xff09;这⼀核⼼概念&#xff0c;我们从⼀个⽇常游戏的例⼦出发。在“贪吃蛇”这个经典游戏中&#xff0c;玩家需要掌控⼀条蛇&#xff0c;引导它吞吃屏幕上出现的各种果实。每次成功捕获果实&a…