ダイナミックストップロストレーリング戦略


作成日: 2024-02-01 11:05:36 最終変更日: 2024-02-01 11:05:36
コピー: 1 クリック数: 576
1
フォロー
1617
フォロワー

ダイナミックストップロストレーリング戦略

概要

この戦略は,特定の日付でトリガーされた多頭ポジションの構築と,trailing stop lossのリスク管理機構の策略である.この戦略は,特定のカレンダー日付でポジションの自動化に入力したい,およびストップを追跡するなどのダイナミックなリスク管理方法によってポジションを管理したいトレーダーに特に適用されます.

戦略原則

この戦略は,まず,月日を含む特定の入場日を入力し,それらの日付に基づいて正確な入場時間を計算します. 戦略は,ストップロスを追跡するパーセントパラメータも入力します.

入札日の当日,戦略は多頭ポジションを開きます.同時に,最高価格highestPriceとストップ損失価格stopLossを記録します.その中でも最高価格は次々と更新され,ストップ損失価格は最高価格の一定パーセントで下方にトラリングします.

価格が止損価格より低ければ,平仓退出する.そうでなければ,ポジションが維持され,止損価格は最高価格に基づいて継続的に下向きを追跡し,利益をロックし,リスクを制御する.

優位分析

この戦略には以下の利点があります.

  1. 特定の日付で自動化できる. 大事なイベントの取引をめぐる戦略に適している.
  2. ストップ・ロスを追跡し,利潤を動的に固定し,リスクを効果的に管理する.
  3. 止損は比例して設定され,操作は簡単で直感的です. 止損幅をカスタマイズできます.
  4. 株価の上昇から最大利益を得るために,長期にわたって株を保有することができます.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. ストップ・損失効果のリスクがある.短期的にストップ・損失線を超えて大幅に下落すると,反発し,ストップ・損失出場され,その後の反発には参加できない.
  2. 最大損失を制限することはできません.追跡停止比率が大きすぎると,最大損失は理想的な範囲を超えることがあります.

対応する最適化策

  1. 他の指標と組み合わせて,大盤が調整に直面すると判断し,一時的にストップ・ローズを追跡を停止し,ストップ・ローズの効果を回避する.
  2. トラッキングストップレスの設定は慎重に,通常10%を超えてはならない。または最大許容される損失値を設定する。

最適化の方向

この戦略は以下の方向から最適化できます.

  1. ストップメカニズムを増やす. 価格が一定レベルを超えると,例えば50%上昇すると,部分的にまたは完全に利益が取られる.
  2. 指数指標と組み合わせて市場構造を判断し,ストロップの幅を最適化します.例えば,大盘が震動調整中に幅を適切に緩めることができます.
  3. ポジション管理モジュールを追加する.価格が新たな高を突破すると,ポジションを高め,さらに利益を増やすことを検討する.

要約する

この戦略は,特定の日付で市場に出入りし,ストップを追跡する考え方を採用し,入場を自動化し,リスクを動的に制御できます.戦略は,シンプルで直感的で,操作が簡単で,長線保有に適しています.さらに最適化することで,非常に実用的な量化取引戦略になることができます.

ストラテジーソースコード
/*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)