一个实用的股票模拟交易框架【附Python完整源码】

引言

本文由知识星球会员“高歌的小溪”撰写,旨在分享一个全面的股票模拟交易框架。该框架涵盖了交易、量化选股、提醒和数据存储四个模块,对于想开发个人量化投资框架的读者来说很有借鉴意义。对于个人投资者,由于不能总是实时监控市场,容易错过一些关键的交易时刻,导致交易失败。本框架的设计初衷,正是为了解决这一痛点,通过自动化工具弥补人工监控的不足。使用qstock模块获取实时股票数据,结合市场动态和量化选股策略,允许交易者以开盘价买入并持有股票,直至满足清仓条件,确保能够捕捉到利润最大化的机会。此外,该框架还能够定时监测持股形态和趋势,并通过微信、钉钉、邮件等通信工具及时提醒用户,从而使得及时买卖成为可能。无论是新手投资者还是经验丰富的量化交易者,本框架都提供了宝贵的参考价值,让读者能够从中学习并应用到自己的交易实践中去。在公众号后台回复“20231109”可获取该股票模拟交易框架的完整源码

股票模拟交易各模块简介

01

交易模块

交易模块包括买入、卖出操作和卖出策略,以MACD死叉+回撤比例作为卖出策略,可自行扩展卖出策略。

5de14a5ab2e691a66e2fda9935483123.png

详细代码见strategy_macd.py

02

量化选股

量化选股是一个可扩展的模块,个人根据自己经验、喜好等自定义自己的选股模块。

框架中以动量+MACD金叉选股作为买入策略。

728d7b6578363c43031a4d85bf8fcc1b.png详细代码见strategy_macd.py

03

提醒模块

提醒模块通过钉钉群或电子邮件进行提醒。

 322861daa5d420a87062f8a40ba4b4cf.png

0c1592299b5e76ea66312de2beaa93ca.png

详细代码见dingtalk.py、email.py、wechart.py

04

数据存储

为简化操作,资产信息和持仓信息以json文件格式保存,交易信息以csv文件格式保存。

资产信息记录当前可用资金、总市值、总资产(可用资金+总市值)、收益率等情况。

持仓信息记录目前持有的股票信息,包括股票代码、持有数量、建仓时间、成本价。

交易信息记录每次买入/卖出的情况。

0b34a71d7ed95073a7303fd38deaa976.png

详细代码见data.py

运行模拟交易框架

盘前:python strategy_macd.py prepare

开盘:python strategy_macd.py open

盘中:python strategy_macd.py check

盘后:python strategy_macd.py close

结合操作系统定时任务,完成定时执行策略。Linux定时任务参考如下:

d4e28f6bcc7f3700b5163b2c58d95f8a.png

05

已知缺陷

1、股票交易未考虑交易成本(手续费、印花税、佣金等),以开仓时的股票价格作为成本价。

2、股票建仓价格以当日开盘价作为买入价,未考虑涨停板、跌停板以及开盘快速拉升/下跌等买不到、卖不出的情况,故计算的股票收益会有偏差。

结语

模拟交易框架旨在提供一种监测持仓,及时止损的思路。至于量化选股则是仁者见仁,智者见智,每个人都有自己的选股策略和方法,所谓千人千法,很难有所共识。止损策略也是如此,每个人的对回撤的容忍度不同,对风险的承受能力也不同,就会产生不同的止损策略。模拟交易框架可用于持仓监测,也可用于策略经回测后实盘上线前验证,避免因实盘跟回测不一致导致亏损。特别需要注意的是第七部分的已知缺陷,模拟交易框架计算的收益跟实盘存在一定的偏差。

参考资料:

01

1、qstock手册

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzUyMDk1MDY2MQ==&action=getalbum&album_id=2619224775005257729&uin=&key=&devicetype=Windows+7+x64&version=6309071d&lang=zh_CN&ascene=7&session_us=gh_08bfa5e271b5

02

2、钉钉推送消息参考文档:

https://open.dingtalk.com/document/orgapp/custom-bot-to-send-group-chat-messages#

