官术网_书友最值得收藏!

2.3 執行模式

在Pine Script中,執行模式(Execution model)指的是Pine Script代碼在圖表上的執行方式。

2.3.1 執行模式簡介

Pine Script執行模式根據觸發方式可以分為兩種:由時間觸發的腳本執行模式和由事件觸發的腳本執行模式。

由時間觸發的腳本執行模式:在該模式下,Pine Script對于實時行情與歷史行情的處理方式有所不同。實時行情中最右側的K線(即當前時間)的最高價(High)、最低價(Low)、收盤價(Close)和成交量(Volume)都是隨著行情實時更新的,直到當前K線(圖表上最右側的K線)也成為歷史數據,且有新的K線出現。

由事件觸發的腳本執行模式:在該模式下,腳本的執行不依賴于時間,而是在事件發生時被觸發。在圖表界面,若用戶輸入的參數值發生變動,則會觸發腳本執行;此外,刷新瀏覽器也會觸發腳本的執行。

2.3.2 由時間觸發的腳本執行模式

Pine Script提供了兩種由時間觸發的腳本執行模式:歷史行情數據下的執行模式和實時行情數據下的執行模式

1)歷史行情數據下的執行模式

在歷史行情數據模式下,OHLCV(即Open、High、Low、Close和Volume)的值是已知的。當查看或回測歷史數據時,Pine Script會按照時間順序對每一根K線進行計算。在該模式下,對于每一根K線的OHLCV數據,腳本都只會執行一次,從而產生對歷史數據的分析結果。

2)實時行情數據下的執行模式

在實時行情數據模式下,最右側(即當前時間)的K線的OHLCV數據都是實時更新的,而最右側的K線的收盤價也就是當前價格。

在實時行情數據模式中,對K線數據的處理方式取決于所使用的函數。

● 對于函數indicator而言,每當實時數據更新時,腳本就會執行一次。

● 對于函數strategy而言,系統默認僅在當前K線收盤時才會執行一次腳本。此外,函數strategy還提供了一些專用于回測和前測的參數,以滿足用戶不同的需求,例如參數calc_on_every_tick可用于確定每當價格發生最小幅變動時是否執行一次腳本。

在實時行情數據模式下,函數strategy的執行模式比較復雜,我們會在后面的第14章中進行更詳細的講解。

2.3.3 由事件觸發的腳本執行模式

在Pine Script圖表界面中,存在兩種情況可以觸發腳本執行并涉及所有歷史行情數據。

● 第一種情況:用戶輸入的參數值發生變動。

① 更改圖表界面的商品代碼或時間周期。

② 在Pine Editor頁面中保存腳本或將腳本添加到圖表;在主圖上方的菜單欄中單擊“Indicators,Metrics&Strategies”選項,然后在彈出窗口的搜索欄中輸入該指標/策略腳本名稱并將其添加到圖表。

③ 從“Settings/Inputs”窗口修改或輸入參數值或者從“Settings/Properties”窗口修改或輸入參數值。

● 第二種情況:刷新瀏覽器。

刷新瀏覽器也會觸發腳本執行。

2.3.4 函數indicator與函數strategy在腳本執行模式中的差異

● 函數indicator的腳本執行模式:每當實時數據更新時,腳本就會執行一次。

● 函數strategy的腳本執行模式:系統默認僅在當前K線收盤時才會執行一次腳本。此外,函數strategy還提供了一些專用于回測和前測的參數,以滿足用戶不同的需求,例如參數calc_on_every_tick用于確定每當發生價格變動時是否執行一遍策略腳本;參數calc_on_order_fills用于確定每當訂單成交后是否再執行一遍策略腳本。

主站蜘蛛池模板: 稷山县| 睢宁县| 武乡县| 南郑县| 饶阳县| 昌平区| 肃北| 麦盖提县| 吴旗县| 岳阳县| 营口市| 米泉市| 菏泽市| 娱乐| 大渡口区| 孝昌县| 柘城县| 张家川| 松滋市| 海城市| 若羌县| 邹平县| 临夏县| 霍山县| 尖扎县| 合川市| 黎川县| 胶州市| 永济市| 山东省| 盈江县| 普安县| 渭源县| 南阳市| 墨竹工卡县| 旺苍县| 辽宁省| 榆树市| 体育| 榆树市| 荃湾区|