時間:2023-08-26|瀏覽:242
本期文章我們繼續(xù)來了解一些關于在發(fā)明者量化交易平臺使用麥語言的內容。
麥語言策略參數(shù):
麥語言的策略參數(shù)和在發(fā)明者量化交易平臺上的其它語言一樣,在策略編輯頁面設置。以麥語言版本的DualThrust策略為例。
策略地址:https://www.fmz.com/strategy/128884?
在策略編輯頁面,給策略設置的參數(shù),在策略代碼中是可以直接使用的。麥語言的策略參數(shù)一般只用數(shù)值類型,其它類型例如:布爾類型、下拉框、字符串等并不常用。例如上例中N這個參數(shù),默認值為4,如果創(chuàng)建機器人時沒有修改這個參數(shù),那么機器人運行起來以后,在策略中N的值即為4。
實盤與回測:
麥語言策略層面的內容我們已經(jīng)都有所了解了(麥語言策略參數(shù)、麥語言交易類庫模板參數(shù))。接下來看一下麥語言實盤與回測。
回測:
選定回測時間范圍后(起始時間、結束時間),設置策略的K線周期,麥語言也支持策略中多K線周期數(shù)據(jù)。但是這里設置的K線周期是默認K線周期,這里設置為日K線,那么策略運行后自動生成的圖表上就是日K線。回測模式分為「實盤級別」、「模擬級別」具體可以查詢文檔:https://www.fmz.com/digest-topic/4009?。然后選定要回測的市場或者交易所,添加之后就可以回測了,其它參數(shù)如果需要調整,例如初始回測資金數(shù)值等,可以具體根據(jù)需求設置,鼠標放在參數(shù)上有提示。
參數(shù)中和市場、交易所相關的參數(shù),例如:回測模擬資金數(shù)值、回測交易費率、回測價格精度、交易數(shù)量精度、回測數(shù)據(jù)源這些參數(shù),并不是在回測頁面修改就生效的,需要把之前添加的市場、交易所點掉,
實盤設置就簡單很多了,只用給創(chuàng)建的機器人配置指定托管者(即在哪個托管者上運行機器人)。設置K線周期、設置要操作的交易所對象(即配置的交易所賬戶對象)。
運行界面:
策略運行起來,實盤和回測差別不大,只是回測多了一些回測系統(tǒng)自動生成的統(tǒng)計數(shù)據(jù)。
狀態(tài)欄信息:
狀態(tài)欄信息,表格主要分為「行情信息」和「資金信息」。
行情信息主要記錄了當前設置的默認K線周期的周期起始時間、交易品種(合約代碼)、持倉量、持倉價格等數(shù)據(jù)。需要注意的是,麥語言交易類庫模板參數(shù)中設置「實時價模型」、「收盤價模型」這里的行情更新是不一樣的。關注這里的時間更新,可以判斷策略的運轉情況,行情更新情況。(初步判斷程序卡死、日志塞滿硬盤空間等問題)
資金信息主要記錄了機器人從運行開始,到當前資金的數(shù)值。
狀態(tài)欄底部還可以顯示策略中的任意數(shù)據(jù),例如例子中顯示:UPTRACK,?DOWNTRACK,根據(jù)需求設置顯示。這里就需要講一下策略代碼中的賦值方式。
用于給某個變量賦值用以下符號(摘錄自麥語言API文檔)
符號?:
冒號,代表賦值并且輸出到圖(副圖)中,并顯示在狀態(tài)欄表格。
符號?:=
冒號等于,代表賦值,但不輸出到圖(主圖、副圖……)中,也不顯示在狀態(tài)欄表格中。
符號?^^
兩個^符號代表賦值,給變量賦值并且輸出到圖(主圖)中,并顯示在狀態(tài)欄表格。
符號?..
兩個.符號代表賦值,給變量賦值并且顯示在狀態(tài)欄表格中,但是不輸出到圖(主圖、副圖……)中。
可見這些符號都是賦值操作,但是不同之處在于把變量是否顯示在狀態(tài)欄,是否把變量畫在主圖、附圖上(稍后展示)。
^^、:、..是都可以把變量數(shù)值顯示在狀態(tài)欄表格底部的。
K線圖表:
根據(jù)策略回測、實盤頁面設置的默認K線周期,策略會生成K線圖表,并且根據(jù)策略編寫內容,在K線圖表上顯示變量值曲線。例如例子中的圖表:
主圖:
簡單理解,和K線共用同樣Y軸的為主圖,那么什么時候需要顯示數(shù)據(jù)在主圖?
當所要顯示的數(shù)據(jù)、指標線數(shù)值大小和標的物價格大小類似(即和K線BAR上的價格數(shù)值大小差不多)時,可以顯示在主圖,例如策略計算出的均線,例如本例中計算出的價格上下軌(UPTRACK和DOWNTRACK)。
副圖:
那什么樣的數(shù)據(jù)適合顯示在副圖呢?
當所要畫出的線(顯示的數(shù)據(jù))和K線BAR上的價格數(shù)值相差比較大時(比K線上的價格大得多或者小得多),可以顯示在副圖,因為如果此時顯示在主圖,會導致圖像壓縮,非常不便于觀察。例如計算出MACD指標,要顯示MACD指標在圖表上時。
舉例子,給本例子策略中加上一句,AA^^(O-C)*100000;
K線圖表直接壓縮的找不到了。
還有一點差別是,實盤時麥語言策略圖表為HighCharts圖表,回測時為tradingView圖表。
實盤時的圖表:
日志顯示:
麥語言策略,在觸發(fā)交易信號時(?BK,SK,BP,SP,BPK,SPK?),會打印一條日志,顯示代碼中信號觸發(fā)的位置(行數(shù)),顯示信號觸發(fā)的次數(shù)。
在下單日志價格、數(shù)量之后,日志還會附帶輸出當時的對手盤第一檔價格,例如買入開多時,會顯示Ask即賣一檔位訂單的價格、數(shù)量。