【邢不行|量化小讲堂系列57-实战篇】量化投资必备!10分钟学会Windows下定期自动运行任务
引言:
邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。
【历史文章汇总】请点击此处
【必读文章】
【邢不行|量化小讲堂系列27-Python量化入门】EOS期现套利,一周时间,15%无风险收益
【邢不行|量化小讲堂系列20-Python量化入门】10年400倍策略分享(附视频逐行代码讲解)
个人微信:xingbx007,有问题欢迎交流
量化投资必备!10分钟学会Windows下定期自动运行任务
这是邢不行第 57 期量化小讲堂的分享
作者 | 贾真假、邢不行
在量化投资的过程中,我们经常会遇到定期执行某个任务的需求。
例如在每天股市收盘后,需要定期收集今天的个股数据。
例如币圈中BTC在场外交易的最新价格,我希望每隔1小时能监测并记录一次。
再例如我希望程序每隔5分钟能监测下某个资产的价格,若达到了我的止盈条件就自动卖出。
以上都是定期执行任务的需求场景,如果是每次都手动去运行程序,不仅繁琐,而且会经常忘记。
本篇文章演示在交易时间,每隔1小时自动获取万科这个股票的最新价格,并保存到指定文件中。希望通过这个案例,让大家学会如何在windows下自动定期运行任务。
首先我们需要想办法获取当前时刻股票的价格,这在邢不行的《Python股票量化投资》课程中有详细讲解。
现在简单的分享其中部分代码,具体见下方截图:
抓取万科股票当前时间价格的代码截图
可以看到,只需要6行代码就可以实现这个功能。我们将上面的代码保存在“获取股票当前时刻数据.py”文件中。运行一下脚本,会发现在python脚本的文件夹中会出现一个“sz000002.txt”文件。输出结果为下面的截图。
“sz000002.txt” 文件内容截图
如果需要这部分代码,或有问题,可以加邢不行的私人微信号讨论:xingbx007。
现在我们已经有办法获取最新的价格了,那么接下来要做的就是在每天股票交易时间里,每隔一小时自动运行一次该函数。
自己每天定期手工运行程序肯定比较麻烦,接下来会介绍如何让程序每天定时自动运行。
在Windows 10 系统中都有一个自带的应用程序叫做“任务计划程序” (Task Scheduler)。通过这个程序就可以实现每日定时运行特定程序的功能。
任务计划程序截图
首先我们来看看如何打开任务计划程序。
敲击键盘的windows键,然后输入“任务计划程序”。可以看到出现了下面第二张截图的样子。
键盘上面的windows键 输入“任务计划程序”之后的屏幕截图
这个时候我们再敲击回车键就可以打开这个程序。
由于任务计划程序是没有办法直接运行python脚本。所以我们还需要准备一个bat脚本来运行python脚本。
不要被脚本这种名字给吓到。其实这个文件很简单。只需要一行代码就可以实现我们想要的功能。
首先我们在桌面空白位置右键新建一个文本文档。完成之后会发现文件夹中多出来一个“新建文本文档.txt”。
在文件夹中新建脚本文件的截图
将文本文件命名为“获取股票当前时刻数据.bat”。“.bat”之前的文字都可以根据要实现的功能来命名。
命名完成之后会跳出询问是否更改文件扩展名的警告。点击“是”就可以完成重命名。
修改文件名称时会遇到的警告
然后用记事本打开“获取股票当前时刻数据.bat”文件,并在里面输入下面这行代码:
自动运行python脚本的代码截图
这行代码的格式是python(空格),后面加上要运行的python脚本的地址。即"python 文件地址\文件名"。
在截图的这个示例中文件地址为"C:\Users\xbx\Desktop\获取分钟k线数据"。文件名为"获取股票当前时刻数据.py"。要注意里面的分隔符号都是“\” 而不是 “/”。
准备好了bat文件就可以开始设置第一步中打开的任务计划程序,来部署我们的bat文件。
新建任务
然后输入每日自动运行任务的名称。如果该任务比较复杂,也可以在描述中输入该任务的具体介绍。完成之后点击下一步。
设置任务名称
这里是设置该任务的运行频率。因为我们是每日都要更新当日的股票数据,所以这里设置为每天。然后点击下一步。
设置任务运行频率
这里是设置第一次运行程序的时间及其任务之间的时间间隔,这里将其设置为上午10点30运行,并且每隔一天运行一次。完成之后点击下一步。
设置任务开始时间
这里是选择操作类型,我们这里选择默认的启动程序,选择好之后点击下一步
设置执行任务类型
在这里就要用到我们第二步准备的bat脚本。点击浏览,然后找到我们要运行的bat脚本文件,点击确定。设置完成之后点击下一步。然后再点击完成。
经过这几个步骤就完成了任务计划程序的设置。
设置要执行的任务
我们会发现任务计划程序中有了我们设置的“每日10:30更新股票数据”的自动运行任务。如果想要测试一下有没有正确设置,可以点击右边的运行按钮来试运行一下。
设置好自动运行任务的任务计划程序截图
可以看到点击了运行按钮之后会跳出命令行。命令行运行的就是我们的下载每日分钟级股票数据的python脚本。下面就是运行程序的截图:
自动运行程序截图
到这里我们就设置好了一个每日自动运行的程序。为了获取每小时的万科价格,我们只需要在再设置另外三个自动运行程序,分别将其运行时间设置在每天的11:30,2:00,3:00。
其实要获取股票每小时的数据并不需要这么麻烦,有其它更简单的方法。本文只是用这个作为案例,来讲解如何在windows10上自动运行脚本。大家可以根据具体的需求,来灵活的使用任务计划程序。
另外有的朋友使用的是Mac OS和Linux,在这两个上面自动运行程序其实更简单。如果有感兴趣可以在文末留言,之后可能会出一期Mac OS和Linux版本的文章。
联系邢不行
推荐阅读
历年排名前10的基金,在第2年表现如何?Python告诉你答案
如果你想入门量化,但是始终找不到方向,可以加入我的知识星球。我会在里面解答你的问题,分享我的感悟,不论是投资、技术,还是职业选择、思维方式。