日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

【零基礎(chǔ)】極星9.5量化基本入門教程

 ahappyday 2023-11-13 發(fā)布于上海

一、前言

  陸續(xù)寫了幾篇關(guān)于極星量化的文章,但似乎并沒有寫清楚如何入門。這里就寫一篇全備一點的入門教程,幫大家零基礎(chǔ)入門,順便就是記錄點心得。

  整個內(nèi)容分為三個部分:

  1、下載安裝和簡介

  2、簡單的界面操作

  3、常用函數(shù)介紹

  注:極星量化是基于python的,好歹會點編程才玩的轉(zhuǎn),不過現(xiàn)用現(xiàn)學(xué)也不是不可以。

二、 下載安裝和簡介

1、下載安裝

  官網(wǎng)下載鏈接:http://www./download?ver=q

  需要注意的是要下載的是“極智量化”,而不是極星9.5。

  從結(jié)構(gòu)上來說,目前的極智量化是極星9.5+極智量化,因為量化的運行還需要9.5客戶端的支持才行,所以安裝極智量化的同時就自動安裝了9.5客戶端。

 

  下載完成后啟動安裝包就自動安裝了,安裝路徑?jīng)]得選。

2、程序結(jié)構(gòu)

  

 

  打開安裝目錄可以看到主要包含三個文件夾,其中

  epolestar:極星9.5的程序目錄

  equant:量化的目錄

  Miniconda:python的環(huán)境管理

  注1:因為使用了miniconda來管理極智量化的python運行環(huán)境,所以你不需要額外的去安裝python或管理運行環(huán)境,不過若你需要使用python的擴展包就要使用miniconda的pip來安裝,路徑在:

  “.\Miniconda\Scripts\pip.exe”

3、簡介

  1. 極星9.5量化是開源的,所有代碼都在equant目錄下的src目錄,有機會可以再寫個源碼解析。

  2. 極智量化目前是基于9.5的,但不清楚取行情和做交易是否是借用的9.5的通道,還是他自己就能獨立做了。反正以后肯定是要獨立運作的。

  3. 與市面上其他主流量化平臺相比,極智量化有三個優(yōu)點:

  1)結(jié)合極星9.5,這樣在使用量化時可以同步繪制K線圖,還可以自定義一些標(biāo)記、指標(biāo)線在K線上做分析

  2)基于python,這樣可擴展性其實很強,很多強大的量化包可以直接使用

  3)規(guī)定好了代碼結(jié)構(gòu),這個好處是不需要自己去寫回調(diào)和觸發(fā),常用的功能函數(shù)(取行、畫K線、發(fā)委托等)都封裝好了,門檻一下又降低許多

  其實其他量化平臺也都有上述三個特點,但最多只占一兩個,三個全齊的目前就只有極智量化。

三、簡單的界面操作

1、啟動

  安裝好后,雙擊“極智量化1.1.0”啟動,這時候啟動的其實是極星9.5,然后在上方的功能欄中點擊“量化>極星量化”啟動量化平臺。

 

 

  啟動量化后,極星9.5的界面自動跳轉(zhuǎn)到“程序化1”頁面。

 

  這里的程序化1、程序化2、程序化3就是策略運行時的K線展示,默認就是顯示的“基準(zhǔn)合約”,至于啥是基準(zhǔn)合約后面再說。

  在極星9.5的程序化頁面中你可以右鍵鼠標(biāo)選取當(dāng)前運行的策略來做K線的切換,因為你可以同時運行多個策略嘛,那顯示哪一個策略的K線是可以選的。

 

