一、前言
近期開始了對量化的學習,這里只是對學習過程的記錄,肯定有一些錯漏的,還請大家指正。
這篇文從下載到基本使用,主要講一些最基本的知識。然后大概說一下極星9.5整個量化的流程。
二、環境准備
1、客戶端下載與安裝
其實極星9.5量化這個名稱不太准確,目前其原名應該叫“極智量化1.1.0”,只是目前運行“極智量化”還需要依賴於9.5的客戶端,所以又叫極星9.5量化版,聽說以后是要獨立成兩個軟件的。在極星下載頁面要注意需要下載的是“極智量化”而不是極星9.5。
下載的這個包直接運行就自動安裝了,你可以通過查看啟動圖標的屬性來查看其安裝路徑。
2、添加擴展包
極智量化已經准備好了運行環境(自帶了miniconda來管理運行環境),也就說是極智量化的python運行環境是獨立的,與你在電腦上自己安裝的python環境不會互相干擾。同樣的,你要安裝新的python包也需要使用miniconda自帶的pip工具。比如我電腦上pip工具就在下面的路徑中:
C:\Users\25309\AppData\Roaming\equant_pkg\Miniconda\Scripts
3、源碼查看
極智量化是開源的,具體的代碼路徑為:
C:\Users\25309\AppData\Roaming\equant_pkg\equant\src
三、量化基本框架
1、啟動量化
雙擊極智量化1.1.0圖標后,首先啟動的是極星9.5,點擊上方的“量化”按鈕啟動量化窗口。
2、界面布局
大概就這么4個部分:
1)策略文件:管理你的策略文件,極智量化自帶了一些示例教程也在這里
2)策略代碼:編輯代碼的區域
3)函數介紹/函數檢索:這里有所有極智量化自帶的“系統函數”的使用說明,還可以直接通過函數名檢索使用方法
4)策略管理/消息日志/報錯信息:可以在這里啟動、停止、刪除你的策略,日志和報錯信息也在這個區域
3、運行策略
點擊右上角的“運行”即可運行當前打開的策略文件。
這里會要你設置下策略相關的,比如你要訂閱哪些合約的行情,一般來說對於自己寫代碼的用戶,這個窗口是用不着的,因為所有這些設置都可以在代碼里做。所以啥都不用管直接點確定開始執行策略。
這里有個坑記錄下:如果你在代碼里設置了觸發方式,這個窗口也勾選了觸發方式,那么實際運行時是兩個觸發都會有的!也就是不是以哪個設置優先,而是兩個設置都生效。同理與合約訂閱。這可能就會導致一些莫名的問題,大家要注意一下。
4、代碼基本結構和思路
極星套利默認自帶了四個函數,分別是:
def initialize(context):
初始化函數,初始化數值、參數或者訂閱行情就在這里做
def handle_data(context):
數據處理函數,處理K線數據就是在這里做的,一般是來一個K線數據就觸發一次這個函數
def hisover_callback(context):
歷史數據結束時觸發的函數
def exit_callback(context):
策略結束時觸發的函數,手動關閉策略時會觸發
量化編程與傳統編程在思路上有個很大的區別,那就是量化編程一般就是數據觸發的。比如你現在訂閱了JD2001 1分鍾的行情,那么每當1分鍾的K線上多一個數據,函數handle_data()就被觸發一次。
那如果你訂閱行情的時候還訂閱了歷史行情,比如100個K線柱,那handle_data()函數會先觸發100次,然后觸發hisover_callback()函數,接着每當K線有更新handle_data()函數就會被觸發一次。
其實想想,如此這般這個量化才跑的起來,不然還真找不到更合適的辦法了。
5、常用函數
SetBarInterval() 訂閱行情
SetTriggerType() 設置觸發方式
Open() K線上的開盤價
Close() K線上的最新價
High() K線上的最高價
Low() K線上的最低價
A_BuyPosition() 買入建倉
A_SellPosition() 賣出建倉
函數介紹可以下載極星9.5量化版來看看,也不多,而且有很多示例可以看。真的使用起來會發現還有些知識點和注意事項,以后寫個總結給大家。