- 零基礎學Pine Script:基于TradingView平臺的量化分析
- 閻英姿
- 1154字
- 2023-11-28 18:39:05
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用于確定每當訂單成交后是否再執行一遍策略腳本。
- Vue 3移動Web開發與性能調優實戰
- Scala Design Patterns
- 程序員數學:用Python學透線性代數和微積分
- 實戰Java程序設計
- SQL for Data Analytics
- 實用防銹油配方與制備200例
- Java游戲服務器架構實戰
- Apache Karaf Cookbook
- JavaScript+Vue+React全程實例
- Python時間序列預測
- Java面向對象程序設計
- Using Yocto Project with BeagleBone Black
- Mastering Machine Learning with R
- 小學生C++趣味編程從入門到精通
- Cocos2D Game Development Essentials