この戦略は,日付特有のトリガーとリスク管理のためのトライリングストップ損失メカニズムを持つロングポジションエントリのために設計されています.これは,特定のカレンダー日付に基づいてエントリを自動化し,トライリングストップ損失のようなダイナミックなリスク制御方法でポジションを管理したいトレーダーにとって特に役立ちます.
この戦略は,月と日を含む特定のエントリー日付の入力を最初に取り,これらの日付に基づいて正確なエントリータイムスタンプを計算します.また,トライリングストップ損失の百分比パラメータを入力します.
入力日に,ストラテジーはロングポジションを開く.同時に,最高価格 (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)