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

標準偏差 DEV 取引戦略 相対強度指数 RSI と単純な移動平均 SMA をベースに

作者: リン・ハーンチャオチャン開催日:2024年5月28日 10:57:06
タグ:RSISMADEV

img

概要

このパインスクリプト戦略は,相対強度指数 (RSI) と価格変動の標準偏差 (DEV) をベースにしています.RSIを補助フィルタリング指標として使用しながら,上下帯と価格を比較することでエントリーポイントを決定します.価格は下帯を超え,RSIは過売値を下回ると,ロングエントリー信号を生成し,価格が上下帯を超え,RSIは過売値を下回ると,ショートエントリー信号を生成します.価格は出口下帯を下回ると,RSIが過売値を超えるとロングを閉じて,出口上下帯を超え,RSIが過売値を下回るとショートポジションを閉じて,この戦略は市場変動状況に応じて動的に調整し,高波動期間の間波動性や低波動期間の間波動性のあるポジションを保持し,さまざまな取引状況に適応することができます.これは市場損失を削減する定量的な戦略です.

戦略原則

  1. 過去の期間の価格の単純な移動平均値 (SMA) と標準偏差値 (DEV) を計算する.
  2. 中央線としてSMAと,SMA+threshold を使った変動チャネルを構築しますDEVは上部帯とSMA-thresholdとして入力DEVは下部帯です
  3. 過去のrsiLength期間の閉店価格のRSI指標を同時に計算する.
  4. 価格が下帯を突破し,RSIが過売値rsiOversoldを下回ると,ロングエントリー信号を生成します.
  5. 価格が上位帯を下回り,RSIが過買い値を超えると rsiOverboughtは短入口信号を生成します.
  6. SMAを中心線として,SMA+thresholdExit と別の狭い出口チャネルを構築します.上部帯としてDEVとSMA-thresholdExitDEVは下部帯です
  7. ロングポジションを保持する際に,価格が出口下の帯を下回り,またはRSIが過剰購入の値を超えるとロングポジションを閉じる.
  8. ショートポジションを保持する際に,価格が出口上部帯を超えたり,RSIが過売値を下回った場合,ショートポジションを閉じる.

利点分析

  1. 補助的な判断のために価格行動とモメント指標の両方を利用することで 誤った信号を効果的にフィルタリングすることができます
  2. この戦略は,波動性に基づいてチャネル幅を動的に調整することで,異なる市場状態に適応することができます.
  3. 2つのチャネルを設定することで 価格逆転の初期段階での損失を削減し 引き下げを制御し 傾向が形成された後も利益を得るためにポジションを維持できます
  4. コードロジックとパラメータ設定は明確で理解し最適化しやすい.

リスク分析

  1. 市場が一方的なトレンドを続ける場合 戦略は損を早すぎるほど削減し トレンド利益を逃す可能性があります
  2. パラメータ設定は戦略のパフォーマンスに大きな影響を与え,パラメータ最適化は異なる品種と時間枠で別々に実行する必要があります.
  3. この戦略は,振動する市場においてより良く,傾向する市場において平均的にうまく機能する.長期的トレンドが突然逆転した場合,戦略はより大きな引き下げを経験する可能性があります.
  4. 基本資産の変動が劇的に変化すると,固定パラメータ設定が無効になる可能性があります.

最適化方向

  1. トレンドと振動市場を区別するために,長期短期間の移動平均クロスオーバー,ADXなど,トレンド判断指標を導入し,異なるパラメータ設定を使用してみてください.
  2. ATRなどのより適応性の高い変動指標を使用して,変動チャネルの幅を動的に調整することを検討する.
  3. ポジションを開く前に,価格動向の傾向判断を行い,反傾向取引を避けるために,価格動向が明確な傾向にあるかどうかを検出します.
  4. 遺伝子アルゴリズム,グリッド検索,その他の方法を使用して,異なるパラメータの組み合わせを最適化し,最適なパラメータ設定を見つけます.
  5. リスクリスクを制御するために,長期と短期のパラメータ設定を異なるものにする.

概要

この戦略は,RSI指標を参照しながら価格変動に基づいてエントリー・アウトシート決定を下すため,不安定性チャネルと相対強度指数を組み合わせます.短期的なトレンドをより良く把握し,損失を削減し,適時に利益を得ることができます.しかし,戦略のパフォーマンスはパラメータ設定に比較的敏感であり,異なる市場環境と底辺資産に最適化する必要があります.同時に,この戦略の利点を完全に活用するために,市場のトレンドを判断するのに役立つ他の指標を導入することを検討してください.全体的に,この戦略は明確なアイデア,厳密な論理,そして良い定量的な取引戦略です.


/*backtest
start: 2024-05-20 00:00:00
end: 2024-05-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tmalvao

//@version=5
strategy("Estratégia de Desvio Padrão com RSI", overlay=true, margin_long=100, margin_short=100)

// Parâmetros
length = input.int(20, title="Período do Desvio Padrão")
thresholdEntry = input.float(1.5, title="Limite de Entrada")
thresholdExit = input.float(0.5, title="Limite de Saída")
rsiLength = input.int(14, title="Período do RSI")
rsiOverbought = input.int(70, title="RSI Overbought")
rsiOversold = input.int(30, title="RSI Oversold")

// Cálculo do Desvio Padrão
price = close
stdDev = ta.stdev(price, length)

// Média Móvel Simples
sma = ta.sma(price, length)

// Limites baseados no Desvio Padrão
upperLimit = sma + thresholdEntry * stdDev
lowerLimit = sma - thresholdEntry * stdDev
exitUpperLimit = sma + thresholdExit * stdDev
exitLowerLimit = sma - thresholdExit * stdDev

// Cálculo do RSI
rsi = ta.rsi(price, rsiLength)

// Condições de Entrada com RSI
longCondition = ta.crossover(price, lowerLimit) and rsi < rsiOversold
shortCondition = ta.crossunder(price, upperLimit) and rsi > rsiOverbought

// Condições de Saída com RSI
exitLongCondition = ta.crossunder(price, exitLowerLimit) or rsi > rsiOverbought
exitShortCondition = ta.crossover(price, exitUpperLimit) or rsi < rsiOversold

// Plotar Linhas
plot(upperLimit, color=color.red, title="Limite Superior")
plot(lowerLimit, color=color.green, title="Limite Inferior")
plot(exitUpperLimit, color=color.orange, title="Limite de Saída Superior")
plot(exitLowerLimit, color=color.blue, title="Limite de Saída Inferior")
plot(sma, color=color.gray, title="SMA")
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)

// Estratégia de Trade
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (exitLongCondition)
    strategy.close("Long")

if (exitShortCondition)
    strategy.close("Short")




関連性

もっと