
この戦略は,特定の日付でトリガーされた多頭ポジションの構築と,trailing stop lossのリスク管理機構の策略である.この戦略は,特定のカレンダー日付でポジションの自動化に入力したい,およびストップを追跡するなどのダイナミックなリスク管理方法によってポジションを管理したいトレーダーに特に適用されます.
この戦略は,まず,月日を含む特定の入場日を入力し,それらの日付に基づいて正確な入場時間を計算します. 戦略は,ストップロスを追跡するパーセントパラメータも入力します.
入札日の当日,戦略は多頭ポジションを開きます.同時に,最高価格highestPriceとストップ損失価格stopLossを記録します.その中でも最高価格は次々と更新され,ストップ損失価格は最高価格の一定パーセントで下方にトラリングします.
価格が止損価格より低ければ,平仓退出する.そうでなければ,ポジションが維持され,止損価格は最高価格に基づいて継続的に下向きを追跡し,利益をロックし,リスクを制御する.
この戦略には以下の利点があります.
この戦略にはいくつかのリスクがあります.
対応する最適化策
この戦略は以下の方向から最適化できます.
この戦略は,特定の日付で市場に出入りし,ストップを追跡する考え方を採用し,入場を自動化し,リスクを動的に制御できます.戦略は,シンプルで直感的で,操作が簡単で,長線保有に適しています.さらに最適化することで,非常に実用的な量化取引戦略になることができます.
/*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)