輕鬆好入門,PowerLanguage Editor編輯平台簡介【單元1】
工欲善其事,必先利其器,在學MultiCharts的程式語法PowerLanguage前,我們先來認識它的編寫操作平台---「PowerLanguage Editor」。
>>讀完本文您可以學到什麼?
1. 如何將交易點子轉化成交易程式
2. 操作PowerLanguage Editor
用PowerLanguage告訴MultiCharts你的交易邏輯
MultiCharts的終極價值之一就是可以把我們的交易思維轉化成程式,再進一步回測績效並實現自動交易。腦子裡的交易點子變成交易策略有三個過程:
1. 先行梳理、邏輯化、精確化。程式執行的基本架構就是「If ...(條件) then..(動作)」,從這個角度把交易點子先行整理,去蕪存菁、力求明確,最好可以用條列方式寫一一出來交易邏輯。
2. 把上述交易邏輯寫成PowerLanguage。PowerLanguage是MultiCharts專用語言,就好比要先學會英文才能跟美國人溝通,但先別被學新語言嚇到,所有語言都有一個共通特色,學會20%就足以應付80%的溝通需求!
3. 反覆修正。一個交易策略從發想到上線,往往是一個不斷循環修正的過程,交易想法、程式語言以及交易實務三者常是存在巨大落差,透過反覆修正縮小落差才能創造出一個可行的程式交易策略。
PowerLanguager Editor(也有人簡稱PLE)顧名思義就是編寫PowerLanguage的平台,我們就是在這裡紀錄、發表、實現乃至於學習我們的交易思維。在學PowerLanguage之前,我們就先來認識PowerLanguage Editor。
認識PowerLanguage Editor作業環境
PowerLanguage Editor視窗有三個工作區:
- 程式撰寫區
- 查詢區:可以查詢內建函式、保留字等相關說明與範例。有『公式』與『字典』兩個頁籤。
- 輸出區:有三個頁籤,『建置』顯示執行程式編議(Compile)結果;『輸出』則是當使用Prine語法時在此輸出其結果;『說明』為顯示查詢區查詢結果。
PowerLanguage Editor主要操作功能介紹
關於PLE的主要功能,我們透過步驟一步一步來介紹吧:
1.開新檔案(New)
檔案→開新檔案。在PowerLanguage Editor中程式類型分三種:
- 函數(Function):或稱函式。PowerLanguage Editor已有許多內建的函式,好比我們需要計算平均值,可以直接呼叫Average這個函式,不用每次需要計算平均值時就要再把整個計算均值語法寫一便。同樣地,也可以把自己常用到的計算式或程式機制寫成函數,以便日後可以隨時呼叫取用。
- 指標(Indicator):如果厭倦了一般交易軟體內建的指標,可以自己寫獨門指標,無論是在K線上畫線、寫字、標記,甚或不同條件變換顏色(投顧老師最愛之”紅買綠賣”)等等,各式指標都可以自己寫。
- 訊號(Signal):在指標語法內加了買賣訊號(Buy、SellShort、Sell、BuytoCover)就可以執行程式交易,並回測績效與參數最佳化。
這邊有個實用小技巧,由於PowerLanguage已經內建有許多策略或指標,我們自己寫的會一起參雜(以字母排序),為了方便日後開啟舊檔能快速找到自己寫的部分,建議在取名時開頭第一個字母可以用符號,例如:_my strategy、$my indicator等等。這樣在開啟舊檔時,自寫的部分會放在最前面。
2.開啟舊檔(Open)
檔案→開啟舊檔。除了打開之前寫過的程式語法,建議初學者可以多多參考內建指標或訊號的程式碼,內建的語法撰寫都比較嚴謹正規,此外也可以進一步學到各種語法或交易概念撰寫的技巧。
3.編譯(Compile)
程式完成後要執行編譯(或按「F3」鍵),以檢查整個程式語法是否有誤。如下圖所示「成功編譯」代表程式正確編譯完成。(請注意,此處僅會檢查語法等一些基礎錯誤,成功編譯並不等同於程式最終正確)
如程式語法有誤,執行編譯會指出錯誤位置,如下圖所示:
4.加密(Protect)
工具→公式加密。加密後每次開啟該程式碼需輸入密碼,匯出後,從別的電腦開也要檢核密碼才能看到程式碼內容。
5.匯出程式碼(Export)
檔案→匯出。程式碼可以封裝匯出成PLA檔案,以方便傳遞或存檔。
6.匯入程式碼(Import)
檔案→匯入。可接受匯入的檔案除了PLA檔,Tradestation專用的ELD檔也可以讀入。
7.匯出唯讀
檔案→匯出唯讀。如果想要分享程式給其他人,但又不希望程式碼外洩,可以採匯出唯讀方式,唯讀程式在別的電腦只能使用,看不到內碼。
快速結論
在往後寫程式的日子,我們會常常耗在PowerLanguage Editor上面,一回生二回熟,相信讀者可以很快熟悉。接下來我們正式開始一步一步把我們的交易點子寫成PowerLanguage交易程式吧!
延伸閱讀:【單元2】兩行程式碼完成均線交叉策略