MultiCharts | PowerLanguage語法教學 | CH5:迴圈(Loop)

迴圈(Loop)

迴圈forwhile語法,讓程式可以重複執行迴圈內的指令,直到滿足一定次數或是不滿足邏輯條件才離開迴圈。

跳出迴圈breakcontinue語法,讓程式可以中途跳出迴圈。

跳出腳本#return語法,讓程式跳出這一次腳本的執行。

For迴圈

for迴圈使用一個數值變數來計數,並給定初始值和最終值。

語法

for迴圈會與保留字ToDownTo搭配使用。

for迴圈與To搭配使用:
To搭配使用,Counter的值從IValue開始,每執行一次迴圈,Counter的值就加一,直到大於FValue,則離開迴圈不再執行。

For Counter=IValue To FValue Begin
  I1;
  I2;
End;

for迴圈與DownTo搭配使用:
DownTo搭配使用,Counter的值從IValue開始,每執行一次迴圈,Counter的值就減一,直到小於FValue,則離開迴圈不再執行。

For Counter=IValue DownTo FValue Begin
  I1;
  I2;
End;

Example

For BarBackNo = 0 To 9 Begin
    HighPriceSum = HighPriceSum + High[BarBackNo];
End;
For BarBackNo = 9 DownTo 0 Begin
    HighPriceSum = HighPriceSum + High[BarBackNo];
End;

While迴圈

while迴圈每一次執行前會先判斷邏輯陳述句(Logical_Expression),如果為真,則執行指令BeginEnd區塊內的指令,直到為否,則跳出迴圈。

語法

While Logical_Expression Begin
  I1;
  I2;
  I3;
End;

Where:
Logical_Expression – 邏輯陳述句
– 邏輯陳述句為真時,會執行的指令

Example

BarBackNo = 0;
While BarBackNo < 10 Begin
  HighPriceSum = HighPriceSum + High[BarBackNo];

  BarBackNo = BarBackNo + 1;
End;

跳出迴圈

forwhile迴圈會一直執行,直到條件不滿足才離開,但是有時候會出現,需要中途跳出迴圈的情況。
PowerLanguage提供了breakcontinue指令來中途跳出迴圈。

Break指令

當程式執行到break時,跳出並且結束整個迴圈。

Usage

break;

Examples

var: dayCount(0);
For dayCount = 0 to 6 Begin
    If (Open < 16000) then break;
End;
var: dayCount(0);
dayCount = 0;
While dayCount < 7 Begin
    If (Open < 16000) then break;

    dayCount = dayCount + 1;
End;

Continue指令

當程式執行到continue時,跳出這次迴圈,並執行下一次迴圈,continuebreak不同,continue只是跳出這一次迴圈,並不會結束整個迴圈。

Usage

continue;

Examples

var: dayCount(0);
For dayCount = 0 to 6 Begin
    If (Open < 16000) then continue;
End;
var: dayCount(0);
dayCount = 0;
While dayCount < 7 Begin
    If (Open < 16000) then continue;
    
    dayCount = dayCount + 1;
End;

Return指令

#return指令與break類似,但是#return是結束這一次腳本的執行,而不是結束迴圈而已。
當程式執行到#return時,結束這一次腳本的執行,並且根據腳本的執行機制,在滿足下一次執行條件時(ex: K棒完成)重新執行腳本。

Usage

#return;

Reference

https://www.multicharts.com/trading-software/index.php?title=Category:Comparisons_and_Loops

https://www.multicharts.com/trading-software/index.php?title=Return

https://www.multicharts.com/trading-software/index.php?title=While

https://www.multicharts.com/trading-software/index.php?title=For

發佈留言