
Strategi ini adalah strategi untuk menubuhkan kedudukan berbilang kepala dengan trigger tarikh tertentu dan mekanisme pengurusan risiko trailing stop loss. Strategi ini sangat sesuai untuk pedagang yang ingin memasuki kedudukan secara automatik mengikut tarikh kalendar tertentu dan menguruskan kedudukan mereka dengan kaedah kawalan risiko dinamik seperti pengesanan berhenti.
Strategi ini mula-mula memasukkan tarikh masuk ke pasaran tertentu, termasuk hari bulan, dan kemudian mengira masa masuk yang tepat berdasarkan tarikh tersebut. Strategi ini juga memasukkan parameter peratusan untuk mengesan kerugian berhenti.
Pada tarikh masuk ke pasaran, strategi akan membuka kedudukan berbilang mata. Pada masa yang sama, rekod harga tertinggi dan harga berhenti kehilangan. Di mana harga tertinggi akan terus diperbaharui pada masa akan datang, dan harga berhenti kehilangan adalah mengikut peratusan harga tertinggi ke bawah.
Jika harga lebih rendah daripada harga berhenti, ia akan keluar dari kedudukan kosong. Jika tidak, ia akan terus dipegang, dan harga berhenti akan terus mengikuti ke bawah berdasarkan harga tertinggi, untuk mengunci keuntungan dan mengawal risiko.
Strategi ini mempunyai beberapa kelebihan utama:
Strategi ini mempunyai beberapa risiko:
Langkah-langkah pengoptimuman:
Strategi ini boleh dioptimumkan dalam beberapa arah:
Strategi ini berdasarkan pada tarikh tertentu dan menggunakan pemikiran untuk mengesan kerugian, dapat mengotomatiskan masuk dan mengawal risiko secara dinamik. Strategi ini mudah dilihat, mudah dikendalikan, sesuai untuk memegang kedudukan panjang. Dengan pengoptimuman lanjut, ia boleh menjadi strategi perdagangan kuantitatif yang sangat praktikal.
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Trailing Stop Loss Percent",
overlay=true, pyramiding=1)
// Input for the specific entry date
entryDay = input.int(defval = 1, title = "Entry Day", minval = 1, maxval = 31)
entryMonth = input.int(defval = 1, title = "Entry Month", minval = 1, maxval = 12)
entryYear = input.int(defval = 2023, title = "Entry Year", minval = 1970)
// Calculate the entry date timestamp
entryDate = timestamp(entryYear, entryMonth, entryDay, 00, 00)
// Trailing Stop Loss Percentage
trailStopPercent = input.float(defval = 5.0, title = "Trailing Stop Loss (%)", minval = 0.1)
// Entry Condition
enterTrade = true
// Variables to track the highest price and stop loss level since entry
var float highestPrice = na
var float stopLoss = na
// Update the highest price and stop loss level
if strategy.position_size > 0
highestPrice := math.max(highestPrice, high)
stopLoss := highestPrice * (1 - trailStopPercent / 100)
// Enter the strategy
if enterTrade
strategy.entry("Long Entry", strategy.long)
highestPrice := high
stopLoss := highestPrice * (1 - trailStopPercent / 100)
// Exit the strategy if the stop loss is hit
if strategy.position_size > 0 and low <= stopLoss
strategy.close("Long Entry")
// Plotting the stop loss level for reference
plot(strategy.position_size > 0 ? stopLoss : na, "Trailing Stop Loss", color=color.red)