从零到实盘
文章平均质量分 90
码农甲V
业精于勤而荒于嬉,行成于思而毁于随。
展开
-
A股全自动化交易——从零到实盘20(完结)
本文是“从零到实盘”系列的最后一篇文章,将介绍实现全自动实盘交易的最后一个步骤,即实现定时更新股票数据任务。schedule模块安装我们使用schedule来实现定时任务,首先需要安装schedule模块,在终端中输入以下命令安装:pip install schedule主要代码分析我们实现最终版本的data_center.py,全部内容见文末,主要新增2个函数:新增按天更新任务函数def task_update_daily():该函数包含每日更新任务。 start_time .原创 2022-03-01 19:16:31 · 9016 阅读 · 13 评论 -
PTrade交易程序代码——从零到实盘19
如题,本文将介绍PTrade实盘交易程序的代码。如何在PTrade中部署策略,可以参见前文中“PTrade部署策略过程”部分内容,然后把本文的代码粘贴到PTrade,就能完成“双神穿多线”策略的部署。我们将对程序的各个函数依次进行介绍。初始化函数def initialize(context):该函数为PTrade的业务流程框架的必选函数,实现初始化功能,用于初始化一些全局变量。策略启动后,该函数仅会被调用一次。参数context为Context对象,存放有当前的账户及持仓信息。 .原创 2022-02-19 19:38:14 · 10709 阅读 · 7 评论 -
PTrade数据交互设置——从零到实盘18
前文介绍了如何通过data_center.py程序读取PTrade的交易数据,以及如何输出PTrade交易所需的数据,本文将介绍在PTrade中如何设置上传待交易数据,以及如何设置定时输出交易数据。待交易数据上传设置这里要实现的功能是,在数据中心程序输出待交易数据后,将待待交易数据上传到PTrade里供交易使用。首先启动PTrade,默认会进入“量化”下的“研究”标签界面:在左侧区域可以看到有demo、examples、upload_files三个文件夹,我们上传的文件会自动保存到upload_.原创 2022-02-10 09:53:51 · 5117 阅读 · 4 评论 -
PTrade交易数据更新——从零到实盘17
在实盘交易中,我们在每日盘后更新K线数据、计算扩展指标、筛出候选股票后,需要把新的候选股票数据传递给PTrade,另外需要根据PTrade的实盘交易记录,更新存放在数据库的相关数据,记录哪些股票还需要监测进行交易,哪些股票不需要再监测。本文将完成上述PTrade交易数据的更新过程。相关库表在数据库中,我们保存了ptrade和ptrade_history两张与PTrade交易相关的数据表,两张表的字段完全相同,其中表ptrade保存了待监测交易的数据,表ptrade_history保存了历史监测或交易的.原创 2022-01-28 21:51:04 · 7431 阅读 · 6 评论 -
开聊PTrade交易——从零到实盘16
从本文开始,“从零到实盘”系列文章进入针对PTrade进行交易的相关介绍。PTrade简介PTrade专业交易系统,是一款面向高净值个人用户和主动管理型产品,集程序化交易(策略投研、回测、交易)、日内回转交易、快速交易、投机套利工具等功能,以及异常交易风控在内的一体化智能投资平台。以上是湘财证券对PTrade的简单介绍,笔者目前只是把PTrade作为一个交易的接口,因此只探索了交易相关的功能。如果想了解更多PTrade的功能,还请读者自行探索。下图为进入PTrade后的默认界面:PTrade部.原创 2022-01-21 19:53:36 · 8677 阅读 · 6 评论 -
每日筛取候选股票——从零到实盘14
前文介绍了多进程更新股票数据的过程。在实盘的过程中,每日更新股票数据后,筛出符合候选条件的股票,这样我们就可以在后续交易中,监测候选股票的价格,判断是否进行买入。本文记录筛取候选股票的过程,主要通过查询latest表获取最新一日所有股票的日线数据,然后选取candidate因子为True的股票。主要代码分析新建源文件,命名为data_center_v12.py,全部内容见文末,v12新增4个函数:新增最新日线数据表函数def update_latest_table(stock_codes):该.原创 2022-01-16 07:45:05 · 4039 阅读 · 18 评论 -
按日更新股票数据——从零到实盘13
前文介绍了多进程创建股票数据的过程,整个创建过程大概约10几分钟。在实盘时,每个交易日都有新数据生成,我们没有必要对全面历史时间都进行重新创建计算,只需要下载新产生的日线数据,每次更新需要3分钟左右。本文记录多进程按日更新股票数据的过程。主要代码分析新建源文件,命名为data_center_v11.py,全部内容见文末,v11新增2个函数:新增更新数据函数def update_data(stock_codes, query_days=60, adjustflag='2'):该函数用于更新日线数.原创 2022-01-09 07:52:57 · 4026 阅读 · 4 评论 -
多进程统计策略盈亏分布——从零到实盘12
前文介绍了统计策略盈亏分布的过程,本文将使用多进程进行实现。在前面文章中,我们实现了用多进程创建股票数据,本文多进程实现的主要区别是,需要主进程获取子进程的返回值。主要代码分析新建源文件,命名为data_center_v10.py,全部内容见文末,v10主要涉及3个方面改动:修改盈亏统计函数def profit_loss_statistic(stock_codes, hold_days=10):该函数用于盈亏分布统计,计算当日candidate为True,持仓hold_days天的收益分布,其.原创 2022-01-04 06:39:10 · 3267 阅读 · 2 评论 -
策略盈亏分布统计——从零到实盘11
本文统计策略盈亏分布的过程,并以图表形式展示策略的盈亏分布。策略策略主要内容:加入候选股票池条件:候选因子(参考前文)为True买入条件进入候选股票池的第2日,最低价小于等于进入候选股票池当日的收盘价若进入候选股票池的第2日的开盘价小于进入候选股票池当日的收盘价,则以该开盘价买入;否则以进入候选股票池当日的收盘价买入盈亏统计条件持股hold_days(本文设置为10)天以上所描述的内容其实并不是完整的策略,没有卖出条件、持仓限制等约束。为了统计策略盈亏分布,我们先.原创 2021-12-30 06:47:53 · 4038 阅读 · 4 评论 -
从MySQL中读取股票数据——从零到实盘10
前文介绍了把股票数据写入MySQL的过程,本文记录从MySQL中读取股票数据的过程。到目前为止,我们在访问股票代码列表时,每次需要通过BaoStock重新下载。本文将把下载的股票代码保存到MySQL中,在后续访问股票列表时,就可以通过MySQL读取股票代码数据,从而避免每次都要重新下载代码列表,也以此来演示从MySQL中读取数据的过程。主要代码分析新建源文件,命名为data_center_v8.py,全部内容见文末,v8主要修改了函数get_stock_codes:def get_stock_co.原创 2021-12-28 06:46:01 · 6462 阅读 · 8 评论 -
股票数据写入MySQL——从零到实盘9
前文介绍了MySQL的安装和配置过程,本文记录将股票数据写入到MySQL的过程。安装pymysql使用python实现与MySQL的数据读写时,需要安装相关的包。由于我们搭建开发环境时选择的是Anaconda,大部分包已经被默认安装好,这里只需要手动安装pymysql:pip install pymysql主要代码分析新建源文件,命名为data_center_v7.py,全部内容见文末,v7主要涉及2个方面改动:新增创建数据库引擎对象函数def create_mysql_engine():.原创 2021-12-22 19:23:26 · 8314 阅读 · 28 评论 -
MySQL安装与配置——从零到实盘8
前面文章完成了股票数据创建的流程,下一步将把数据存储到MySQL中。由于MySQL的安装和配置稍显繁琐,本文专门来记录一下相关的过程。下载安装Microsoft .NET Framework 4.5.2下载安装Microsoft Visual C++ Redistributable打开MySQL官网,下载MySQL Installer for Windows,笔者下载时,版本号为8.0.26.0安装和配置MySQL Server,整个过程基本都按默认的选项进行,只需要手动设置一下密码即可:.原创 2021-12-22 19:21:02 · 3991 阅读 · 0 评论 -
多进程创建股票数据——从零到实盘7
前面文章已经记录了股票数据的下载及相关因子计算的过程,本文记录使用多进程创建股票数据的方法。这里所说的创建数据,包括股票数据的下载和相关因子的计算,会把所有股票的全部历史数据进行下载和计算。后面的文章会介绍如何更新数据,即只处理未创建过的数据。还有一点说明,这里使用多进程,而非多线程进行数据创建,主要是由于BaoStock不支持多线程下载数据。因此使用Python的多进程模块multithreading进行数据创建。主要代码分析新建源文件,命名为data_center_v6.py,全部内容见文末,.原创 2021-12-07 21:53:41 · 5605 阅读 · 1 评论 -
股票因子扩展3(候选因子计算)——从零到实盘6
前文记录了双神因子的实现,本文记录候选因子的实现。当候选因子值为True时,股票就会进入候选股票池,后续监测是否买入。主要代码分析新建源文件,命名为data_center_v5.py,全部内容见文末,v5主要涉及5个方面的改动:新增计算均线因子函数def ma(df, n=5, factor='close'):该函数用于计算均线因子,其中:参数df为待计算扩展因子的DataFrame参数n为待计算均线的周期,默认计算5日均线参数factor为待计算均线的因子,默认为收盘价返回值为包含.原创 2021-12-01 04:06:05 · 4206 阅读 · 4 评论 -
股票因子扩展2(双神因子计算)——从零到实盘5
前文记录了涨停因子的实现,本文记录双神因子的实现。双神本质上就是间隔的两个涨停,网上也有人称之为双龙。主要代码分析新建源文件,命名为data_center_v4.py,全部内容见文末,v4主要涉及4个方面的改动:新增计算移动因子函数def shift_i(df, factor_list, i, fill_value=0, suffix='a'):该函数用于计算移动因子,用于获取前i日或者后i日的因子,其中:参数df为待计算扩展因子的DataFrame参数factor_list为待移动的.原创 2021-11-28 17:52:28 · 5685 阅读 · 2 评论 -
股票因子扩展1(涨停因子计算)——从零到实盘4
[前文](/wordpress/?p=172 "前文")介绍了股票日线数据下载,从本文起开始记录一些股票因子的计算方法,这些因子将用于后续策略的编写。我们将实现双神穿多线策略,策略的选股条件是,股票当日形成双神(间隔的2个涨停),K线同时上穿5、10、20、30日均线,30日线在60日线上方,把当日涨停收盘价格定义为买点buy_point。买入价格为后续日期开盘价与buy_point的较小值,卖出止盈价格为buy_point*(1+6.18%),止损价格为buy_point*(1-16.18%)。在写.原创 2021-11-26 20:34:29 · 8839 阅读 · 5 评论 -
股票日线数据下载——从零到实盘3
前文介绍了从BaoStock下载股票代码,本文记录利用这些股票代码下载股票日线数据的过程。源代码参考前文,新建源文件,新文件命名为download_data_v2.py,源代码如下:import baostock as bsimport datetimeimport sys'''功能:返回指定日期的A股代码列表若参数date为空,则返回最近1个交易日的A股代码列表若参数date不为空,且为交易日,则返回date当日的A股代码列表若参数date不为空,但不为交易日,则打印提示非交易日.原创 2021-10-27 21:20:23 · 8585 阅读 · 3 评论 -
A股股票列表下载——从零到实盘2
目前实盘主要用到的是A股的日线数据,在BaoStock、Tushare、AKShare等平台上,均能免费下载日线数据,我们先选择BaoStock作为数据源。本文记录从BaoStock下载A股股票列表的过程。BaoStock安装打开PyCharm,在下方Terminal窗口输入以下命令,完成安装:pip install baostock -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu..原创 2021-10-23 17:01:28 · 9959 阅读 · 1 评论 -
开发环境搭建——从零到实盘1
前言这是《从零到实盘》的第一篇文章,记录量化开发环境的搭建。我会控制每篇博客的长度,力求言简意赅,只上干货,避免文章过长影响可读性。开发环境为了真正做到从零开始,我在虚拟机里新装了Windows 7,分配了16G内存,200G硬盘(只有C盘),主机CPU是i5-8500。量化对象A股。开发软件(后续如用到其他软件包,再记录其安装方法)Anaconda3 个人版 Python3.8 64位PyCharm 社区版(目前我的量化开发全部使用的是免费软件,只有这个博客是真花了银两.原创 2021-10-16 20:33:43 · 7420 阅读 · 0 评论 -
Hello, World——从零到实盘0
经过近两年的python量化交易学习,对量化的知识有了一定的积累,也已实现A股的自动化实盘交易,还结识了很多新朋友,已经建立了两个微信学习交流群。前期量化交易的学习笔记主要发布在CSDN和今日头条上,回头看这些文章,有的需要重新梳理,有的已经抛弃不再适用了。在好友建议下,开设了自己的博客,计划把学习笔记进行重新梳理,避免读者看我的笔记跟踪学习时,再走我之前走过的弯路。目前计划在博客里分享以下几方面的内容:从零到实盘:在有Python基础的前提下,记录从数据下载、策略胜率分析、实盘对接的完整过程;.原创 2021-10-14 20:46:01 · 20514 阅读 · 3 评论