策略屬性

每個Pine策略都有一些屬性,這些屬性決定了它的行為:

  1. 初始資本
  2. 基礎貨幣
  3. 訂單大小
  4. 金字塔式
  5. 佣金
  6. 為限價單核對價格
  7. 滑點
  8. 保證金
  9. 重新計算
  10. 填寫訂單

它們可以在策略設定中的"屬性"頁籤中找到:


在策略屬性中指定的每個參數,都可以透過編輯對應Pine腳本中呼叫strategy()函數的引數來進行更改:

strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick) 

下面我們來看看屬性選單中,各個輸入參數及其在Pine語法中對應的參數:

1 - 初始資本(參數:initial_capital) 表示初始可用於交易策略的資金量,以基礎貨幣中定義的貨幣表示。預設情況下,此值等於1,000,000。您可能需要增加此值,才能在某些商品上進行交易。

2 - 基礎貨幣(參數:currency) 指定用於計算的貨幣。策略模擬器頁籤中出現的結果(盈利、虧損、回撤等)以該貨幣表示。可用的選擇是:

預設值、美元、歐元、澳元、英鎊、紐西蘭元、加元、瑞士法郎、港元、日元、挪威克朗、瑞典克朗、新加坡元、土耳其里拉、南非蘭特。如果選擇了預設,策略將使用該商品的預設貨幣,並且沒有貨幣轉換。

3 - 訂單大小(參數:default_qty_value, default_qty_type)。這需要一個值和一個計算模式。請注意,由於商品的最小可交易數量,計算值可能會受到限制:

  • 合約(參數:strategy.fixed) - 該策略將以指定數量的合約/股票/手數進入。
  • 貨幣金額(參數:strategy.cash) - 該策略將以基礎貨幣指定的金額進入。
  • 淨值百分比(參數:strategy.percent_of_equity) - 當交易開啟時,部位大小將根據可用權益的百分比進行計算。

4 - 金字塔式(參數:pyramiding)。指定同一方向的最大連續K線數。停用金字塔式時,該策略只能開一個多頭或空頭部位,即使進場條件已滿足。金字塔式僅影響使用strategy.entry()函數創建的K線。它對使用strategy.order()創建的訂單沒有影響。

5 - 佣金(參數:commission_typecommission_value)。這是每筆交易所支付的交易費用。必須提供值和計算模式。請注意,佣金適用於進場和出場,並且當使用百分比時,計算出的佣金將隨交易價值而變化:

  • 交易價值百分比(參數:strategy.commission.percent) - 對每個訂單徵收等於指定百分比的佣金。
  • 每份合約的貨幣(參數:strategy.commission.cash_per_contract) - 對每份合約徵收佣金。
  • 每份訂單的貨幣(參數:strategy.commission.cash_per_order) - 對每份訂單收取佣金。

6 - 為限價單核對價格(參數:backtest_fill_limits_assumption)。使用限價訂單進場的條件更加嚴格。預設情況下,此值為0,一旦達到訂單中指示的價格,就會根據歷史數據執行限價訂單。如果參數不為0,僅當市場價格超過限價訂單水平指定的跳動數時,限價訂單才能在K線內建倉。

7 - 滑點(參數:slippage)。指定要增加到市價單或停損單的成交價的價格變動點值。它可以用來解釋價差。

8 - 多頭/空頭部位保證金參數:margin_long、margin_short)指定每筆交易的保證金,即交易者必須提供資金的部位百分比。例如:如果多頭部位的保證金設定為25%,則交易者必須有足夠的資金來覆蓋25%的未平倉交易,並且有可能在每筆交易中花費高達400%的淨值。如果一筆交易已經開始,並且開始虧損,而交易者的資金不足以支付其部分交易,則會發生追加保證金通知,並強制清算部分原始部位。您可以在這篇幫助中心文章中,了解有關此功能及計算方式的更多資訊。

9 - 重新計算選項指定重新計算策略的頻率。預設情況下,該策略會在每個K線收盤時重新計算,但使用以下選項也可以重新計算:

  • 訂單成交後參數:calc_on_order_fills)- 允許策略在訂單成交後,立即執行額外的K線內訂單計算。額外的計算發生在歷史K線和實時K線上。
  • 在每個Tick上參數:calc_on_every_tick)。預設情況下,策略僅根據即時K線的收盤價進行計算。此參數允許策略對即時K線的每次更新進行計算,就像指標一樣。請注意,刷新圖表時,Tick數據會遺失,因此使用此選項的策略將重新繪製。此參數不會影響歷史K線上策略的行為。另請注意,使用此功能的策略不會在歷史K線上顯示實際結果,因為它們不包含報價數據。

10 - 填寫訂單

  • 使用K線放大器參數:use_bar_magnifier)- 指示經紀商模擬器在歷史回測期間使用更精確、更低的時間範圍價格,以獲得更真實的結果。請在幫助中心了解有關此功能的更多資訊。
  • K線關閉時參數:process_orders_on_close)。如果為true,則該策略會在K線收盤且策略計算完成後產生額外的執行訂單嘗試。如果訂單是市價訂單,經紀商模擬器會在下一個K線開盤之前執行它們。如果訂單與價格相關,則只有在滿足價格條件時才會執行。如果您希望在創建訂單的同時執行訂單,則此選項非常有用:預設情況下,訂單在當前K線的收盤價時創建,並在下一個K線的開盤價時執行;啟用此設定後,它們將在建立訂單的相同收盤價處執行。請注意,在建立訂單的相同時間點入倉可能會產生誤導,因為這在實際交易中是不可能實現的。
  • 使用標準OHLC(參數:fill_orders_on_standard_ohlc)強制在Heikin Ashi圖表上運行的策略使用實際OHLC價格填寫訂單,以獲得更現實的結果。預設情況下,策略腳本使用圖表的價格填寫訂單,無論圖表類型為何。對於Heikin Ashi圖表,此設定可防止使用可能與現實不符的合成價格。例如:我們將這項策略應用於每日NASDAQ:AAPL Heikin Ashi圖表,並於2023年9月25日以175.61美元的合成價格填寫了訂單。然而,在啟用「使用標準OHLC」選項後,同一訂單以174.20美元的標準圖表價格成交。