我舉兩個情境做範例給大家做個思考,希望會有幫助。
一、假設今天收盤是8000,而當明天的第1根K棒有突破 8050 時(開盤直接過也算),進場作多。
if sessionlastbar=true
then Buy next bar 8050 stop;
二、假設今天收盤是8000,而當明天的第1根K棒有突破 8050 時(但開盤直接過就不算),進場作多。
if sessionlastbar=true and Open tomorrow < 8050
then Buy next bar 8050 stop;
讓我們來看看實作的效果。第一種,見價突破進場:
第二種,把下一根的開盤價引入條件判斷,直接開盤跳過預定觸價就不進場:
大家在剛開始學習程式交易的語法時,習慣了 Next bar MARKET ,以為沒有辦法在要動作的價位已經到了就馬上執行,必須要等到收盤,收盤價真的在要動作的價格之上才能在下一根執行交易命令,其實~不是這樣的^^
Stop / Limit 的命令都是在條件滿足的下一根價格一觸碰到就立刻做出動作的,這會很像所謂的 This bar,但其實只要在腦袋裡對條件判斷成立與否的思考做一下往前位移就可以實現了。切記,用 Next bar 作為交易發生的時機是為了確保條件判斷的成立與否不會反覆。
也許有人以為這個 Open tomorrow(即 Open next bar)的特殊資料字詞是一種 This bar 或是 IOG 模式,實際上...它壓根就不是 IOG 或是 this bar 啦!Open tomorrow(中譯:下一根的開盤價)只是利用了所有的交易動作必然發生在下一根K棒的開盤價出現的瞬間或以後的特性,把下一根K棒的開盤價拿來作為現在的條件判斷而已...就邏輯上來看,或許有窺探未來的意思,但實務上是完全合理的。