【單元14】自己的看盤指標自己寫(畫指標、箭頭及文字)
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線擺一起時兩這位置才會一致,建議可設為預設值。
另外也可以設定指標是要跟主圖重疊還是另外畫在副圖:
以上例子簡單示範用Plot語法畫指標,完整的Plot用法可以參考MC官網。接下來我們再做一點變化,透過條件設定來改變指標顏色,例如延續上例兩條均線指標,我們希望當短均線跟長均線兩者的距離(差值)超過100點時,也就是乖離過大時短均線就變成白色。使用SetPlotColor(PlotNumber,PlotColor)來控制指標顏色,語法如下:
================================
inputs:len1(5),len2(20);
vars:ma1(0),ma2(0);
ma1=average(close,len1);
ma2=average(close,len2);
if absvalue(ma1-ma2)>100 then SetPlotColor(1, white);
plot1(ma1);
plot2(ma2);
================================
MultiCharts被忽略的功能--自寫指標輔助主觀交易
- 範例一:成本線
指標說穿了就是把運算數值視覺化,提供更直觀的訊息,以加快決策效率。多數人提到MultiCharts會直接想到它自動程式交易功能,其實透過MultiCharts自寫指標,對主觀交易者(手單)也能提供不同角度的幫助,例如可以針對需求寫出期貨商軟體沒有提供的技術指標,也就是說MultiCharts能協助交易人的地方是很多樣的,端看使用者如何運用,自動交易僅是其中一項功能。再舉一個例子,「成本線」是均線的進化版,成本線把成交量考慮進來,比均線更能反映當下多方空放的”建倉成本”,語法如下:
================================
vars:B_AvgCost(0),W_AvgCost(0),AvgCost(0),Len(20),_volume(0);
if BarType >= 2 then _volume = Volume else _volume = Ticks;
B_AvgCost=(h+l+2*c)/4;
W_AvgCost=B_AvgCost*_volume;
AvgCost=summation(W_AvgCost,len)/summation(_volume,len);
plot1(AvgCost);
================================
成本線的概念就是給予價格成交量加權,最後再跟算均線一樣算出平均值,在語法上要留意成交量的保留字在分線用「Ticks」,分線以上週期用「Volume」。成本線畫出來如下圖:
- 範例二:紅買綠賣
坊間有許多操盤輔助指標,售價動輒數千到數萬元,其實只要會MultiCharts就可以自己開發自己的”操盤”指標,我們運用PlotPaintBar這個函式來指定K線顏色,以MACD柱狀線判斷多空,當柱狀線在零軸以上K棒以紅色顯示,柱狀線在零軸以下K棒以綠色顯示,語法如下:
================================
inputs: FastLength( 12 ), SlowLength( 26 ), MACDLength( 9 ) ;
variables: var0( 0 ), var1( 0 ), var2( 0 ) ;
var0 = MACD( Close, FastLength, SlowLength ) ;
var1 = XAverage( var0, MACDLength ) ;
var2 = var0 - var1 ;
if var2>0 then PlotPaintBar(High,Low,Open,Close,"",red)
else PlotPaintBar(High,Low,Open,Close,"",green) ;
================================
函式PlotPaintBar(High,Low,Open,Close,"",red)簡單講就是把K棒開高低收全部強制改為紅色(red),畫出來如下圖所示,學會這個”紅買綠賣”指標技巧,只要是能判斷多空的指標,都可以套用。
- 範例三:散戶指標
我們在【單元11】運用DataN與外部資料解放交易策略一篇中已介紹如何使用外部資料來豐富交易策略,其中運用籌碼來繪製相關指標就是相當實用的一種,在精選專欄中我們有一篇介紹散戶指標,有相當詳盡的操作參考,請讀者自行參考。
- 範例四:買賣力道指標
透過委買委賣的單量跟筆數來判斷大戶跟散戶得掛單力道,也是當沖常用的看盤指標,在精選專欄中我們也有一篇自製買賣力道指標的教學,一樣請讀者自行參考。
標示出符合條件的K線
早期在Teadestation時代,有一種指標類型稱為「ShowMe」,功能就是標示出符合特定條件的K棒,舉個例子,「強力陰陽線」一書是我們學習K線組合與型態的教科書,這麼多種有些組合,特別有些型態條件很複雜,我們怎麼在K線上去確認出這些型態,與其用肉眼一個個找,這個時候MultiCharts就可以大大派上用場,我們以「雙鴉躍空」為例(在漲勢中先出現一根紅K,接著連續兩個開高走低的黑K,為一個反轉訊號),把程式碼寫成指標,然後在符合型態條件的那根K棒標示出來,標在該K棒高點+30點地方,語法如下:
================================
If close[2]>open[2] and close[1]
close
================================
放到K線(日線),在指標樣式設定選「點狀圖」,寬度可以設大一點,如下圖,就會把符合「雙鴉躍空」型態的K棒在其高點+30點處畫一個點,如下圖所示:
「Arw_New」畫箭頭
上一個雙鴉躍空的例子除了可以用「Plot」標示出來,也可以用「Arw_New」以上下箭頭樣式呈現,更為直觀。
「Arw_New」語法:Arw_New (BarDate, BarTime, PriceValue, Direction)
其中前三個參數就是指定畫在哪根K棒及畫的位置,Direction部分,「True」就是畫像下箭頭,「False」就是畫向上箭頭。所以雙鴉躍空改用箭頭標示,語法如下:
================================
If close[2]>open[2] and close[1]
close
================================
以文字標示出(Text_New)
如果嫌箭頭還不夠清楚,也可以直接在K線圖上打上文字。
「Text_New」語法:Text_New (BarDate, BarTime, PriceValue,"Text")
其中前三個參數就是指定畫在哪根K棒及畫的位置,最後是要寫的文字,限英文,要加上雙引號。所以雙鴉躍空改用文字標示,語法如下:
================================
If close[2]>open[2] and close[1]
close
================================
無論是Arw或是Text語法後面還有一系列相關的語法與用法,本文僅簡單介紹基本語法,如要深入了解,建議可以看PowerLanguage Editor裡面的說明或是字典,或是參看MultiCharts官網:Text Drawing、 Arrow Drawing。
快速結論
本單元介紹了如何在MultiCharts圖表上畫各類指標、標示箭頭、打上文字註解等實用功能,MultiCharts不是只能用來程式交易或自動下單,對於主觀交易者,或是要做研究,MultiCharts的自寫指標功能絕對是非常好用的工具,成本線、紅買綠賣、散戶指標等等,都可以自己DIY。
【警語】:
- 本文所舉之語法範例為教學之用,非提供交易策略,請讀者警慎運用。
- 自動交易如遇系統異常或斷線等問題,可能暴露更高的風險,交易人仍應檢查電腦系統或網路之狀態,特別要隨時注意部位變化,以降低相關風險。