小白量化《穿云箭集群量化》(3)量化策略编写(2)
小白量化《穿云箭集群量化》(3)量化策略编写(2)
在通用量化策略编写中,initialize(context) ,策略运行初始化函数,必选。
handle_data(context, data)或market_openhandle_data(context),盘中运行,必选其一。其他函数根据用户需要来编写。
上篇简单介绍了initialize,这篇介绍handle_data函数。
handle_data(context, data)
该函数每个单位时间会调用一次, 如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次。
参数 context: Context对象, 存放有当前的账户/标的持仓信息 data: 一个字典(dict), key是股票代码, value是当时的SecurityUnitData 对象. 存放前一个单位时间(按天回测, 是前一天, 按分钟回测, 则是前一分钟) 的数据。
为了加速, data 里面的数据是按需获取的, 每次 handle_data 被调用时, data 是空的 dict, 当你使用data[security]时该 security 的数据才会被获取。
data 只在这一个时间点有效, 请不要存起来到下一个 handle_data 再用。
返回:None
我先实现一个止损程序,
# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次
def handle_data(context, data):# 循环每只股票zs=-0.05 #止损幅度hd=0.012 #滑点比例 ti=gs.MACHINETIME() ##获取电脑时间qhcsj2=time.strftime('%Y%m%d_%H`%M`%S',time.localtime(time.time()))hpq.log.info('当前时间:'+qhcsj2) # 循环每只股票##优先止损if len(context.ccs)>0:for m,security in context.ccs: #持仓try:price = float(context.portfolio.positions[security].price) #当前价格acc_avg_cost = float(context.portfolio.positions[security].acc_avg_cost) #平均成本amos=int(context.portfolio.positions[security].closeable_amount) #可卖数量amos2=int(context.portfolio.positions[security].total_amount) #总数量name=context.portfolio.positions[security].name #股票名称pl=float(context.portfolio.positions[security].ykbl) #获利率print(context.current_dt+' 代码: %s,获利率%2f,现价:%.2f,成本价:%.2f,可卖数量%d,持仓:%d'%(security,pl,price,acc_avg_cost,amos,amos2))if amos>0 and pl<g.zzs:p5=round(price*(1-hd),2) #计算委托价格x=order_target(security,0,p=p5) #执行下单操作hpq.log.info(context.current_dt+" 止损卖出: %s ,数量:%d,卖出价格:%.2f,成交资金:%0.2f"%(security,amos,p5,amos*p5))context.portfolio.positions[security].sellprice=p5 #记录卖出价格except:continue
前面给大家介绍的基本的策略构成。
下面介绍一下《穿云箭集群量化》软件的构成。
穿云箭集群量化是在小白量化二代基础上开发的,内置小白量化一代和小白量化二代的主要模块。这些模块在前期博客都有介绍。
一、系统说明
HP是荷蒲的拼音缩写。作者是指标公式编写高手,原网名独狼荷蒲。用C++开发了很多分析家,飞狐交易师和大智慧股票公式。后来改用Python设计股票分析工具,一般一类功能都放在一个以HP_开头的py文件中,这个文件也称为模块。可以用import导入,给大家使用这些功能。
大多数模块可以单独使用,你可以用于增强其他量化回测平台。
1、主要模块
下面介绍主要模块的功能。
HP_data 小白量化1数据模块,需要使用xbdata股票数据。
HP_lib 小白量化1指标公式库,基本不用了。采用C++算法编写的函数,运行效率低。
HP_global 小白量化2全局变量定义模块
HP_set 小白量化2全局变量赋值模块,一般只在主程序运行一次。
HP_tdx 小白量化2封装的pytdx模块,简化的行情获取方式。
HP_tk 小白量化2封装的tkinter高级模块。
HP_sys 小白量化2简单回测模块。
HP_draw 小白量化2绘制K线及指标图形模块。
HP_plt 小白量化2绘制K线模块。
HP_formula 小白量化仿通达信指标函数模块。
HP_factor 小白量化多因子指标函数模块。
HP_quant 小白量化事件回测模块,兼容流行量化软件策略模式。
HP_mt5 小白量化的MetaTrader5分析交易模块。
HP_cp 小白量化的彩票分析模块。
2、主要子目录说明
ico,ico2主要放图标
img放图片
data放系统数据
temp临时数据或文件
log 日志目录
user 用户帐户信息
trade 交易文件交换目录
3、自己搭建python欢迎所需模块
(1)解包量化软件压缩文件。
(2)运行量化目录中pip_all.bat文件,安装所需模块。
或运行量化目录中pip_all2.bat文件,安装所需模块。
4、执行量化框架
执行量化目录中的“main.exe”程序。
或者这个文件发送到桌面快捷方式。
(4)配置文件在 cyj.txt文件中。
最后说明《中文Python穿云箭集群量化》是在小白量化二代平台上定制的量化平台,《穿云箭集群量化》提供的依赖的小白量化模块都是打包后的程序,用户无法看到源代码。如果用户想看小白量化一代和小白量化二代源代码,可以购买作者编写的正版书《零基础搭建量化投资系统――以Python为工具》,正版书读者加入读者群下载小白量化源代码。
本篇介绍到这里,后面将逐步展开,深度介绍。
超越自己是我的每一步!我的进步就是你的进步!
小白量化《穿云箭集群量化》(3)量化策略编写(2)相关推荐
- 小白量化《穿云箭集群量化》(4)指标公式写策略
小白量化<穿云箭集群量化>(4)指标公式写策略 穿云箭量化平台支持中文Python写量化策略,同时也直接支持股票公式指标写策略.下面我们看看是如何实现的. 股票软件的指标公式语法是一样的, ...
- java集群_「Java知识」MyCat的图文视频讲解,MyCat分片集群分表分库策略
在一个项目当中,项目经理要求把原先的MySQL数据连接基于mycat来进行改造 .当时就在想MyCat是什么东西?为什么要用它呢? 蚂蚁课堂带你学Java 一.什么是MyCat: MyCat是一个开源 ...
- Hadoop集群——(二)作业编写、打包、启动、查看
Hadoop集群--(二)作业编写.打包.运行.查看 Hadoop集群搭建好后,就可以将MapReduce作业提交到集群上运行了.下面以我自己编写的一个WordCount单词计数的程序为例,介绍一下如 ...
- 小白学习Spark03-在集群上运行Spark
03 在集群上运行Spark 3.1 Spark运行架构 3.1.1 驱动器节点 3.1.2 执行器节点 3.1.3 集群管理器 3.1.4 启动Spark程序 3.1.5 小结 3.2 使用spar ...
- 适合小白的 Hadoop 集群配置搭建,非常详细
准备工作: 1.VMware Workstation 14 中安装虚拟机 ,版本为 CentOS7(我搭建的集群为三台,安装一台克隆两台,这里不做解释,可自行百度) 2.JDK1.8 ,下载地址为 h ...
- 连接oracle配置文件参数,Hibernate3 +Oracle10g 集群,hibernate配置文件中如何编写连接参数...
遇见问题: 使用hibernate3来连接Oracle10g的集群,连接时不稳定,有时候正常连接,有时候不能正常连接.不知道是不是配置文件有问题,请大家帮我查看一下,谢谢各位了! 开发工具:Eclip ...
- Redis基本数据类型、持久化机制、集群模式、淘汰策略、缓存穿透、击穿、雪崩、常见面试题大集合!
redis redis reids的常用数据类型 1.String 2.Hash 3.List 5.Sorted Set(ZSet) 6.其他 发布(pub)订阅模式(sub)模式 作用 Redis的 ...
- Elasticsearch集群类型和选举策略
集群类型 空集群 空集群是集群的节点只含有一个节点数的集群部署策略,当集群的节点只含有一个,该节点默认为主节点,所有的索引分片都是会部署到该节点上,如果索引的分片策略设置副本数时,此时的集群节 ...
- K8s基础12——etcd数据备份与恢复、集群版本升级、网络策略
文章目录 一.etcd备份与恢复 1.1 kubeadm部署方式 1.1.1 备份 1.1.2 恢复 1.2 单etcd二进制部署方式 1.2.1 部署 1.2.2 备份 1.2.3 恢复 1.2.4 ...
- 智能集群理论优化控制_无人机集群对抗研究的关键问题
1)无人机集群协同对抗演化过程机理及其表述.由于集群对抗中信息的多元化和不完全.不确定性,对抗系统是一个复杂的动态随机过程,空战对抗态势随着时空不断演化,每个无人机作为一个智能体必须依据不断变化的态势 ...
最新文章
- Unity热门插件推荐
- java结丹期(16)----javaweb(maven(2))
- 去螨虫能不能用去螨皂?
- Java编码手册之华山版小精华
- 懒人修仙传ce修改方法_专访|《凡人修仙传》原著作者忘语:“韩老魔”原型是我...
- 苹果mac图像后期处理软件:Lightroom Classic
- 每天进步一点点——Linux系统中的异常堆栈跟踪简单实现
- cowpatty无线破解之——WPA-PSK字典攻击
- 微信公众号图文消息悄悄调整,注定10月12号是个不眠夜
- linux学习系列-一些知识
- 交互式电子白板的八种常用功能
- ”微服务一条龙“最佳指南-工具篇:初步使用Pipenv
- root用户修改root密码提示The password fails the dictionary check
- MATLAB绘制区域图形
- php-fpm的几种重启方式
- 学会区分 RNN 的 output 和 state
- 《CLR via C#:框架设计》读书笔记 - 委托
- WPF中ListBox怎么双击只是双击里面的项而已,而不把其他空白的区域也双击!
- 来点色看看~SecureCRT-8.5配色方案设置
- 【使用华为云MindSpore框架实现线性函数拟合___实验报告(一)】