自己做量化交易软件(44)小白量化实战17–利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计
小白量化平台是由若干小白金融模块构成。其中包含行情接收模块,仿通达信大智慧公式计算模块,K线及指标绘图模块,回测模块,Tkinter GUI窗口设计模块等构成。每个模块都能独立应用。
最新实战版本小白量化xb2f压缩包中,提供了最新的公式库,除了增加了几十个公式函数外,还集成了通达信数百个常用公式,例如kd,rsi,macd,boll…等等,使用者不用复制函数,可直接使用这些系统默认公式,更加方便开发量化软件。
下面是小白量化模块的KDJ指标显示的演示。
# -*- coding: utf-8 -*-
# KDJ指标演示
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import HP_tdx as htdx
from HP_formula import *
#连接行情主站
htdx.TdxInit(ip='40.73.76.10',port=7709)
code='600080'
#获取日线数据,800条数据
df = htdx.get_k_data(code,ktype='D',index=False,autype='qfq')
mydf=initmydf(df) ##初始化mydf表
mydf['K'],mydf['D'],mydf['J']=KDJ(9,3,3)
mydf['S80']=80 #增加上轨80轨迹线
mydf['X20']=20 #增加下轨20轨迹线
mydf=mydf.tail(100) #显示最后100条数据线
#下面是绘线语句
mydf.S80.plot.line()
mydf.X20.plot.line()
mydf.K.plot.line(legend=True)
mydf.D.plot.line(legend=True)
mydf.J.plot.line(legend=True)
程序运行结果如下:
下面我们看看,如何在迅投QMT极速策略交易系统上例如用小白量化金融模块来实现指标回测。
买卖条件:
#买入条件:指数k上穿d时触发买入信号,过滤连续超卖导致的买入信号
#卖出条件:指数k下穿d时触发卖出信号,过滤连续超买导致的卖出信号
下面我们给出迅投QMT极速策略交易系统上利用小白量化公式模块编写指标的回测示例。
首先把小白量化目录【D:\xb2f】中的HP_formula.py文件复制到迅投QMT极速策略交易系统目录【D:\申港证券QMT模拟 交易终端\python】中。
在设计迅投QMT极速策略交易系统的策略时,就可以使用小白量化仿通达信公式库了。同理,在恒生PTrade交易系统(交易端)上,以及各种本地化量化平台中,都可以使用小白量化金融模块。
下面直接给出迅投QMT极速策略交易系统KDJ指标交易策略源代码。
#encoding:gbk
'''
本策略事先设定好交易的股票篮子,然后根据指数的CCI指标来判断超买和超卖
当有超买和超卖发生时,交易事先设定好的股票篮子
'''
import pandas as pd
import numpy as np
import talib
#导入小白量化公式函数库模块
from HP_formula import *
def init(ContextInfo):
#hs300成分股中sh和sz市场各自流通市值最大的前3只股票
ContextInfo.trade_code_list=['601398.SH','601857.SH','601288.SH','000333.SZ','002415.SZ','000002.SZ']
ContextInfo.set_universe(ContextInfo.trade_code_list)
ContextInfo.accID = 'XXXXXXX'
ContextInfo.buy = True
ContextInfo.sell = False
def handlebar(ContextInfo):
#计算当前主图的KDJ
mkdict = ContextInfo.get_market_data(['high','low','close','open'],count=int(period)+1)
#小白量化数据规格化(初始化)
mkdict['date']=mkdict.index
mydf=initmydf(mkdict)
#使用公式库中的默认KDJ(9,3,3)指标,可以带其他参数。也可以自编公式。
k,d,j=KDJ()
ContextInfo.paint("K",np.array(k)[-1],-1,0,'noaxis')
ContextInfo.paint("D",np.array(d)[-1],-1,0,'noaxis')
ContextInfo.paint("J",np.array(j)[-1],-1,0,'noaxis')
#交易策略
if len(k)<2:
return
#买入条件:指数k上穿d时触发买入信号,过滤连续超卖导致的买入信号
buy_condition = np.array(CROSS(k,d))[-1] and ContextInfo.buy
#卖出条件:指数k下穿d时触发卖出信号,过滤连续超买导致的卖出信号
sell_condition = np.array(CROSS(d,k))[-1] and ContextInfo.sell
if buy_condition:
ContextInfo.buy = False
ContextInfo.sell = True
#列表中股票分别下单买入10手
for stockcode in ContextInfo.trade_code_list:
order_lots(stockcode,10,ContextInfo,ContextInfo.accID)
elif sell_condition:
ContextInfo.buy = True
ContextInfo.sell = False
#列表中股票分别下单卖出10手
for stockcode in ContextInfo.trade_code_list:
order_lots(stockcode,-10,ContextInfo,ContextInfo.accID)
#可买或可卖状态
ContextInfo.draw_text(bool(buy_condition),float(np.array(k)[-1]),'buy') #绘制买点
ContextInfo.draw_text(bool(sell_condition),float(np.array(k)[-1]),'sell') #绘制卖点
ContextInfo.paint('can_buy',ContextInfo.buy,-1,0,'nodraw')
ContextInfo.paint('can_sell',ContextInfo.sell,-1,0,'nodraw')
程序运行输出的图形如下。
<零基础搭建量化投资系统――以Python为工具>京东购买网址
https://item.jd.com/61567375505.html
大家不要买盗版书,只有正版书,电子书才能加入读者群,我一直有代码更新,公式库又增加了几十个基础函数,有疑问,也可以咨询作者完善改进。
我们正在开发小白第三代量化系统,仍然采用Tkinter的GUI库设计。下面是部分设计图。
一、小白量化第三代量化平台主要功能说明:
1、仿流行股票软件的操作界面和操作快捷键来设计软件。适合广大投资者投资行情软件无缝迁移到小白量化平台上。
2、直接使用流行的股票公式指标进行分析和计算,以及选股显示图形。方便投资者使用自编公式在小白量化平台上显示。
3、除了支持普通股票指标公式外,还支持Alpha自编因子公式。
2015年底World Quant发表了论文《101 Formulaic Alpha》。论文中给出了101个现实中的alpha。因子数据挖掘量化投资获取了不俗的收益。我们量化软件已经实现了Alpha101公式函数算法,用户有能力实现新的Alpha自编因子公式。创作出更多的Alpha自编因子公式。下面是原始Alpha101因子公式代码。
见前面博客。
https://blog.csdn.net/hepu8/article/details/113825112
4、支持多因子自编公式。指标公式函数只支持1只股票指标运算。多因子自编公式支持1组股票运算。
自编因子指标公式是对一批股票同步计算,因此速度很快。
据测试同样机器计算300只股票, 300只股票循环计算仿通达信指标公式所花费时间: 4.644 秒。
同样300只股票计算多因子指标公式所需花费时间: 0.127 秒。多因子指标公式速度提高了约36倍,同时还能对任意一个周期进行股票指标值排序。
更重要的是Alpha自编因子公式和多因子自编公式输出结果数据,可以直接用于深度学习等人工智能量化分析程序。实现人工智能投资分析和人工智能交易。
见前面博客。
https://blog.csdn.net/hepu8/article/details/113883459
5、软件除了普通公式选股外,还支持量化程序选股,回测,模拟,下单等操作。
6、增加(仿大智慧)股票池运算功能。
7、增加可视化策略开发工具等功能。
欢迎有兴趣的投资人一起做大做强本软件
小白量化平台设计主要人:何战军 电话微信:18578755056 QQ:2775205
请持续关注我的博客,我的进步,就是你的进步!