strategy.entry:開倉或反手
strategy.entry("Long", strategy.long) 用策略的預設大小開一個多單。如果你已經在做空,它會反手。字串 "Long" 是進場 id——每個方向必須唯一,出場才能對準它。
strategy.close:全部出場
strategy.close("Long") 關閉任何以 id「Long」進場的未平倉部位。strategy.close_all 則不管 id 關掉一切。
strategy.exit:停損與目標一起
strategy.exit 是做括號式停損與目標的主力:
strategy.entry("Long", strategy.long, when=ta.crossover(fast, slow))
strategy.exit("Long TP/SL", "Long", profit=200, loss=100)
profit 與 loss 預設以 tick 為單位——見 profit_type 與 loss_type 可以切換成 point、百分比、金額或 ATR 倍數。
百分比停損
strategy.exit("X", "Long", stop=close * 0.98, limit=close * 1.04) 設定 2% 停損與 4% 目標。這裡的 close 是進場那根 K 線的收盤價——Pine 會在下出場單時把那個值快照下來。
ATR 停損
atrVal = ta.atr(14)
strategy.exit("X", "Long", stop=close - 2 * atrVal, limit=close + 4 * atrVal)
這讓停損隨近期波動調整。許多零售 CFD 交易者用 1.5x–3x ATR 當停損。
移動停損
strategy.exit 支援 trail_points、trail_offset,以及一個 trail_price 觸發價。移動停損只朝對你有利的方向移動並鎖住獲利。當你想要騎一段趨勢、只在動能消退時出場,它是正確的工具。
冪等性
你可以在每一根 K 線呼叫 strategy.entry——Pine 知道如果部位已經在目標狀態就要跳過那個呼叫。strategy.exit 也一樣——連續設兩次相同的出場沒有問題。
反手
要在相反訊號上把多單翻成空單,只要呼叫 strategy.entry("Short", strategy.short)。Pine 會先關掉多單、再開空單,在一個合成操作裡完成。Pine 裡沒有「先關再進」的兩步驟。