使用Pine logs來除錯您的Pine Script®程式碼

Aug 29, 2023

使用我們的新log.*()函數將您的Pine Script® 除錯提升到另一個水平,該函數會在腳本執行時,在新的Pine logs窗格中顯示文字。三個新的logs功能是:

  • log.error()函數用於創建錯誤類型的資訊,這些通常以紅色顯示。
  • log.info()函數用於創建資訊類型的資訊,這些通常以灰色顯示。
  • log.warning()函數用於創建快訊類型的資訊,這些通常以橙色顯示。

您可以從編輯器的“更多”選單中選擇“Pine logs…”來查看Pine日誌,或者從圖表上加載腳本的“更多”選單(如果該腳本使用log.*()函數)中選擇“Pine logs…”來查看Pine日誌。

Pine logs在任何地方都可以運作:在歷史K線、即時K線、以及重播模式。可以從任何類型的腳本(指標、策略或程式庫)以及腳本中的任何位置呼叫logs函數,包括本地塊、循環以及從內部request.security()和類似函數。您可以透過兩種方式呼叫logs函數:僅使用字符串參數,或以str.format()方式使用格式化字符串和值列表。

使用logs的腳本必須是個人腳本,私人或公開發佈的腳本無法生成logs,即使它們包含對log.*()函數的呼叫。

以下程式碼範例使用所有三個logs函數:

//@version=5
indicator("Pine Logs")
if barstate.ishistory
    if bar_index % 100 == 0
        log.warning("\nBar index: {0,number,#}", bar_index)
else
    // Realtime bar processing.
    varip lastTime = timenow
    varip updateNo = 0
    if barstate.isnew
        updateNo := 0
        log.error("\nNew bar")
    else
        log.info("\nUpdate no: {0}\nclose: {1}\nSeconds elapsed: {2}", updateNo, close, (timenow - lastTime) / 1000)
        updateNo += 1
    lastTime := timenow
plot(timenow)

該範例使用橙色快訊顯示每一百個歷史K線的K線索引。它會即時為每個新K線顯示一條紅色錯誤消息,並且對於每個即時更新,它都會創建一條灰色資訊,顯示更新編號、收盤價以及自上次圖表更新以來經過的時間。

要查看Pine logs的運算情況:

  1. 將上述程式碼範例保存到個人腳本中,並將其增加到具有活躍市場的圖表中。
  2. 使用編輯器的“更多”選單,或圖表上指標的“更多”選單打開“Pine logs”窗格。

每個logs條目前面都有一個時間戳。對於歷史K線圖,它是K線圖的開盤時間,對於即時資訊,它是當前時間。較新的消息會出現在面板底部。對於歷史K線圖,只會顯示最近的10,000條消息,即時資訊會附加到其中。

面板的頂部包含圖示,允許您啟動/停止logs記錄,指定開始日期,按消息類型篩選logs,以及搜尋logs。搜尋欄位包含一個子選單,允許您匹配大小寫、整個單詞,並使用正則表達式。

當您將滑鼠停在logs上時,會出現圖示,允許您查看該消息的源程式碼或到相對應的圖表欄:

當圖表上的多個腳本使用logs時,每個腳本都會維護自己的一組消息。您可以使用 Pine logs窗格頂部的下拉選單,在每個腳本的日誌之間切換:

要了解最新的Pine Script®功能,請關注用戶手冊的發行說明PineCoders帳戶透過Telegram上的Squawk BoxTwitter帳戶以及TradingView上的Pine Script® Q&A公共聊天室更新。

我們希望您發現這個功能很實用,並且請繼續向我們發送您的反饋和建議,以便我們能夠使該平台成為最好的。我們為您建構TradingView,我們始終渴望聽到您的想法。

— TradingView團隊

Look first Then leap

TradingView專門為您打造,請確保您充分利用我們出色的功能
開啟圖表