03

https://zhuanlan.zhihu.com/p/378791398

3、企业微信推送消息参考文档:

https://blog.csdn.net/jacke121/article/details/133624941

35f2c42ada79799e70da139e804f12b7.png

关于Python金融量化

3e5f32010e1d56286e7826b41282307a.png

专注于分享Python在金融量化领域的应用。加入知识星球,可以免费获取qstock源代码、30多g的量化投资视频资料、量化金融相关PDF资料、公众号文章Python完整源码、与博主直接交流、答疑解惑等。添加个人微信sky2blue2可获取八五折优惠。

ca937af385f368140f5a62ce34dfd728.jpeg

# 简介 qstock由“Python金融量化”公众号开发,试图打造成个人量化投研分析开源库,目前包括数据获取(data)、可视化(plot)、选股(stock)和量化回测(backtest)四个模块。其中数据模块(data)数据来源于东方财富网、同花顺、新浪财经等网上公开数据。qstock致力于为用户提供更加简洁和规整化的金融市场数据接口,其中可视化模块为用户提供基于web的交互图形简单操作接口;选股模块提供了同花顺的技术选股和公众号策略选股,包括RPS、MM趋势、财务指标、资金流模型等,回测模块为大家提供向量化(基于pandas)和基于事件驱动的基本框架和模型。 读者直接在cmd或anaconda prompt上输入“pip install qstock ”进行安装,或输入“pip install -upgrade qstock”进行更新。 qstock是免费开源金融量化库,已在pypi官网和GitHub上发布,更新至1.3.5版本,添加了问财的数据访问功能,通过qstock.wencai('选股条件')调用。使用“pip install qstock ”进行安装,通过’pip install –upgrade qstock’进行更新。目前部分策略选股和策略回测功能仅供知识星球会员使用,会员可在知识星球置顶帖子上获取 qstock 的离线安装包。 关于 qstock 更详细的使用方法,请参考微信公众号Python金融量化 qstock 专题系列文章: 【qstock开源了】数据篇之行情交易数据 【qstock数据篇】行业概念板块与资金流 【qstock量化】数据篇之股票基本面数据 【qstock量化】数据篇之宏观指标和财经新闻文本 【qstock量化】动态交互数据可视化 【qstock量化】技术形态与概念热点选股池 【手把手教你】使用qstock实现量化策略选股 【手把手教你】使用qstock进行量化回测 基于qstock的量化复盘与自动盯盘 下面为大家介绍qstock各模块的具体调用方式和应用举例。 ```python #导入qstock模块 import qstock as qs ``` # 数据模块 # 行情交易数据接口 ## 实时行情数据 获取指定市场所有标的或单个或多个证券最新行情指标 realtime_data(market='沪深A', code=None): - market表示行情名称或列表,默认'沪深A股', '沪深京A':沪深京A股市场行情; '沪深A':沪深A股市场行情;'沪A':沪市A股市场行情 '深A':深市A股市场行情;北A :北证A股市场行情;'可转债':沪深可转债市场行情; '期货':期货市场行情;'创业板':创业板市场行情;'美股':美股市场行情; '港股':港股市场行情;'中概股':中国概念股市场行情;'新股':沪深新股市场行情; '科创板':科创板市场行情;'沪股通' 沪股通市场行情;'深股通':深股通市场行情; '行业板块':行业板块市场行情;'概念板块':概念板块市场行情; '沪深指数':沪深系列指数市场行情;'上证指数':上证系列指数市场行情 '深证指数':深证系列指数市场行情;'ETF' ETF基金市场行情;'LOF' LOF 基金市场行情 - code:输入单个或多个证券的list,不输入参数,默认返回某市场实时指标 如code='中国平安',或code='000001',或code=['中国平安','晓程科技','东方财富'] ### 某市场所有标的最新行情 ```python #获取沪深A股最新行情指标 df=qs.realtime_data() #查看前几行 df.head() ``` ```python #获取期货最新行情指标 df=qs.realtime_data('期货') #查看前几行 df.head() ``` ```python #获 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值