流程控制語法一問

  •   262 
  • 最後發表   史堤  2022 八月 23
史堤 發文於   2021/08/14

XQ您好:

請教一下

在Return的語法說明中提到,Return的作用是腳本直接中斷,「等待下一根bar」,

 

請問如果腳本內容是:if  q_PriceChangeRatio < 0 then return;

屬性設定是頻率是1分鐘,逐筆洗價,連續觸發。

 

1.假設目前q_PriceChangeRatio < 0,在這種情況下,腳本被中斷之後,是等待「下1分鐘K棒才重新執行」?

還是只要有新的成交價進來,程式就重新執行一次?

 

2.使用return語法,提早將不符合條件的情況中斷執行,是不是可以增加程式執行效率,降低CPU負載?

 

謝謝~

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/08/17

Hello 史堤,

 

1.

會是當有新的成交價進來時腳本會在運行一次。

您可以把return理解成當腳本運作到return時即中斷,以後的腳本不會再運行。

下次腳本運行的時間則是依造您的設定。

 

2.

使用return會增加效率沒有錯。

但是使用if else 等流程控制語法亦可以達到類似的效果。

此外,如果您的腳本有含某些函數或是運算式需要取用前期值,有可能會因為return中斷的原因導致運算異常。

所以小幫手會建議您優先使用其他流程控制語法會比較好。

XQ小幫手 發文於   2022/08/23

Hello pure4321,

 

正確來說,應該是下一次運算,return的作用是中斷此次的腳本執行,等待下次執行。

若您設定為逐筆洗價,那麼應該會是中斷後等待下次洗價執行。

執行時一樣是腳本最上面開始執行。

 

發表回覆
Close