自己做量化交易软件(43)小白量化实战16--利用小白量化金融模块在恒生PTrade交易系统(交易端)上仿大智慧指标回测及实战交易设计

自己做量化交易软件(43)小白量化实战16–利用小白量化金融模块在恒生PTrade交易系统(交易端)上仿大智慧指标回测及实战交易设计

量化产品PTrade(Personalise Trade)交易系统采用事件驱动式回测平台,与聚宽量化平台类似的量化框架,内置Ta-lib金融模块,除了Ta-lib提供的金融指标外,用户无法直接使用仿大智慧自编公式,需要采用类似C++的算法来实现指标策略。
众所周知,Python如何使用C++的程序算法流程,包含大量嵌套循环,效率极其低下。以此方法实现的自编策略,回测1个月,可能需要数小时才能完成。因此在做设计策略时,尽量依赖C++的Python模块开发的numpy和pandas库实现,同样的回测工作,数十秒完成。
小白量化金融模块仿大智慧指标系统,主要依赖numpy库和pandas库,因此计算速度很快。此外后期版本将一些numpy库和pandas库没有的大智慧和通达信函数都转化为C++的Python模块,提高仿大智慧和仿通达信自编指标回测速度,也可以实现因子矩阵自编公式运算。目前是个别函数以Python代码实现的,使用这些函数调用,将降低回测速度,例如SMA(),WMA(),ZIG()等函数,这些是用纯Python代码实现的,因使用了嵌套循环计算,所以速度比较慢。后期计划都转化为C++的Python模块,达到与numpy库和pandas库一样的计算速度。
其他不多说了,下面直接给出PTrade(Personalise Trade)交易系统上自编公式MACD交易策略的实现代码,读者可以仿造此程序,替换为自己的自编指标公式,在PTrade上实现仿大智慧和仿通达信自编指标回测和实战交易。

import pandas as pd  
import numpy  as npglobal CLOSE,LOW,HIGH,OPEN,VOL
global C,L,H,O,V
##从小白量化公式函数库中复制.
## 函数来源 HP_formula
def ABS(Series):  #绝对值 return abs(Series)def SUM(Series, N):if N<=0:N=len(Series)sum_=pd.Series.rolling(Series, N).sum()return pd.Series(sum_,name='sums')def EMA(Series, N):return pd.Series.ewm(Series, span=N, min_periods=N - 1, adjust=True).mean()def HHV(Series, N):if N==0:return Series.cummax()else:return pd.Series(Series).rolling(N).max()def LLV(Series, N):if N==0:return Series.cummin()else:return pd.Series(Series).rolling(N).min()def CROSS(A, B):A2=np.array(A)var = np.where(A2<B, 1, 0)return (pd.Series(var, index=A.index).diff()<0).apply(int)def IF(COND, V1, V2):var = np.where(COND, V1, V2)return pd.Series(var)def REF(Series, N,sign=0):#sign=1表示保留数据,并延长序列if sign==1:for i in range(N):Series=Series.append(pd.Series([0],index=[len(Series)+1]))return Series.shift(N)#来源于网上自编指标公式,或股票软件中公式源代码
#MACD 指数平滑移动平均线
def MACD(SHORT=12, LONG=26, M=9):"""MACD 指数平滑移动平均线"""DIFF = EMA(CLOSE, SHORT) - EMA(CLOSE, LONG)DEA = EMA(DIFF, M)MACD = (DIFF - DEA) * 2return DIFF,DEA,MACD#Ptrade交易策略编写
def initialize(context):# 初始化此策略# 设置我们要操作的股票池, 这里我们只操作一支股票g.security = '600519.SS'set_universe(g.security)#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def handle_data(context, data):global CLOSE,LOW,HIGH,OPEN,VOLsecurity = g.security# 得到十日前的历史价格mydf= get_price(g.security, count=300, frequency='1d',fields=['open','close','low','high','volume'])#小白量化数据规格化mydf['date']=mydf.indexmydf=mydf.reset_index(level=None, drop=True ,col_level=0, col_fill='')  CLOSE=mydf['close']LOW=mydf['low']HIGH=mydf['high']OPEN=mydf['open']VOL=mydf['volume']#计算MACD指标diff,dea,macd=MACD()mydf['diff']=diffmydf['dea']=deamydf['macd']=macd#交易策略,仅供演示#买点:MACD指标diff上穿dea数值,并且diff小于0mydf['B']=CROSS(mydf['diff'],mydf['dea'])*IF(mydf['diff']<0,1,0)#卖点:MACD指标diff下穿dea数值mydf['S']=CROSS(mydf['dea'],mydf['diff'])# 取得昨天收盘价price = data[security]['close']# 得到当前资金余额cash = context.portfolio.cash# 如果出现买点if mydf['B'].iloc[-1] > 0:# 用所有 cash 买入股票order_value(security, cash)# 记录这次买入log.info("Buying %s" % (security))# 如果出现卖点elif mydf['S'].iloc[-1]>0 and get_position(security).amount > 0:# 全部卖出order_target(security, 0)# 记录这次卖出log.info("Selling %s" % (security))

程序回测结果如下图.
在这里插入图片描述
在PTrade交易软件上回测,如果没问题,能够赢利,可以直接启动策略交易进行交易实战。

请持续关注我的博客,我的进步,就是你的进步!

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

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

相关文章

量化投资 | 量化交易平台工具汇总

量化投资必备手册&#xff0c;分享30个量化交易平台给你们&#xff0c;转需&#xff0c;不用谢&#xff01; 1. 掘金量化 量化交易系统官方网址&#xff1a;https://www.myquant.cn/ 2、国泰君安量化交易系统 量化交易系统网址&#xff1a;https://quant.gtja.com/ 3. 量化云…

初学Linux—解决开机卡在用户登录界面的问题

1.Linux关机之后开机界面卡在登录界面没有反应&#xff1b; 可能是我删除了某个文件… 2.解决办法&#xff1a; ctrlaltF2 ;切换终端 su root ;切换到超级用户 然后会弹出输入密码提示&#xff0c;直接输入超级用户的密码&#xff08;注意&#xff1a;linux中密码不会回显&am…

centos6.8开机一直卡在登录界面,无法登录

** **后面发现&#xff0c;问题出在&#xff0c;前几天配置的 java的jdk&#xff0c;还有mysql的环境变量上。 ** 解决问题的方法 使用CtrlAIt F3&#xff0c;竟然命令控制面板&#xff08;但是&#xff0c;进去后&#xff0c;你使用指令&#xff0c;比如&#xff0c;vi,ls -…

Ubuntu开机后卡在登陆界面进去不

系统&#xff1a;Ubuntu18.03 系统跑代码卡死了&#xff0c;导致鼠标键盘都用不了&#xff0c;直接强制关机后&#xff0c;卡在登陆界面进不去 步骤&#xff1a; 1. 系统启动后&#xff0c;在BIOS引导界面按"ESC"键进入选择菜单&#xff0c;选择第一个"*Ubun…

记一次绕过安全狗与360艰难提权

0x01 前言背景 端午短暂休息三天&#xff0c;复工之后朋友又丢给我一个Webshell&#xff0c;在打台球途中了解了一下这个奇怪的shell&#xff0c;说是无法执行命令&#xff0c;经过测试发现只能执行dir命令&#xff0c;确实奇怪&#xff0c;草草打了几局台球就回去拿起电脑开日…

为什么我骂360弱智 周鸿祎却说“谢谢”

好吧&#xff0c;我承认我标题党了&#xff01; 不过&#xff0c;有图有真相&#xff01; 事情的起因是我在360开发者平台&#xff0c;提交了我们的客户端“缘创派”&#xff0c;这是一个给互联网创业者找创业合伙人的应用。之前上传的是1.0版本&#xff0c;最近更新了功能更为…

曾遭周鸿祎全网封杀的 360 猛将 :草根打工到 36 岁身家上亿的逆袭!

作者 | 云游小生 来源 | 纯洁的微笑&#xff08;ID:keeppuresmile&#xff09; 猎豹六周年&#xff0c;傅盛在内部演讲&#xff1a; “有部电视剧叫《奋斗》&#xff0c;名字很好&#xff0c;帅哥靓女&#xff0c;青春励志。 但看了开头&#xff0c;我就看不下去了。作为一个奋…

360 软件误报 与流氓战斗到底

写了个音乐贺卡软件&#xff0c;却被360报病毒 估计是设计到了一个音乐贺卡打包功能 这是非常令人气愤的 辛苦的工作&#xff0c;创意的想法&#xff0c;终于实现&#xff0c;最后却被这些杀毒的流氓误报&#xff0c;害的别人不能使用。 于是在360官方提交了误报检测 检测…

谁敢说360不行? 那是你不会用!教你制服360