2、極智量化窗口介紹

  整個窗口的布局還是比較常規(guī)的,右側(cè)的函數(shù)介紹和函數(shù)檢索功能很實用,里面的介紹也很詳細。策略文件中有一些示例教程,可以先按個看一遍熟悉下常用的函數(shù)。

  下方的策略管理可以右鍵運行的策略進行“啟動、停止、刪除”操作,另外還有“投資報告、圖表展示、屬性設(shè)置”,因為我沒咋用這三個功能就不詳細說了。

  需要額外說明的是“消息日志”和“報錯信息”。

  1. 運行日志>用戶日志

  這里顯示的就是LogInfo函數(shù)輸出的信息了,這個完全由用戶自己掌控。

  2. 運行日志>信號日志

  這里顯示的是python運行過程中輸出的信息,比如有一個list為空,但你做了個取值的操作list[1],這樣的error在python層面,他不會主動報錯到“錯誤信息”里提示你。所以有時候發(fā)現(xiàn)運行異常,但沒有主動報錯信息,可以到這里看看是不是運行過程中有些操作不合法。

  3. 運行日志>系統(tǒng)日志

  這里顯示的是量化平臺自己的日志信息,比如現(xiàn)在啟動了量化它會有個日志記錄,取到了行情會有個記錄,取不到也會有記錄。比如你合約代碼寫錯了,就是在這個地方提示你“取不到合約”的數(shù)據(jù)或者“提交合約時發(fā)生異?!?。所以如果代碼運行異常又沒有明顯的提示,可以到這里看看是不是哪些參數(shù)設(shè)置錯了。

  4. 錯誤信息

  這里就是代碼中有語法錯誤,運行不起來會在這里給出提示,而且代碼不會繼續(xù)執(zhí)行。

  綜上,除了錯誤信息外,策略運行過程中還需要關(guān)注“信號日志”和“系統(tǒng)日志”,由于量化是一個運行框架(按既定節(jié)奏運行固定代碼),所以很多內(nèi)部錯誤無法拋出來提示。

3、運行一個策略試試

  我們運行一個簡單的示例策略“AvrHighLow.py”,內(nèi)容是輸出K線最大值和最小值的平均值。

  打開策略文件后,點擊右上角的“運行”按鈕。

 

  此時會先彈出一個“屬性”設(shè)置窗口,啥也不用管直接點“確定”即可。然后你就會發(fā)現(xiàn)界面自動切換到了9.5的“程序化1”頁面,但是是空白的啥也沒有,然后也沒有報錯信息。

 

 

 

 

   這時候就需要到運行日志里去看了,你會發(fā)現(xiàn)在系統(tǒng)日志中有error信息,原來是合約設(shè)置錯誤,"DCE|F|I|1909"這個合約早就過期了,現(xiàn)在系統(tǒng)里沒有這個合約編號,自然是取不到數(shù)據(jù)的。

 

   我們修改合約編號為“DCE|F|I|2001",再運行下就能看到K線了,并且用戶日志中會輸出平均值。

 

四、常用函數(shù)介紹

1、觸發(fā)函數(shù)

  量化一般包含四個過程:初始化、歷史數(shù)據(jù)處理、即時數(shù)據(jù)處理、策略結(jié)束處理。極智量化使用了四個預(yù)設(shè)的觸發(fā)函數(shù)來實現(xiàn)這四個過程,分別是:

  def initialize(context): 

  初始化函數(shù),初始化數(shù)值、參數(shù)或者訂閱行情就在這里做

  def handle_data(context):

  數(shù)據(jù)處理函數(shù),處理K線數(shù)據(jù)就是在這里做的,一般是來一個K線數(shù)據(jù)就觸發(fā)一次這個函數(shù)

  def hisover_callback(context):

  歷史數(shù)據(jù)結(jié)束時觸發(fā)的函數(shù)

  def exit_callback(context):

  策略結(jié)束時觸發(fā)的函數(shù),手動關(guān)閉策略時會觸發(fā)

2、初始化initialize

  一般初始化中就只做行情訂閱并設(shè)置觸發(fā)方式,

  SetBarInterval  行情訂閱

  SetTriggerType  觸發(fā)方式,這里設(shè)置的是handle_data的觸發(fā)方式

  需要注意的是,點擊運行后彈出的“屬性設(shè)置”窗口,其實里面的內(nèi)容與初始化差不多,如果你在初始化里做了設(shè)置,就不要在“屬性設(shè)置”中做重復(fù)的設(shè)置,系統(tǒng)會使兩個設(shè)置都生效,比如你在initialize設(shè)置了“K線觸發(fā)”,在“屬性設(shè)置”窗口又設(shè)置了“即時行情觸發(fā)”,系統(tǒng)會使兩個設(shè)置都生效,最后的結(jié)果是K線和即時行情都會觸發(fā)handle_data。同理行情訂閱也是一個道理。

