請問盤中條件"曾經"成立,程式該如何編寫

  •   289 
  • 最後發表   新手測試員  2023 六月 20
新手測試員 發文於   2023/06/02

想請教於盤中時(0900~1330),如果有發生日線圖收盤價突破布林通道上軌,程式該如何編寫??

有試過TrueCount或Countif來計算次數大於1,但使用期數會是前幾日,結果並不是預期.

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/06/06

Hello 新手測試員,

 

就文章中的描述來看您是使用日頻率。

要計算盤中達成條件多少次,您需要使用分鐘頻率。

可以使用 getfield 來取得不同頻率的資訊。

xf_getvalue 來取得不同頻率變數的數值。

 

舉例來說,使用在1分鐘頻率上:

value1 = BollingerBand(getfield("Close", "D"),20,2);

condition1 = close > value1 and getfield("Close", "D")[1] <= xf_getvalue("D", value1, 1);  //昨日收盤價小於等於昨日布林上軌,當下收盤價大於當日的布林上軌

 

if issessionfirstbar then value2 = 0;    //每日重置

if condition1 then value2 += 1;    //每次達成條件value2就增加1

 

這樣value2就會是當日條件達成的次數。

新手測試員 發文於   2023/06/16

 感謝,已測試過,使用中!!

但其實是想於"副圖指標","日線圖"中,顯示出總突破次數,

或是能否於程式中,1分鐘頻率執行,但卻於指標日線圖下顯示,謝謝!!

XQ小幫手 發文於   2023/06/20

Hello 新手測試員,

 

小幫手不建議您腳本使用在大頻率上但卻跨到小頻率上。

如果這樣作的話中間會遺漏需多K棒,舉例來說日頻率下取1分鐘頻率的K棒資訊,那麼就只會取到當天最後一根1分鐘頻率的K棒。

要避免這樣的狀況,會需要用迴圈將這段時間內的所有1分鐘K棒資料拉出來計算。

就以上面的範例來說,連布林通道的函數腳本都要自行重新撰寫避免運算錯誤。

發表回覆
Close