360的强大与流氓想必是萦绕在大家耳边最耳熟能详的两个词了。 没错&#xff0c;360是很强大却也很流氓&#xff0c;但是稍微动动手就能还你的电脑一片清净 此次测试最新版360安全中心13.0&#xff0c;亲测&#xff0c;以身犯险 针对小白&#xff0c;大佬勿扰 一、安装过程 二、…

千万不要使用360安全管家

我以前使用过360&#xff0c;360广告超级多&#xff0c;360搜索引擎也答非所问&#xff0c;edge主页也经常被修改&#xff0c;如果安装了&#xff0c;可以这样做。 方法1&#xff08;亲测&#xff09;---------------------------------------- 1.使用360卸载360&#xff0c;…

曾遭周鸿祎全网封杀的360猛将 :草根打工到36岁身家上亿的逆袭!

这是微笑哥再次给大家带来的人物分享。 全文7000字&#xff0c;阅读请谨慎。 作者 | 云游小生 来源 | 纯洁的微笑 转载授权&#xff08;ID:keeppuresmile&#xff09; 00 猎豹六周年&#xff0c;傅盛在内部演讲&#xff1a; “有部电视剧叫《奋斗》&#xff0c;名字很好&#x…

【OpenGL学习一】用OpenGL绘制图形,制作动画

1.OpenGL基本框架 1.1OpenGL简介 OpenGL(Open Graphics Library&#xff0c;开放图形库)&#xff0c;是三维计算机图形和模型库。作为一个性能优越的图形应用程序设计界面&#xff08;API&#xff09;&#xff0c;它独立于硬件和窗口系统。并在军事、广播电视、CAD/CAM/CAE、…

工业动画制作过程介绍(一)——静态简笔图画的制作

在工业控制系统中&#xff0c;为了使控制界面更加人性化&#xff0c;需要制作各种简单的动画 来显示机器的运行状态&#xff0c;那么对于非工业设计等设计类的专业者来说&#xff0c;制作这些动画并非易事&#xff0c;而网上又没有可用的资源。那么怎么办呢&#xff0c;非专业人…

使用Qt动画框架设计角色的二维动画

使用Qt动画框架设计角色的二维动画 Qt的动画框架是Qt4.6新添加的一个重要的特性&#xff0c;有了它&#xff0c;开发人员可以制作激动人心的动画界面&#xff0c;而不必局限于单调的固定窗口了&#xff0c;可以说&#xff0c;Qt动画框架是其它界面库少见的功能&#xff0c;它带…

Unity 3d人形动画 一边走一边吹泡泡

资源下载并导入&#xff1a; Robot Kyle 导入标准资源库并修改资源库过时的错误 >>点击此处查看教程 这样就解决了 我们都知道&#xff0c;标准资源包里的人物&#xff0c;是自带脚本的。 而这些脚本&#xff0c;也可以应用到这个没有脚本的机器人上面&#xff0c;只需要…

unity人物基础动画应用。行走、待机之类的简单动画切换。

[TOC]unity人物基础动画应用 1.将动画或带有动画的&#xff0c;模型导入到unity 直接将项目拖入资源层级就好。这里推荐一个网站&#xff0c;可以给导入网站的模型自动绑骨&#xff0c;并且可挑选动画下载。网站自身也带有很多模型可以直接下载。免费又好用&#xff0c;就是可…

Unity中制作动画

1.创建一个 Cube 模型 2. 点击 Window->Animation->Animation 按钮&#xff0c;打开动画编辑面板(快捷键Ctrl6) 3. 点击 Create 按钮&#xff0c;保存新建的动画文件&#xff0c;我命名为“Cube.anim”创建好界面如下 4.点击 Add Preoperty&#xff0c;选择合适的想要改变…

unity人物素材制作动作,导入unity行走、跑步动画,并用Animator Controller加脚本进行控制

初学Unity的关于制作人物动作、导入unity动画、控制人物移动的简单小结 因为网上的关于人物动画制作、导入、控制运动的文章都不太全面&#xff0c;所以自己制作了一个小结来总结一下&#xff0c;这是我当前做出来的效果图&#xff0c;穿墙效果还未改&#xff0c;这里可以通过…

Unity制作的照片墙效果

使用Unity3D制作的照片墙效果。支持发布PC、Android、Web等多平台使用。 效果上图 点选其中一张图时 参数调节 工程地址&#xff1a;https://download.csdn.net/download/Highning0007/87337607