3、數(shù)據(jù)處理handle_data

  極智量化的數(shù)據(jù)處理邏輯是這樣的,如果你訂閱了歷史行情,那就先觸發(fā)歷史的數(shù)據(jù),接著觸發(fā)最新的數(shù)據(jù)。比如訂閱了2000根歷史K線,同時觸發(fā)方式為K線觸發(fā)。那么handle_data這里會先收到2000個歷史K線數(shù)據(jù),而且這些數(shù)據(jù)是一個接一個來的,也就是handle_data會先被觸發(fā)2000次,你可以通過Open、Close等函數(shù)獲取歷史K線的數(shù)據(jù)。然后每當(dāng)你訂閱的行情有新的K線生成,就會觸發(fā)一次handle_data,通過Open、Close獲取的數(shù)據(jù)就會包含了最新的K線數(shù)據(jù)。

4、回測結(jié)束處理hisover_callback

  如果你訂閱了歷史數(shù)據(jù),那么歷史數(shù)據(jù)會先觸發(fā)handle_data,當(dāng)歷史數(shù)據(jù)獲取完畢會觸發(fā)一次hisover_callback函數(shù)。所以我一般是這樣做,訂閱行情時訂閱2000個歷史K線,但觸發(fā)設(shè)置這里我改為“即時行情觸發(fā)”。那么歷史K線不會觸發(fā)handle_data,當(dāng)歷史K線獲取完畢后在hisover_callback中處理歷史數(shù)據(jù)。

5、策略結(jié)束處理exit_callback

  手動停止策略時觸發(fā),一般用于保存數(shù)據(jù)什么的。

6、其他常用函數(shù)

  Open,獲取K線上bar的開盤價,返回的是一個數(shù)組,最新價可以通過Open[-1]獲取

  Close,K線上bar的收盤價,與Open類似

  HisData,一次性獲取所有歷史數(shù)據(jù),如果在hisover_callback中就是你訂閱的歷史數(shù)據(jù),如果在handle_data中就是訂閱的歷史數(shù)據(jù)和已經(jīng)收到的K線數(shù)據(jù)

  PlotNumeric,在K線上輸出一個數(shù)值,其實這個可以畫指標(biāo)線,輸出的數(shù)值連起來就是一個指標(biāo)線了

  PlotBar,繪制一個bar

  A_SendOrder,發(fā)送一個委托單

  DeleteAllOrders,批量撤單

  A_OrderStatus,查詢委托的狀態(tài)

7、如何得到合約的編碼

  比如“DCE|F|I|2001"

  DCE是交易所編碼

  F表明是期貨

  I是品種編碼

  2001是合約編碼

  可以自己拼,如果不知道怎么拼,可以在“屬性設(shè)置>合約設(shè)置>增加>商品代碼”中找到所有合約的編碼。

 

8、訂閱多個行情的問題

  前面的示例就只訂閱了一個行情,那如果訂閱了兩個會發(fā)生什么呢?

  1)首先9.5的“程序化1”頁面只會顯示基準(zhǔn)合約,也就是你訂閱的第一個合約K線。

  2)其次像Open、Close這些函數(shù)如果不指明合約編號就默認使用“基準(zhǔn)合約”。

  3)如果你訂閱了歷史行情,那么不是第一個合約先取完再取第二個,也不是輪流獲取,而是隨機獲取。即一會來幾個A合約的K線,一會來幾個B合約的K線,隨機的。所以對于多行情訂閱的情況最好在hisover_callback里處理歷史數(shù)據(jù)。

  4)對于實時階段,兩個合約的任何一個行情發(fā)生變化都會觸發(fā)handle_data函數(shù)。

  5)如果在代碼里設(shè)置行情就不要在屬性設(shè)置里再設(shè)置了。

五、總結(jié)

  本文總結(jié)了這段時間操作極星9.5量化的一點心得,量化平臺里自帶的示例教程可以先看看,然后我寫了一個畫K線的教程和簡單止盈的策略,有注釋可以參考看下。

自定義套利的K線繪制

https://www.cnblogs.com/cation/p/12181835.html

滾動止盈策略

https://www.cnblogs.com/cation/p/12185279.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多