小白量化《穿云箭集群量化》(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)相关推荐

  1. 小白量化《穿云箭集群量化》(4)指标公式写策略

    小白量化<穿云箭集群量化>(4)指标公式写策略 穿云箭量化平台支持中文Python写量化策略,同时也直接支持股票公式指标写策略.下面我们看看是如何实现的. 股票软件的指标公式语法是一样的, ...

  2. java集群_「Java知识」MyCat的图文视频讲解,MyCat分片集群分表分库策略

    在一个项目当中,项目经理要求把原先的MySQL数据连接基于mycat来进行改造 .当时就在想MyCat是什么东西?为什么要用它呢? 蚂蚁课堂带你学Java 一.什么是MyCat: MyCat是一个开源 ...

  3. Hadoop集群——(二)作业编写、打包、启动、查看

    Hadoop集群--(二)作业编写.打包.运行.查看 Hadoop集群搭建好后,就可以将MapReduce作业提交到集群上运行了.下面以我自己编写的一个WordCount单词计数的程序为例,介绍一下如 ...

  4. 小白学习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 ...

  5. 适合小白的 Hadoop 集群配置搭建,非常详细

    准备工作: 1.VMware Workstation 14 中安装虚拟机 ,版本为 CentOS7(我搭建的集群为三台,安装一台克隆两台,这里不做解释,可自行百度) 2.JDK1.8 ,下载地址为 h ...

  6. 连接oracle配置文件参数,Hibernate3 +Oracle10g 集群,hibernate配置文件中如何编写连接参数...

    遇见问题: 使用hibernate3来连接Oracle10g的集群,连接时不稳定,有时候正常连接,有时候不能正常连接.不知道是不是配置文件有问题,请大家帮我查看一下,谢谢各位了! 开发工具:Eclip ...

  7. Redis基本数据类型、持久化机制、集群模式、淘汰策略、缓存穿透、击穿、雪崩、常见面试题大集合!

    redis redis reids的常用数据类型 1.String 2.Hash 3.List 5.Sorted Set(ZSet) 6.其他 发布(pub)订阅模式(sub)模式 作用 Redis的 ...

  8. Elasticsearch集群类型和选举策略

    集群类型 空集群     空集群是集群的节点只含有一个节点数的集群部署策略,当集群的节点只含有一个,该节点默认为主节点,所有的索引分片都是会部署到该节点上,如果索引的分片策略设置副本数时,此时的集群节 ...

  9. 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 ...

  10. 智能集群理论优化控制_无人机集群对抗研究的关键问题

    1)无人机集群协同对抗演化过程机理及其表述.由于集群对抗中信息的多元化和不完全.不确定性,对抗系统是一个复杂的动态随机过程,空战对抗态势随着时空不断演化,每个无人机作为一个智能体必须依据不断变化的态势 ...

最新文章

  1. Unity热门插件推荐
  2. java结丹期(16)----javaweb(maven(2))
  3. 去螨虫能不能用去螨皂?
  4. Java编码手册之华山版小精华
  5. 懒人修仙传ce修改方法_专访|《凡人修仙传》原著作者忘语:“韩老魔”原型是我...
  6. 苹果mac图像后期处理软件:Lightroom Classic
  7. 每天进步一点点——Linux系统中的异常堆栈跟踪简单实现
  8. cowpatty无线破解之——WPA-PSK字典攻击
  9. 微信公众号图文消息悄悄调整,注定10月12号是个不眠夜
  10. linux学习系列-一些知识
  11. 交互式电子白板的八种常用功能
  12. ”微服务一条龙“最佳指南-工具篇:初步使用Pipenv
  13. root用户修改root密码提示The password fails the dictionary check
  14. MATLAB绘制区域图形
  15. php-fpm的几种重启方式
  16. 学会区分 RNN 的 output 和 state
  17. 《CLR via C#:框架设计》读书笔记 - 委托
  18. WPF中ListBox怎么双击只是双击里面的项而已,而不把其他空白的区域也双击!
  19. 来点色看看~SecureCRT-8.5配色方案设置
  20. 【使用华为云MindSpore框架实现线性函数拟合___实验报告(一)】

热门文章

  1. cad高程点怎么抽稀_地形图缩编1:500变成2000,植被符号抽稀功能,
  2. 白话区块链 之3: 区块链技术栈
  3. ubuntu 文件名乱码
  4. ms10_002(极光漏洞)渗透步骤——MSF搭建钓鱼网站
  5. Making a Kali Bootable USB Drive
  6. java从本地下载pdf文件_java下载PDF文件
  7. ❤️【图文并茂】Chrome浏览器(油猴子)插件安装使用教程❤️
  8. 佳博GP2120TU标签打印机 安装和使用教程(PC)
  9. linux系统源码文档,Linux操作系统源代码详细分析
  10. MATLAB 常用语法、函数