什麼是K線放大器回測模式

Premium用戶可以透過使用K線放大器在他們的策略回測中獲得更真實的訂單執行。該工具使用intrabar檢查來更深入地了解K線內的價格變動,從而實現更精確的訂單成交。啟用後,K線放大器模式將僅使用歷史K線的OHLC值替換經紀商模擬器必須對價格變動做出的假設

K線放大器使用的intrabar時間週期隨圖表的時間週期動態調整。此表列出了用於逐漸更高圖表時間週期的intrabar時間週期:

圖表時間週期,T

使用的Intrabar時間週期

1S < T < 30S

1S

30S <= T < 5

5S

5 <= T < 30

15S

30 <= T < 60

1

60 <= T < 240

5

240 <= T < D

15

D <= T < W

60

W <= T < 2W

120

T >= 2W

D

表 1. 使用的Intrabar時間週期

下面是使用停損單而不使用K線放大器的策略範例:

//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = false)

if bar_index  == 10381
    strategy.entry("Long", strategy.long, stop = 157.0)
    strategy.exit("Exit", stop = 156.0)//@version=5strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = false)if bar_index  == 10381    strategy.entry("Long", strategy.long, stop = 157.0)    strategy.exit("Exit", stop = 156.0)//@version=5strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = false)if bar_index  == 10381    strategy.entry("Long", strategy.long, stop = 157.0)    strategy.exit("Exit", stop = 156.0)
Java

經紀商模擬器在#10381 K線上放置停損單,並在滿足stop = 157.0條件後立即在下一個K線上執行價格為157.0的訂單。經紀商模擬器估計,在K線內部,價格從“開盤”到“低”,然後到“高”(觸發入場),然後到“收盤”。幾根K線後(當前時間週期為11天),觸發了以停損價 = 156.0 平倉的條件:

啟用K線放大器時(參數use_bar_magnifier = true),退出和進入價格不變;但是,該部位的退出發生在入場發生的同一根K線內:

//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = true)

if bar_index  == 10381
    strategy.entry("Long", strategy.long, stop = 157.0)
    strategy.exit("Exit", stop = 156.0)
Java

如果我們檢查同一商品的較低時間週期表(60分鐘圖表,根據intrabar時間週期表)並找到對應於K線10382的時間週期,我們可以看到在每小時時間週期上,在達到157.0並觸發入場,價格跌破156.0,滿足Stop = 156.0條件:

啟用K線放大器後,經紀商模擬器可以在回測期間從較短的時間週期內訪問價格變化,使其行為更類似於在同一時間段內對策略進行前向測試時發生的情況。

可以透過策略的“設定/屬性”視窗中切換相應的輸入來切換K線放大器的選項:


請注意,此選項有一個限制:該策略可以從較低的時間週期請求不超過100,000根的K線。這可能適用於具有大量歷史數據的交易商品(其中圖表上的K線數 * 每個圖表K線的較低時間週期K線數 > 100000),圖表上的首次交易可能不受K線放大器的影響。從圖表末方開始,可能會受K線放大器影響的K線數可以粗略計算為:

last_bar_index - (100000 / ( 1 / Num of Lower Timeframe Bars per Chart Bar)

結果值將是一個粗估的近似值,因為較低時間週期K線的數量可能因一根K線而有所差異。