トレンドベースのストップロス利益戦略


作成日: 2024-02-21 14:55:41 最終変更日: 2024-02-21 14:55:41
コピー: 0 クリック数: 629
1
フォロー
1617
フォロワー

トレンドベースのストップロス利益戦略

概要

この戦略の主な考えは,毎週の価格トレンドに基づいて多空方向を決定し,看板の場合,陽線形が現れた後に多入;価格が設定されたストップポイントまで上昇するとストップ,設定されたストップポイントまで下落するとストップ.

戦略原則

この戦略は,まず,毎週のトレンドを判断する条件を定義します.

isUptrend = close > close[1] 

isDowntrend = close < close[1]

もし現在の閉盤価格が前日の閉盤価格より大きいと判断すると,看板傾向と判断され,逆に下落する.

昼間の取引のシグナルを定義します.

buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

つまり,前日の閉盘価格が開盘価格 ((陽線),前日の開盘価格が前日の閉盘価格 ((ギャップ)) より大きく,多頭入場条件を満たすため,看板傾向にある.

入場後,ストップ・ロスは前日の閉店価格と前日の実物線長さの1.382倍を引くように設定されます.

stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen()) 

ストップポイントは,前日の閉店価格と閉店価格の差を2倍に増えた閉店価格に設定されます.

takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

損失の追還を実現するために

優位分析

この戦略の利点は以下の通りです.

  1. トレンドベースで取引し,逆転のデフォルトのリスクを避ける
  2. 日中の太陽線と穴の合体信号を用いて,多頭入院を早めに避ける
  3. ストップ・ローズを合理的に設定し,単一損失を制御する
  4. のスペースが大きく,収益の可能性がある.

リスク分析

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

  1. トレンドの逆転点が判らないので,100000000000000000000の転機を逃したかもしれない.
  2. ストップダメージが近づいてしまうと,セットされる可能性が高くなります.
  3. コストコントロールを考慮しない場合,取引頻度が高すぎると収益が低下する可能性があります.

これらのリスクを制御するために,以下の最適化を加えるのを考慮してください.

  1. ストップポイントの近くでトレーラーを設置し,ストップを追跡する
  2. コストコントロールモジュールが追加され,倉庫開設頻度が制限される.
  3. SUPPORT/RESISTANCEに対する判断を追加する

最適化の方向

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

  1. 移動平均の方向,取引量の変化など,より多くの要因に基づいてトレンドを判断します.
  2. 入り口信号を最適化し,より多くのK線形状を組み合わせる
  3. ダイナミック・トラッキング・ストップ・ストップ,価格変動に応じて自動調整
  4. ポジションの大きさを制御する量化モジュール
  5. 複数の時間周期の組み合わせで,より高度なトレンドフィルタを使用

要約する

この戦略は,全体として実用的で,核心構想はトレンド取引を突出し,同時にリスクを制御する. 昼間の短線取引の基本戦略として使用することも,異なる市場と品種に応じてモジュール化して最適化して,多様な取引ポートフォリオを実現することもできる. 実用的な適用では,コスト制御とリスク被覆防止に注意する必要があり,適切なマインドセットを維持することが重要です.

ストラテジーソースコード
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)

// Function to get previous day's close and open
getPrevDayClose() =>
    request.security(syminfo.tickerid, "D", close[1])

getPrevDayOpen() =>
    request.security(syminfo.tickerid, "D", open[1])

// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]

// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

// Strategy logic
if (isUptrend)
    strategy.entry("Buy", strategy.long, when = buyCondition)
    strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
    
if (isDowntrend)
    strategy.entry("Sell", strategy.short)

// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)

// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)