在量化投資的過程中,我們經常會遇到定期執(zhí)行某個任務的需求。
例如在每天股市收盤后,需要定期收集今天的個股數(shù)據。
例如幣圈中BTC在場外交易的最新價格,我希望每隔1小時能監(jiān)測并記錄一次。
再例如我希望程序每隔5分鐘能監(jiān)測下某個資產的價格,若達到了我的止盈條件就自動賣出。
以上都是定期執(zhí)行任務的需求場景,如果是每次都手動去運行程序,不僅繁瑣,而且會經常忘記。
本篇文章演示在交易時間,每隔1小時自動獲取萬科這個股票的最新價格,并保存到指定文件中。希望通過這個案例,讓大家學會如何在windows下自動定期運行任務。
使用python獲取股票數(shù)據
首先我們需要想辦法獲取當前時刻股票的價格,這個在我們的課程中有提過。
現(xiàn)在簡單的分享其中部分代碼,具體見下方截圖:
抓取萬科股票當前時間價格的代碼截圖
可以看到,只需要6行代碼就可以實現(xiàn)這個功能。我們將上面的代碼保存在“獲取股票當前時刻數(shù)據.py”文件中。運行一下腳本,會發(fā)現(xiàn)在python腳本的文件夾中會出現(xiàn)一個“sz000002.txt”文件。輸出結果為下面的截圖。
“sz000002.txt” 文件內容截圖
另外值得一提的是,這部分代碼都是可以分享給大家的。
現(xiàn)在我們已經有辦法獲取最新的價格了,那么接下來要做的就是在每天股票交易時間里,每隔一小時自動運行一次該函數(shù)。
自己每天定期手工運行程序肯定比較麻煩,接下來會介紹如何讓程序每天定時自動運行。
使用任務計劃程序完成自動化
在Windows 10 系統(tǒng)中都有一個自帶的應用程序叫做“任務計劃程序” (Task Scheduler)。通過這個程序就可以實現(xiàn)每日定時運行特定程序的功能。
任務計劃程序截圖
1 如何打開任務計劃程序
首先我們來看看如何打開任務計劃程序。
敲擊鍵盤的windows鍵,然后輸入“任務計劃程序”??梢钥吹匠霈F(xiàn)了下面第二張截圖的樣子。
鍵盤上面的windows鍵
輸入“任務計劃程序”之后的屏幕截圖
這個時候我們再敲擊回車鍵就可以打開這個程序。
2 準備bat腳本
由于任務計劃程序是沒有辦法直接運行python腳本。所以我們還需要準備一個bat腳本來運行python腳本。
不要被腳本這種名字給嚇到。其實這個文件很簡單。只需要一行代碼就可以實現(xiàn)我們想要的功能。
首先我們在桌面空白位置右鍵新建一個文本文檔。完成之后會發(fā)現(xiàn)文件夾中多出來一個“新建文本文檔.txt”。
在文件夾中新建腳本文件的截圖
將文本文件命名為“獲取股票當前時刻數(shù)據.bat”?!?bat”之前的文字都可以根據要實現(xiàn)的功能來命名。
命名完成之后會跳出詢問是否更改文件擴展名的警告。點擊“是”就可以完成重命名。
修改文件名稱時會遇到的警告
然后用記事本打開“獲取股票當前時刻數(shù)據.bat”文件,并在里面輸入下面這行代碼:
自動運行python腳本的代碼截圖
這行代碼的格式是python(空格),后面加上要運行的python腳本的地址。即'python 文件地址\文件名'。
在截圖的這個示例中文件地址為'C:\Users\xbx\Desktop\獲取分鐘k線數(shù)據'。文件名為'獲取股票當前時刻數(shù)據.py'。要注意里面的分隔符號都是“\” 而不是 “/”。
3 設置任務計劃程序
準備好了bat文件就可以開始設置第一步中打開的任務計劃程序,來部署我們的bat文件。
新建任務
然后輸入每日自動運行任務的名稱。如果該任務比較復雜,也可以在描述中輸入該任務的具體介紹。完成之后點擊下一步。
設置任務名稱
這里是設置該任務的運行頻率。因為我們是每日都要更新當日的股票數(shù)據,所以這里設置為每天。然后點擊下一步。
設置任務運行頻率
這里是設置第一次運行程序的時間及其任務之間的時間間隔,這里將其設置為上午10點30運行,并且每隔一天運行一次。完成之后點擊下一步。
設置任務開始時間
這里是選擇操作類型,我們這里選擇默認的啟動程序,選擇好之后點擊下一步
設置執(zhí)行任務類型
在這里就要用到我們第二步準備的bat腳本。點擊瀏覽,然后找到我們要運行的bat腳本文件,點擊確定。設置完成之后點擊下一步。然后再點擊完成。
經過這幾個步驟就完成了任務計劃程序的設置。
設置要執(zhí)行的任務
我們會發(fā)現(xiàn)任務計劃程序中有了我們設置的“每日10:30更新股票數(shù)據”的自動運行任務。如果想要測試一下有沒有正確設置,可以點擊右邊的運行按鈕來試運行一下。
設置好自動運行任務的任務計劃程序截圖
可以看到點擊了運行按鈕之后會跳出命令行。命令行運行的就是我們的下載每日分鐘級股票數(shù)據的python腳本。下面就是運行程序的截圖:
自動運行程序截圖
到這里我們就設置好了一個每日自動運行的程序。為了獲取每小時的萬科價格,我們只需要在再設置另外三個自動運行程序,分別將其運行時間設置在每天的11:30,2:00,3:00。
總結
其實要獲取股票每小時的數(shù)據并不需要這么麻煩,有其它更簡單的方法。本文只是用這個作為案例,來講解如何在windows10上自動運行腳本。大家可以根據具體的需求,來靈活的使用任務計劃程序。
另外有的朋友使用的是Mac OS和Linux,在這兩個上面自動運行程序其實更簡單。如果有感興趣可以多多留言,之后可能會出一期Mac OS和Linux版本的文章。