請問 While 的應用錯誤

  •   159 
  • 最後發表   帥哥元  2021 九月 06
帥哥元 發文於   2021/08/26

我查了 print 出來的 log

發現 Var_High、var_Low、Value1 的值都不會變

照理說,當N變動時,Var_High、var_Low、Value1 也要跟著變動才對

 

排序方式: 標準 | 最新
CCE 發文於   2021/08/30

因為你沒有結束迴圈的條件

 

帥哥元 發文於   2021/08/31

有耶,如果 Value1 >= 10 then condition1 = False ,就是停止迴圈的條件

重點是,Var_High、var_Low、Value1 的值都不會變,所以才會造成無窮迴圈

帥哥元 發文於   2021/08/31

請問,XQ小幫手,能夠幫忙解決一下,為何 Var_High、var_Low、Value1 的值都不會變嗎?

CCE 發文於   2021/08/31

因為沒有再創高或創低了,所以Var_High、var_Low、Value1數值不變

而且你用的是日頻,他抓的數值是前N天裡的最高跟最低。

 

帥哥元 發文於   2021/08/31

這個邏輯是,以 2007/11/22 當天來看,先抓 往前3天的K棒最高、最低點,再去計算Value1

如果Value1 < 10 ,就再去抓   往前4天的K棒最高、最低點,然後,再重新計算Value1

以此類推

所以

1. 用日頻沒錯

2. 可以參考 2007/11/21 那天的資料,計算到 N=9 迴圈就停止了,所以,照理說,2007/11/22 這天,N=10 迴圈就應該停止,而不會有無窮迴圈

3. 以3588這檔股票,實際去看K棒,絕對有創高或創低,所以,不可能Var_High、var_Low、Value1數值不變

XQ小幫手 發文於   2021/09/03

Hello 帥哥元,

 

小幫手測試過確實會發生您說的情況。

應該是因為highest與lowest是用節省資源的方式撰寫,導致在迴圈時會運算出錯,無法取得正確的值。

建議您修改為 SimpleHighest 與 SimpleLowest 即可。

附上修改後的指標腳本供您參考。

另外感謝 CCE 的熱心回覆。

附加文件

帥哥元 發文於   2021/09/06

OK了,感謝小幫手!!

發表回覆
Close