每個 Pine 策略都有許多決定其行為的屬性:
它們在策略設置的“屬性”標籤中可用:
透過在相應的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)表示最初可用於交易策略的資金量,以基礎貨幣中定義的貨幣計。預設情況下,此值等於 100,000。您可能需要增加此值才能在某些商品上進行交易。
2 - 基礎貨幣(參數:currency)指定用於計算的貨幣。出現在策略測試器標籤中的結果(盈利、虧損、回撤等)以該貨幣表示。可用的選擇是:
預設、美元、歐元、澳元、英鎊、紐元、加元、瑞士法郎、港元、日元、挪威克朗、瑞典克朗、新加坡元、土耳其里拉、南非蘭特。如果選擇預設選項,該策略將使用該商品的預設貨幣,並且沒有貨幣轉換。
3 - 訂單數量(參數:default_qty_value、default_qty_type)。這需要一個值和一個計算模式。請注意,由於商品的最小可交易數量,計算值可能會受到限制:
4 - 金字塔式(參數: pyramiding)指定在同一方向上允許的最大連續掛單數。當金字塔式被禁用時,即使滿足入場條件,該策略也只能開設一個多頭或空頭倉位。金字塔只影響使用 strategy.entry() 函數建立的掛單。它對使用 strategy.order() 建立的訂單沒有影響。
5 - 手續費(參數:commission_type、commission_value)。它是為每筆交易支付的交易費用金額。必須提供值和計算模式。請注意,佣金適用於進場和出場,當使用百分比時,計算的佣金將隨交易價值而變化:
6 - 對限價單核對價格(參數:backtest_fill_limits_assumption)讓使用限價訂單開倉的條件更加嚴格。預設情況下,此值為 0,即一旦達到訂單中指示的價格,就會根據歷史數據執行限價訂單。如果該參數不為零,則限價訂單只有在市場價格超過限價訂單水平指定的tick數時才能在K線內建倉。
7 - 滑點(參數:slippage)指定要增加到市價單或止損單的成交價的tick值。它可以用來解釋點差。
8 - 多頭和空頭倉位保證金(參數:margin_long、margin_short)指定每筆交易的保證金,即交易者必須注資的倉位百分比。例如:如果多頭倉位的保證金設置為25%,則交易者必須有足夠的資金來支付25%的未平倉交易,並且有可能在每筆交易中花費高達400%的權益。
如果交易已經開立並且開始虧損,以至於交易者的資金不足以支付他們的部分交易,則會發生追加保證金並強制清算部分原始倉位。要被清算的確切單位金額是一般彌補損失金額的4倍。它透過以下算法計算:
1.計算已花費金額,即交易者在開倉時花費的金額。
倉位大小*進場價
2.計算證券市值(MVS)。
倉位大小*當前價格
3.計算未平倉利潤。如果交易方向為空頭且未平倉利潤為正數,則結果仍應為負數,因此我們將計算的絕對值乘以-1。
ABS(MVS - 花費的錢)* -1
4.計算權益,即交易者當前可用的資金。
初始資本+淨利潤+未结盈利
5.將保證金百分比轉換為保證金比率。
保證金百分比/100
6.計算保證金,即支付未平倉倉位部分所需的確切金額。
MVS *保證金比率
7.計算可用資金,即交易者無法用其當前資產彌補的損失金額。
淨值-保證金
8. 計算交易者損失的總金額。
可用資金/保證金比率
9.計算交易者需要賣出多少單位來彌補損失。該值與當前商品的最小合約大小被截斷為相同的小數點。
截斷(第8步/當前價格)
10.計算經紀商將出售多少單位來彌補損失。我們的模擬經紀商賣出了4倍必要數量的單位,以確保在虧損持續時不會一直觸發追加保證金通知。該值對於空頭交易將是正值,因為經紀商購買單位是為了彌補損失而不是出售它們。
步驟#9 * 4
為了檢查這個計算,讓我們將內部設定的超級趨勢策略增加到NASDAQ:TSLA圖表的一維時間軸上。將訂單大小設定為300%的權益,將多頭倉位的保證金設定為25%。
我們的第一次進場發生在2010年9月16日開盤時。我們以4.43美元(進場價)買入682438單位(倉位大小)。然後,在2010年9月23日,當價格為3.9(當前價格)時,111052個單位被強制平倉。
1.花費金額: 682438 * 4.43 = 3023200.34
2.MVS: 682438 * 3.9 = 2661508.2
3.未結盈利: −361692.14
4.權益: 1000000 + 0 − 361692.14 = 638307.86
5.保證金比率: 25 / 100 = 0.25
6.保證金: 2661508.2 * 0.25 = 665377.05
7.可用資金: 638307.86 - 665377.05 = -27069.19
8.虧損金額: -27069.19 / 0.25 = -108276.76
9.彌補損失:截斷(-108276.76 / 3.9) = 截斷(-27763.27) = -27763
10.追加保證金大小: -27763 * 4 = - 111052
9 - 重新計算 選項指定應重新計算策略的頻率。預設情況下,策略在每根K線收盤時重新計算,但使用以下選項也可以重新計算: