리소스 로딩... 로딩...

표준편차 DEV 거래 전략 상대적 강도 지표 RSI 및 간단한 이동 평균 SMA를 기반으로

저자:차오장, 날짜: 2024-05-28 10:57:06
태그:RSISMADEV

img

전반적인 설명

이 파인 스크립트 전략은 상대 강도 지수 (RSI) 와 가격 변동성의 표준편차 (DEV) 를 기반으로 합니다. 그것은 RSI를 보조 필터링 지표로 사용하면서 상위와 하위 대역과 가격을 비교하여 엔트리 포인트를 결정합니다. 가격이 하위 대역 이상과 RSI가 과판 한계 이하로 떨어지면 긴 엔트리 신호를 생성하고 가격이 상위 대역 이하로 떨어지면 짧은 엔트리 신호를 생성하고, RSI가 과판 한계 이상과 RSI가 과반 한계 이하로 떨어지면 짧은 엔트리 신호를 생성합니다. 이 전략은 가격이 출구 하위 대역 이하로 떨어지면 긴 엔트리 포인트를 닫고, 출구 상위 대역 이상이나 RSI가 과판 한계 이하로 떨어지면 짧은 포지션을 닫습니다. 이 전략은 시장 조건에 따라 동적으로 조정할 수 있으며, 높은 변동성 시간 및 낮은 변동성 시간 동안 지위를 보유하여 수익을 줄일 수 있습니다. 이 전략은 높은 변동성 시간 및 낮은 변동성 기간 동안 다양한 거래 지위를 위한 수량적 손실을 줄일 수 있습니다.

전략 원칙

  1. 지난 레인지 기간 동안 가격의 간단한 이동 평균 (SMA) 및 표준 편차 (DEV) 를 계산합니다.
  2. 중앙선, SMA+Threshold로 변동성 채널을 구성합니다.DEV는 상단역, SMA-Threshold로 입력DEV가 하단역으로
  3. 동시에 지난 rsiLength 기간 동안 종료 가격의 RSI 지표를 계산합니다.
  4. 가격이 하위 범위를 넘어서고 RSI가 과잉 판매 한계 이하가 되면, 긴 엔트리 신호를 생성합니다.
  5. 가격이 상단 범위를 넘어서고 RSI가 과잉 매수 마이너 rsiOverbought을 넘어서면, 짧은 엔트리 신호를 생성합니다.
  6. 중앙선으로 SMA를 가진 또 다른 좁은 출구 채널을 구축합니다.DEV는 상단역, 그리고 SMA-ThresholdExitDEV가 하단역으로
  7. 긴 포지션을 보유할 때, 가격이 출구 하단 범위를 넘거나 RSI가 과잉 구매 임계치를 초과하면 긴 포지션을 닫습니다.
  8. 쇼트 포지션을 보유할 때, 가격이 출구 상단 범위를 넘거나 RSI가 과잉 판매 한계 이하로 떨어지면 쇼트 포지션을 닫습니다.

이점 분석

  1. 보조 판단을 위해 가격 행동 및 추진력 지표를 모두 사용하여 잘못된 신호를 효과적으로 필터링 할 수 있습니다.
  2. 변동성에 따라 채널 폭을 동적으로 조정함으로써 전략은 다른 시장 상태에 적응할 수 있습니다.
  3. 두 개의 채널 세트를 설정함으로써 가격 반전 초기 단계에서 손실을 줄이고 인출을 제어 할 수 있으며 추세가 형성 된 후에도 수익을 위해 포지션을 유지할 수 있습니다.
  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")




관련

더 많은