Python程式交易︱比特幣短炒策略Back Test方法 手把手教你點睇python program(一)
加密貨幣的市況近月又熱了起來,多了關注。不論新手、老手,投資前要先溫功課,這是常常都對的大道理,而且找到學習材料後,也要懂得驗證有效性,才能分析得更有效。
今年 5 月,fintalk180 刊登了一個比特幣的短線操作策略,並以 python 程式進行了回溯測試(back test),模擬在 2022 年 1 月 1 日至 2023 年 4 月 1 日期間使用有關策略買賣,即使在比特幣熊市中,仍能錄得約 33% 的正回報。
在今次文章,我們會公開相關 python 編碼,並將以一系列文章進行講解,務求以科學、知識的角度,探討比特幣價格走勢。
首先,我們來看看相關 python 編碼:
對於沒有學過編程的讀者,大概會對這 61 行文字與符號一頭霧水,不用害怕,最緊要謹記一點,編碼是用來構建我們想要的算式,因此先釐清策略如何構成,然後再與編碼左右對照,那便容易理解了。
先看第 1 至 7 行編碼,這裏是做前期準備工作,引用入函式庫(library),我們可以把 library 理解為預先寫好的一堆編碼。為什麼有 library 的存在呢﹖因為有一些編碼是很多 programmers 都會重覆用到的,當中一些熱心的 programmers 會在寫了相關編碼後,上傳至網絡並公開,其他 programmers 只要在編碼編輯平台上,輸入安裝和引入相關 library 的編碼,即可以使用。
延伸閱讀:Python程式交易|比特幣短炒不宜用保力加通道 統計數據話你知點解
以第 6 行的「!pip install yfinance」為例,yfinance 是連接雅虎財經數據的 library 的簡稱,而 !pip install 在 python 意指安裝,因此當你在編碼編輯平台上寫下「!pip install yfinance」,並執行這行編碼,平台便會安裝連接雅虎財經數據的 library,意思和效果就是這麼直接簡潔。
雅虎財經是免費的股價或幣價等的數據源,很多 programmers 會引用,有熱心人便把連接雅虎財經的編碼寫成 template,供其他 programmers 使用。
安裝後,還要指明會在這個 program 中引入,編輯平台才會意會到你想調用相關 library 的編碼,故此有第 7 行的「import yfinance as yf」,import yfiance 便是引入連接雅虎財經數據的 library,而 as yf 是向編輯平台指明,後續輸入 yf 時,便代表調用 yfinance library,換個簡單一點的概念,可視為把 yfinance 簡稱為yf。
延伸閱讀:Python程式交易|以太幣見高先追 身處熊市也有正回報
至於第 1 至 4 行,分別是引入 pandas_datareader、numpy、pyplot 和 datetime 的 Library。pandas_datareader 讓編輯器可從網絡上取得數據;numpy 包含一堆計算邏輯,可以對數組(arrays)和矩陣(matrix)進行操作;pyplot 是 matplotlib library 之下的子模塊(sub-module),可用於創建各種類型的圖表,把數據可視化;datatime 是要來處理日期和時間相關的操作。
第 5 行「%matplotlib inline」,是一句適用於 Jupyter Notebook 編輯平台的編碼,指示平台在顯示圖像時,直接在平台中顯示,無需打開新的視窗進行。
下一篇文章,便開始進入構建 back test 算式和量化分析的環節,敬請期待。