2017年6月21日

如何自寫指標(畫圖、箭頭及文字)

一般人講到MultiCharts多半是強調它的程式交易與自動下單功能,其實本身MultiCharts也是一套功能強大的看盤軟體,尤其允許使用者可以自行設計指標,可引用外部資料,透過內建的運算與繪圖功能,就算不是程式交易客,主觀交易者也可以經由MultiCharts開發出輔助交易的看盤工具或指標,進而提升操作績效。自寫指標就跟策略開發一樣,可以天馬星空,發揮創意,寫指標甚至更讓人享受研發樂趣,本文先介紹基本的指標語法,之後有看到不錯的指標也會另外撰文跟大家分享。

「Plot」繪圖語法

先來看一個畫移動平均線的範例,讀者便可以了解其實寫指標很容易,畫一條5日平均線及一條20日平均線語法:

================================================
inputs:len1(5),len2(20);
vars:ma1(0),ma2(0);

ma1=average(close,len1);
ma2=average(close,len2);

plot1(ma1);
plot2(ma2);
================================================

沒錯,就是把「Plot」用上去,就這麼簡單,套到圖上,長短移動平均線指標就畫出來了,操作流程如下:

以上就是如何寫指標到套放到線圖上的操作。這邊提醒,在指標的設定項目「座標」屬性中,建議設定「和商品一致」,這樣當指標是要跟K線擺一起時兩這位置才會一致,建議可設為預設值。
指標說穿了就是把運算數值視覺化,提供更直觀的訊息,以加快決策效率。其實我們常看的K線也是一種指標,透過多空不同顏色,以及實體上下影線的設計,讓我們可以很直觀判讀市場走勢,因此,開發指標前你一定先有一個想要看甚麼的需求,先把這個需求定義出來,例如上例,就是把平均值給畫出來而已,再舉一個例子,以前台指有個很流行的策略,就是把前30分鐘的當天最高最低點畫出來,作為當沖的參考點,語法如下:

================================================
inputs:Timelen1(0915);
vars:HH(0),LL(0);

if time= Timelen1 then begin
HH=highD(0);
LL=lowD(0);
end;

if time> Timelen1 then begin
plot1(HH);
plot2(LL);
end;
================================================

套到線圖上時(1分K),指標如果採用預設樣式的「線條圖」,會發現8:45~9:15間照原意是不需要畫圖但卻仍會有圖(連接線),此時在指標樣式可以改選「點狀圖」,就會畫出我們需要的呈現方式:

標示出符合條件的K線

早期在Tradestation時代,有一種指標類型稱為「ShowMe」,功能就是標示出符合特定條件的K棒,舉個例子,「強力陰陽線」一書是我們學習K線組合與型態的教科書,這麼多種有些組合,特別有些型態條件很複雜,我們怎麼在K線上去確認出這些型態,與其用肉眼一個個找,這個時候MultiCharts就可以大大派上用場,我們以「雙鴉躍空」(很厲害,在「強力陰陽線」一書中是強力空頭訊號)為例,把程式碼寫成指標,然後在符合型態條件的那根K棒用Plot語法標示出來,標在該K棒高點+30點地方,語法如下:
================================================

================================================

放到K線(日線),在指標樣式設定選「點狀圖」,寬度可以設大一點,如下圖,就會把符合「雙鴉躍空」型態的K棒在其高點+30點處畫一個點:

「Arw_New」畫箭頭

上一個雙鴉躍空的例子除了可以用「Plot」標示出來,也可以用「Arw_New」以上下箭頭樣式呈現,更為直觀。「Arw_New」語法:

Arw_New (BarDate, BarTime, PriceValue, Direction),其中前三個參數就是指定畫在哪根K棒及畫的位置,Direction部分,「True」就是畫像下箭頭,「False」就是畫向上箭頭。所以雙鴉躍空改用箭頭標示,語法如下:

================================================

================================================

以文字標示出「Text_New」

如果嫌箭頭還不夠清楚,也可以直接在K線圖上打上文字,「Text_New」語法:
Text_New (BarDate, BarTime, PriceValue,"Text"),其中前三個參數就是指定畫在哪根K棒及畫的位置,最後是要寫的文字,限英文,要加上雙引號,或是用NumtoStr()把數字轉成文字。所以雙鴉躍空改用文字標示,語法如下

================================================

================================================
無論是Arw或是Text語法後面還有一系列相關的語法與用法,本文僅簡單介紹基本語法,如要深入了解,建議可以看PowerLanguage Editor裡面的說明或是字典,或是參看寰宇「PowerLanguage程式交易語法大全」,也有較詳細的範例解說。

結論

MultiCharts不是只能用來程式交易或自動下單,對於主觀交易者,或是要做研究,MultiCharts的自寫指標功能絕對是非常好用的工具,過去我們也介紹過幾個相當有意思的指標,例如均線緞帶等等,就是把行情更直觀、更清晰(過濾雜訊)的方式來做呈現,接著可以進一步開發成程式交易策略,或是做為主觀交易的輔助工具,都可以發揮技術指標的價值。


歡迎加入LINE@
加入好友
(點擊上方圖示)