2016年10月7日

運算與邏輯符號(運算子)

闡述我們的交易策略,不外乎透過數學算式、關係及邏輯來表達,例如以下這個想法「當K線收盤價大於前根K高點10點以上且收紅K就買進」,寫成PowerLanguage就是:

If Close>High[1]+10 and Close>Open then Buy this Bar at market;

其中就須運用:「+」(數學運算)、「>」(關係運算子)、「and」(邏輯運算子)。


1.數學運算子

運算子
說明
+
-
*
/
()
括號

數學運算子很簡單,如同我們所學的基礎數學加減乘除,運算規則也一樣是先乘除、後加減,先括號內,後括號外。

2.關係運算子

運算子
說明
> 
大於
< 
小於
>=
大於或等於
<=
小於或等於
=
等於
<> 
不等於
cross over
向上穿越(黃金交叉),又可以寫成cross above
cross under
向下穿越(死亡交叉),又可以寫成 cross below

其中「<>」初學程式語法者會比較陌生,但其實運用很廣泛,例如我們常以以下語法抓(判斷)每天開盤第一根K棒:

If date<>date[1] then…   

唯有每天第一根K棒,其date值(回傳當天日期)會不等於date[1](回傳前一天日期)。

另外cross over 及cross below也很常用到,特別要留意cross與「>」或「<」的區別,cross是一個動作(點),只有該發生交叉的K棒才符合。 

3、邏輯運算子

運算子
說明
and
or

邏輯「and」僅當所有運算式都為真時,條件判斷為成立(true);邏輯「or」則是至少其中一個運算式為真時,條件判斷為成立(true)。舉例如下:

if Close > Close[1] AND Low < Low[1] then …   
如果收盤價大於前一根收盤價,且最低價小於前一根最低價則….,兩個條件都要符合才會執行then後面的動作。

if Close > Close[1] OR High > High[1] then …
如果收盤價大於前一根收盤價,或者最高價大於前一根最高價則….,只要其中一個條件符合就會執行then後面的動作。