一開始先把前面的那些程式碼打包起來方便使用,首先先把前面的程式碼全部複製到一個新的python檔案裏面,到目前為止有用到的功能有
1.登入
2.抓取1分K
3.抽取1分K的收盤價
4.1分收盤價轉日收盤價
5.均線交叉訊號製作
登入的部分會需要的有帳號密碼,還要告訴shioaji用模擬模式還是真倉模式,我這邊採取的作法是帳號密碼要用的時候自己手動輸入就好了,可以把帳密放在文字檔裡面要用直接貼上去就好,或者用一些密碼管理工具也可以,函數需要輸入的就只剩下模擬模式開關的那個
這邊會需要輸入股票ID,開始時間和結束時間,由於shioaji同時支援期貨和股票的報價,這邊函數名字特別寫"股票"K線
這邊輸入前面的1分K和欄位名稱,欄位名稱填'close'就會抽取收盤價的部分,未來也能用這個函數抽取開盤價或成交量之類的
這邊就輸入1分收盤價還有一個引數告訴他要算開盤還收盤價,開盤收盤以外的東西要用到再加
輸入日收盤價,還有長短均的週期輸出買賣訊號,其實可以加上一些判斷式來檢查有沒有無效值,但這邊用簡潔一點的寫法
經過以上的打包之後,只要用以下少少幾行就可以做到前兩天的事情
以下是執行結果
如果是要計算資料裡面第A日到第B日的買進持有的報酬率用以下的period_profit函數就可以做到了,因為我這邊用的訊號都是收盤產生,隔天開盤作進出,所以這邊是用開盤價來算報酬率,如果操作上是收盤價進場的話可以用收盤價來計算損益。這個例子是計算開盤第1天買進到第11天開盤為止的報酬率。
以下是執行結果,從2018/12/07到2018/12/20的報酬率是-0.0086。
有了今天弄的這些基礎建設,明天就可以正式弄回測的部分了。