for迴圈應用疑問

  •   703 
  • 最後發表   Pierce  2018 十一月 27
Pierce 發文於   2018/11/27

1. 請問for迴圈是會運行完n才會結束跑end之後指令嗎?

2. 我想要30分鐘內1分K過高2次以上就買進(出現警示),如果for迴圈要全部跑完才會執行end之後的指令,這樣就不會在達到2次就警示了,請問如何修改??

variable: n(0);

variable: count(0);

if  Barinterval=1 and barfreq ="Min" then Begin  //適用於1分鐘線

if time = 90100 then begin

for n=1 to 30 begin

    value1=highest(high[1], n-1);

if  value1<close[n-1]

then count=count+1;

end;

end;

if count>=2

then ret=1;

end;

XQ小幫手 發文於   2018/11/27

Hi Pierce,

1. 請問for迴圈是會運行完n才會結束跑end之後指令嗎?

您好,是的,同 XS函數搜尋網:For 說明,以下節錄部分說明:

一般而言迴圈的執行次數是透過初始值跟結束值來控制的,

不過需要在執行過程內提前跳出的話,則可以使用Break指令。


 

2. 我想要30分鐘內1分K過高2次以上就買進(出現警示),如果for迴圈要全部跑完才會執行end之後的指令,這樣就不會在達到2次就警示了,請問如何修改??

看起來應該不需要用到 for 迴圈來進行 【30分鐘內1分K過高2次以上就買進(出現警示)】 的判斷,

應該可以撰寫,若當下 close 大於 high[1] 則用A變數計數 1 次,並用B變數記錄當下的時間;

若 A變數 在 30分鐘內(可以運用B變數來計算幾分鐘內)累計 2 次,則觸發警示;反之 A變數 歸零 重新計數,

以上方向供您參考,謝謝。

 

發表回覆
Close