15天搭建ETF量化交易系统Day7—全自动化交易系统


ff03c4a9eed67db5f6d041a32c1fd4ce.png

搭建过程

b338fec534470b1fd59bdcdde2f21179.png

每个交易者都应该形成一套自己的交易系统。

很多交易者也清楚知道,搭建自己交易系统的重要性。现实中,从0到1往往是最难跨越的一步。
授人鱼不如授人以渔,为了帮助大家跨出搭建量化系统的第一步,我们决定推出这个主题系列。
这个系列中,我们用Python从0开始一步步搭建出一套ETF量化交易系统(选择ETF标的是因为对于普通交易者来说,ETF相对于选强势股难度要小,而且没有退市风险)。大家可以跟随着我们的实现路径来一起学习,从过程中掌握方法。
掌握了方法之后,你可以换成期货系统、比特币系统、美股系统,然后在实战中不断去完善自己的系统了。
搭建一套ETF量化交易系统涉及多个模块和组件的协同工作,包括数据源模块、量化策略模块、可视化模块、数据库模块、回测评估模块、自动交易模块等等。
DAY1链接如下:15天搭建ETF量化交易系统Day1—数据源模块
DAY2链接如下:15天搭建ETF量化交易系统Day2—图形显示模块
DAY3链接如下:15天搭建ETF量化交易系统Day3—上手经典回测框架
DAY4链接如下:15天搭建ETF量化交易系统Day4—玩转海龟交易策略
DAY5链接如下:15天搭建ETF量化交易系统Day5—打造实盘量化机器人
DAY6链接如下:15天搭建ETF量化交易系统Day6—打通同花顺自动交易
DAY7结合前面几天的成果,我们开启完全自动化的一天,让“量化机器人”实时监测ETF品种,当达到条件后自动下单交易。

c5d9edc2efced618ac1808a8dcd42673.png

交易逻辑

db731500c9e712e098b3d0b26f00f769.png

在交易时间段,远程服务器自动运行“量化机器人”。‍‍‍‍

“量化机器人”监测的ETF品种如下:

"上证50ETF": "510050", "深成ETF": "159903", "沪深300ETF": "159919", "中小100ETF": "159902",  
"国企共赢ETF": "159719", "央企能源ETF": "562850", "央企ETF": "510060",  
"中证1000ETF": "159845", "中证2000ETF": "159531", "创业板指": "159915",  "纳指科技ETF": "159509",  
"美国50ETF": "513850", "法国ETF":"513080", "亚太精选":"159687", "纳指生物ETF": "513290",
"日经225ETF": "513000", "德国ETF": "513030", "法国CAC40ETF": "513080", "黄金ETF": "518860"

“量化机器人”采用60分钟级别MACD金叉死叉策略为例。‍‍‍‍

# 计算MACD指标
fast_period = 12 # 快速移动平均线周期
slow_period = 26 # 慢速移动平均线周期
signal_period = 9 # 信号线周期c
dif, dea, hist = talib.MACD(df_index_data['close'], fastperiod=fast_period, slowperiod=slow_period, signalperiod=signal_period)
list_diff = np.sign(dif - dea)
signal_diff = np.sign(list_diff - list_diff.shift(1))

“量化机器人”监测到有ETF符合买入条件时,查询交易账户是否有足够的资金能买入。当账户余额充足时,则立即以当前价格买入。

if self.ths.check_stock_is_av_buy(code, df_index_data['close'][-1], 1000, 5000) == True:self.ths.make_buy(code, df_index_data['close'][-1], 1000)

“量化机器人”监测到有ETF符合卖出条件时,查询交易账户是否有仓位要卖出。当账户有持有的仓位时,则立即以当前价格卖出。

if self.ths.check_stock_is_av_sell(code, 100) == True:self.ths.make_sell(code, df_index_data['close'][-1], 2000)

同时,“量化机器人”也会发送消息到我手机上,及时通知我。

auto_send_email(sys_para_dict['mailbox']['to_address'],'主人!你实时监测的ETF有最新消息!',send_cont,sys_para_dict['mailbox']['password'],  'smtp.qq.com',  # smtp.163.comfrom_address=sys_para_dict['mailbox']['from_address']) #

ec5b4a0c29cddee2d1a29888962a7b31.png

效果展示

a35b1b300bb6e9fa2329cfe0567171bb.png

在今天实盘过程中,“量化机器人”下午2点15左右自动买入了1000股“深成ETF”:

45aacf8b8b41280a07a54e7962b54d28.png

e4c70272e21dd526081a5392ee347c68.jpeg

25f1cd5d404e2d5ff4d7ef8697612ba4.png

总结

7db5665aa9918cd8757d0a1cad184922.png

今天我们完成了闭环的全自动化的交易系统之后,接下去我们就可以来优化交易策略,打造一个可以赚钱的交易系统。

说明

此系列为连载专栏,完整代码会上传知识星球《玩转股票量化交易》!作为会员们的学习资料。

想要加入知识星球《玩转股票量化交易》的小伙伴记得先微信call我获取福利!

非星球会员需要的话,需要单独联系我购买!

知识星球介绍点击:知识星球《玩转股票量化交易》精华内容概览

24f8fdc1dc8f9e21c2bdff61241bd9fe.jpeg

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

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

相关文章

HEXO博客常用命令(自用)

1、配置类命令 预览命令 hexo s 上传本地仓库: hexo g提交: hexo d更换主题:在_config.yml文件中:注意属性后面要跟着 # Extensions ## Plugins: https://hexo.io/plugins/ ## Themes: https://hexo.io/themes/ theme: vola…

嵌入式Linux系统编程 — 2.3 标准I/O库:格式化I/O

目录 1 格式化I/O简介 2 格式化输出 2.1 格式化输出函数简介 2.2 格式控制字符串 format 2.3 示例程序 3 格式化输入 3.1 格式化输入简介 3.2 格式控制字符串 format 3.3 示例程序 1 格式化I/O简介 在先前示例代码中,经常使用库函数 printf() 来输出程序中…

HTML5常用标签表单from

form表单标签 <!-- form表单其实就是一种&#xff1a;客户端和服务端数据交流一种方式机制。1&#xff1a; 服务端&#xff0c;提供数据接受地址&#xff08;gin/beego/inris&#xff09;比如&#xff1a;http://localhost:8080/toLogin2: 因为浏览器&#xff0c;在提交数据…

知识的丰盈与人类的好奇心——在互联网与人工智能时代的思考

在这个信息爆炸的时代&#xff0c;互联网和人工智能的发展如同双翼&#xff0c;赋予了人类前所未有的知识获取能力。一个问题&#xff0c;通过简单的关键词输入&#xff0c;几乎可以立即得到海量答案。这不禁引发人们的思考&#xff1a;我们的问题是否会越来越少&#xff1f;答…

基于LangChain+LLM构建增强QA

前言 本文基于LangChain构建了针对自有领域数据的增强QA&#xff0c;支持以下数据源&#xff1a; 针对领域内需要精确回答的问题&#xff0c;从自有DB中查询&#xff1b;针对领域内其他自然语言QA&#xff0c;从自有知识的embedded向量数据库查询&#xff1b;针对领域内其他较…

硬件I2C读写MPU6050

硬件I2C读写MPU6050 SCL接PB10&#xff0c;SDA接PB11,但是硬件I2C引脚不可以任意指定。 查询引脚定义表&#xff0c;来规划引脚。但由于PB6,7,8,9被OLEDz占用&#xff0c;不方便接线了。 可以使用I2C2引脚&#xff0c;但必须是SCL对应PB10&#xff0c;SDA对应PB11&#xff0c;…

python类与面向对象编程

⚠️⚠️⚠️本章后半部分难度激增&#xff0c;请一定认真学习⚠️⚠️⚠️ ⚠️⚠️⚠️本章后半部分难度激增&#xff0c;请一定认真学习⚠️⚠️⚠️ ⚠️⚠️⚠️本章后半部分难度激增&#xff0c;请一定认真学习⚠️⚠️⚠️ 上篇回顾&#xff1a; 上篇我们帮天下第一…

冯喜运:6.7今日外汇黄金原油走势分析及日内操作策略

【黄金消息面分析】&#xff1a;美国初请失业金人数超预期&#xff0c;市场对美联储9月降息预期升温&#xff0c;全球降息潮起&#xff0c;黄金市场受支撑。北京时间本周四&#xff0c;美国劳工部公布的数据显示&#xff0c;截至6月1日当周初请失业金人数增加至22.9万人&#x…

docker bash: vi: command not found 修改文件无法使用 vi yum的方法

如题&#xff0c;被入坑很多次。也参考了很多的修复docker 中的vi yum等方法。最终都未解决。 因为要修改 已安装容器中的各类配置信息。无法使用vi yum很麻烦。除去使用docker 挂载文件方法外&#xff0c;还可以使用如下方法直接修改对应的配置文件信息。 如: 修改 logstas…

input 输入框只能输入数字的处理方式

1. 针对普通的 el-input <el-form-item prop"sortNo"><el-input v-model"form.sortNo" input"val > (form.sortNo handlerInput(val))"> </el-input> </el-form-item> handlerInput(val) {if (val) {if (/^0*$/.…

AWS对S3桶里的文件设置签名验证,过期时间等

AWS 可以对S3桶的文件设置访问权限&#xff0c;当设置不公开访问的时候&#xff0c;又要让用户可以查看&#xff0c;那么就需要用到设置临时访问权限了 亚马逊 CloudFront 网址进行签名 /*** CDN域名使用* 给某个文件设置临时过期时间的url* param $filePath* return mixed|st…

短剧系统投流版开发,为运营公司投流业务赋能

短剧系统投流版开发是一项复杂的任务&#xff0c;旨在为运营公司的投流业务提供强大的技术支持和赋能。以下是一些关键步骤和考虑因素&#xff0c;以确保短剧系统投流版的成功开发&#xff1a; 一、明确业务需求与目标 首先&#xff0c;需要深入了解运营公司的业务需求、目标…

Java基础语法---集合---ArrayList

ArrayList是什么 ArrayList可以看作是一个动态数组&#xff0c;提供了自动扩容的能力&#xff0c;意味着它能够根据需要自动调整其大小以容纳更多的元素&#xff0c;而无需预先指定数组的容量。 使用ArrayList需要加入包 import java.util.ArryList ArrayList与普通数组的不同…

Si3N4/SiC纳米复相陶瓷综合性能明显提升 下游可应用范围广泛

Si3N4/SiC纳米复相陶瓷综合性能明显提升 下游可应用范围广泛 Si3N4/SiC纳米复相陶瓷&#xff0c;是以碳化硅&#xff08;SiC&#xff09;纳米颗粒为第二相&#xff0c;弥散进入氮化硅&#xff08;Si3N4&#xff09;基体相制备得到的新型陶瓷材料&#xff0c;对碳化硅陶瓷具有强…

字符串的信号(SIGNAL)和槽(SLOT)的宏连接方式弊端

字符串的信号&#xff08;SIGNAL&#xff09;和槽&#xff08;SLOT&#xff09;的宏连接方式在 Qt 4 及早期版本中广泛使用&#xff0c;但这种方法确实存在一些缺点&#xff0c;主要包括以下几点&#xff1a; 类型安全性缺失&#xff1a;由于 SIGNAL 和 SLOT 宏接受的是字符串参…

JAVA Mongodb 深入学习(一)BulkOperations 批量操作

一、BulkOperations介绍 MongoDB 的 BulkOperations 允许在单个命令中执行多个写操作&#xff0c;这比逐一执行多个独立操作更高效。BulkOperations 可以用于插入、更新、删除和其他写操作。 优点&#xff1a; 1、批量操作&#xff0c;减少服务器的通信次数&#xff0c;提升性能…

Cannot add ‘xxxxxx‘to Logic Analyzer

问题描述&#xff1a;Keil 中&#xff0c;直接切换到仿真中并添加变量到逻辑分析仪&#xff0c;会报如题类型错误。 解决方法&#xff1a; 需要在先在执行main函数&#xff0c;生成变量内容&#xff0c;然后在添加到逻辑分析仪。具体方法是&#xff0c;在mian 中打断点——运…

Docker迁移默认存储目录(GPT-4o)

Docker在Ubuntu的默认存储目录是/var/lib/docker&#xff0c;要将 Docker 的默认存储目录迁移到指定目录&#xff08;譬如大存储磁盘&#xff09;&#xff0c;可以通过修改 Docker 守护进程的配置文件来实现。 1.创建新的存储目录&#xff1a; 选择你想要存储 Docker 分层存储…

华为OD刷题C卷 - 每日刷题 14(可以组成网络的服务器、用连续自然数之和来表达整数)

1、&#xff08;可以组成网络的服务器&#xff09;&#xff1a; 这段代码是解决“可以组成网络的服务器”的问题。它提供了一个Java类Main&#xff0c;其中包含main方法和getResult方法&#xff0c;以及一个辅助方法bfs&#xff0c;用于统计机房中最大的局域网包含的服务器个数…

ethercat igh可能出现的两个bug

1. 插入网线直接就进入op状态&#xff0c;这可能是因为 从站支持eoe协议 igh对eoe协议支持的从站默认使其直接进入op状态&#xff0c;可以修改igh源码编译选项&#xff0c;不启动eoe协议 可以参考&#xff1a; igh编译选项 igh一些EoE协议说明 Automatic Configuration&#…