資源の読み込みに... 荷物...

追跡ストップ損失のSSLチャネルブレークアウト戦略

作者: リン・ハーンチャオチャン開催日:2023年10月25日17時40分37秒
タグ:

img

概要

この戦略は,SSLチャネルインジケーターを使用して,トレンド方向とトレードブレイクをモメンタムで識別する.価格はSSL上部帯を超えるとロングになり,SSL下部帯を下回るとショートする.移動ストップ損失とトレーリングストップ損失はリスクを制御するために使用される.

戦略の論理

  1. 高値と低値の SMA を使って N 期間の SSL チャネルの上下帯を計算する.

  2. 接近が上部帯以上で 短い信号が下部帯下にあるとき 長い信号を生成します

  3. 損失を制限するために,入力後に反対の帯で固定ストップ損失を設定します.

  4. 価格動きをフォローするストップロスを設定して 利益をロックします

  5. 価格が固定ストップ・ロースか トレイリング・ストップ・ロースに当たると退場します

利点

  1. チャンネルインジケーターを使って 傾向の方向を判断し 誤ったブレイクを避ける

  2. ダブルストップ・ロスは 利益とリスクのコントロールを組み合わせます

  3. 高い取引頻度は超短期取引に適しています

  4. 柔軟なパラメータは 個人的な取引スタイルに適応できます

  5. 自動で長/短を検知します 方向判断は必要ありません

リスク

  1. 短期取引は ニュースショックや高波動に易い

  2. 固定ストップ損失は,ブレイク後に過大損失を引き起こす可能性があります.

  3. 誤ったストップ損失は 早期出口につながる可能性があります

  4. チャンネルが壊れ 誤った信号に敏感だ

  5. 経験豊富な短期トレーダーにのみ適しています

解決策:

  1. 合理的な固定ストップ損失を設定し,取引ごとに損失を制限する.

  2. 遅いストップ・ロスのレベルを最適化して 早期離脱を避ける

  3. 音量フィルターを追加して 真の突破を確認します

  4. ポジションのサイズを管理し リスクをコントロールします

最適化

  1. 最適の長さを見つけるために SMA 期間を最適化します.

  2. BB,KDなどなど

  3. ボリュームインジケーターを追加して 突破の信頼性を確認します

  4. 低量の偽ブレイクを避けるために ターンオーバーレートを考慮してください

  5. 最適な出口タイミングを見つけるために 異なる保持期間をテストします

  6. 固定・ストップ・ロスト・パラメータをテストする

  7. 資本効率を最大化するために ポジションサイズ戦略を調整する

概要

この戦略は,SSLチャネル方向バイアスとブレイアウト信号を組み合わせ,デュアルストップ損失管理を備えています.トレンドを把握するために迅速に対応し,高周波取引に適しています.偽ブレイアウトに注意して,ストップ損失メカニズムを精製し,ポジションサイズを制御してください.さらなる最適化により,効果的な超短期取引戦略になる可能性があります.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SSL Channel Cross with Trailing Stop and Stop Loss", overlay=true)

period = input(title="Period", defval=10)
len = input(title="Length", defval=10)
smaHigh = sma(high, len)
smaLow = sma(low, len)

Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]

sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)

longCondition = crossover(sslUp, sslDown)
shortCondition = crossunder(sslUp, sslDown)

// Define el tamaño del trailing stop en puntos (ajusta según tu preferencia)
trailingStopSize = input(title="Trailing Stop Size (in Points)", defval=10)

var float trailingStopPrice = na
var float stopLossPrice = na

if (longCondition)
    // Si se cumple la condición de compra, configura la posición larga, el trailing stop y el stop loss
    strategy.entry("Long", strategy.long)
    trailingStopPrice := low - trailingStopSize
    stopLossPrice := sslDown

if (shortCondition)
    // Si se cumple la condición de venta corta, configura la posición corta, el trailing stop y el stop loss
    strategy.entry("Short", strategy.short)
    trailingStopPrice := high + trailingStopSize
    stopLossPrice := sslUp

// Calcula el trailing stop
if (strategy.position_size > 0)
    trailingStopPrice := max(trailingStopPrice, stopLossPrice)
    if (close < trailingStopPrice)
        strategy.close("ExitLong", comment="Trailing Stop Long")

if (strategy.position_size < 0)
    trailingStopPrice := min(trailingStopPrice, stopLossPrice)
    if (close > trailingStopPrice)
        strategy.close("ExitShort", comment="Trailing Stop Short")


もっと