2016年10月8日

控制流程If…Then….

所謂寫程式換一種講法就是下指令給電腦,下指令終極語言結構就是:如果怎樣怎樣就去做甚麼動作。「If…Then…」這類控制流程就是下指令的語法,也可以說是整個PowerLanguage最重要也最常用的語言。

1.If…Then…(如果符合條件就去執行A動作)
範例:如果5MA向上交叉20MA,下根K棒就市價買進。

If average(close,5) cross over average(close,20) and marketposition<>1 then buy next bar at market;

2.If…Then…Else…(如果符合條件就去執行A動作,不符合就執行B動作)
範例:如果收盤價在20MA以上,均線(編號Plot1)顏色為紅色,反之,為綠色。

if Close > Average(Close, 20) then
SetPlotColor(1, Red)  //動作A後面沒有分號”;”
Else  //Else後面沒有分號”;”
SetPlotColor(1, Green);  //動作B後面有分號”;”作為語法結尾

3.If…Then Begin…End(如果符合條件就去執行A、B、C…等動作)
範例:如果收盤價在20MA以上,動作A,均線(編號Plot1)顏色設為紅色,動作B,發出警示。

if Close > Average(Close, 20) then begin
SetPlotColor(1, Red);  //動作A後面有分號”;”
Alert;      //動作B後面有分號”;”
End;      //End後面有分號”;”

4.If…Then Begin…End Else Begin…End(如果符合條件就去執行A、B、C…等動作,不符合就去執行D、E、F…等動作)
範例:如果收盤價在20MA以上,動作A,均線(編號Plot1)顏色設為紅色,動作B,發出警示;反之收盤價沒有在20MA以上,則動作C,均線(編號Plot1)顏色設為律色,動作D,發出警示。

if Close > Average(Close, 20) then begin
SetPlotColor(1, Red);
Alert("Close Above Average");
End         //沒有分號”;”
Else begin    //沒有分號”;”
SetPlotColor(1, Green);
Alert(“Close Below Average”);
end;

以上幾種控制流程的語法運用,簡單歸納以下要點:
1.條件都可以是複數個,用「and」或是「or」串起來。
2.要執行多個動作用If…Then Begin…End,而只執行單一動作用If…Then…。
3.注意哪些地方要用分號”;”結尾,哪些不用。