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

トレンドフィルターと例外出口のスムーズな移動平均ストップ・ロスト&テイク・プロフィート戦略

作者: リン・ハーンチャオチャン,日付: 2024-06-03 16:54:04
タグ:SMARSITRマルチTPSL

img

概要

この戦略は,スムーズ・ムービング・アベア (SMA),相対強度指数 (RSI),真のレンジ (TR),ボリューム・ムービング・アベア (Volume MA) などの指標を,トレンドフィルター,ボリューム,変動条件と組み合わせて,特定の基準を満たしたときに取引を実行する.この戦略の背後にある主なアイデアは,価格がSMA200を下回り,トレンドが下がり,ボリュームと変動の両方が低いときにロングポジションに入ることである.ストップ・ロストとテイク・プロフィートレベルはエントリー時に設定される.さらに,この戦略には例外的な出口メカニズムが含まれ,RSIが70を超えたとき,または事前設定されたストップ・ロストまたはテイク・プロフィートレベルに達したときにポジションを閉じる.

戦略の原則

  1. SMA,RSI,Volume MA,TR MAなどの指標を計算する
  2. 現在のトレンドが上昇するか下落するか判断する
  3. 現在のボリュームと波動性が低いかどうかを確認します.
  4. 価格がSMA200を下回り,低ボリュームと変動条件が満たされている場合,ロングポジションを入力します.
  5. ストップ・ロスは入場価格の95%と,テイク・プロフィートは150%に設定します.
  6. RSIが70を超えると取引を終了するか,既定のストップ・ロースまたはテイク・プロフィートレベルに達すると取引を終了する
  7. 傾向が変化し,価格がSMAを突破するとポジションを強制的に閉じる.

利点分析

  1. この戦略は複数の技術指標を組み合わせて,市場情勢をより包括的に分析します
  2. トレンドフィルターとボリューム/波動性条件は,不利な市場環境での取引を避けるのに役立ちます
  3. 明確なストップ・ロスのレベルを設定し,利益を引き出すことは,リスクを効果的に管理します
  4. 特殊な状況において,別の損失を防ぐために,例外離脱メカニズムにより,ポジションを適時に閉じることができる.

リスク分析

  1. パラメータ設定の選択によって戦略のパフォーマンスが影響される可能性があります.
  2. 価格が急激に逆転する場合もあります
  3. 戦略は基本的要因を考慮せず,重要な出来事によって影響を受ける可能性があります.

オプティマイゼーションの方向性

  1. 入口と出口の精度を向上させるために,MACD,ボリンジャー帯など,追加の技術指標を組み込むことを検討する.
  2. トレーリングストップやダイナミック・テイク・プロフィートの利用など,ストップ・ロスの設定を最適化
  3. 異なる市場状況に基づいて戦略パラメータを動的に調整する
  4. ポジションサイズとマネーマネジメントを含むリスク管理モジュールを導入する

概要

この戦略は,トレンドフィルター,ボリューム,変動条件と複数の技術指標を組み合わせ,特定の状況で取引を実行する.明確なストップ損失と利益のレベルを設定し,例外退出メカニズムを実装することによって,戦略は効果的にリスクを管理する.しかし,パラメータ選択や市場異常などの要因がパフォーマンスに影響を与える可能性があるため,戦略には一定の制限があります.より多くの指標を組み込み,パラメータ設定を最適化し,リスク管理コンポーネントを追加することで,将来の改善を行うことができます.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategia Stop Loss & Take Profit z Filtrem Trendu i Wyjątkiem", shorttitle="Smooth MA SL & TP with Exception", overlay=true)

// Parametry
tp_multiplier = input.float(1.5, title="Mnożnik Take Profit")
sl_percent = input.float(5, title="Procent Stop Loss")
wait_bars = input.int(3, title="Liczba Oczekiwanych Świec")
sma_period = input.int(200, title="Okres SMA")
rsi_period = input.int(14, title="Okres RSI")
vol_ma_period = input.int(20, title="Okres Średniej Wolumenu")
tr_ma_period = input.int(20, title="Okres Średniej Rzeczywistego Zakresu")

// Obliczenie Gładkiej Średniej Kroczącej
sma = ta.sma(close, sma_period)

// Obliczenie RSI
rsi = ta.rsi(close, rsi_period)

// Filtr Trendu
uptrend = close > sma
downtrend = close < sma

// Warunek konsolidacji: Niski wolumen i niska zmienność
niski_wolumen = volume < ta.sma(volume, vol_ma_period)
niska_zmienosc = ta.tr(true) < ta.sma(ta.tr(true), tr_ma_period)

// Warunek Wejścia (Long): Cena poniżej SMA 200 i filtr trendu w strefie czerwonej
warunek_wejscia = close < sma and niski_wolumen and niska_zmienosc and not uptrend

// Warunek Wyjścia ze strategii
warunek_wyjscia = downtrend and close > sma and ta.crossover(close, sma)

// Ustalanie Stop Loss i Take Profit
var float stop_loss = na
var float take_profit = na

var int indeks_wejscia = na

if (warunek_wejscia)
    stop_loss := close * (1 - sl_percent / 100)
    take_profit := close * (1 + tp_multiplier)
    indeks_wejscia := bar_index

// Handel
if (warunek_wejscia)
    strategy.entry("Long", strategy.long)

// Warunek Wyjścia: RSI w strefie wykupienia lub Stop Loss/Take Profit
if (strategy.opentrades != 0)
    if (rsi > 70)
        strategy.exit("Take Profit/Stop Loss", "Long", limit=take_profit)
    else if (bar_index - indeks_wejscia == wait_bars)
        strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss, limit=take_profit)

// Wyjątek: Warunek Wyjścia z Longów na podstawie zmiany trendu
if (warunek_wyjscia)
    strategy.close("Long")

// Rysowanie RSI
rsi_plot = plot(rsi, title="RSI", color=color.blue)

// Rysowanie Gładkiej Średniej Kroczącej
sma_plot = plot(sma, color=color.gray, title="Smooth MA", linewidth=2)

// Rysowanie Filtru Trendu
fill(sma_plot, rsi_plot, color=downtrend ? color.new(color.red, 90) : na)


関連性

もっと