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

상대적으로 강한 지수 RSI와 이동 평균SMA의 변동률 기준에 기초한 나쁜 DEV 거래 전략

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

基于相对强弱指数RSI和滑动平均SMA的波动率标准差DEV交易策略

개요

이 파인 스크립트 전략은 상대적으로 강한 지표 RSI와 가격의 변동률 기준차차 DEV에 기반하여, 가격과 상하 궤도를 비교하여 입점을 판단하고, RSI를 보조 필터링 지표로 사용하며, 가격이 상하 궤도를 만지고 RSI가 오버사이드 영역에 도달하면 시장을 열고, 가격이 역으로 궤도를 돌파하거나 RSI가 역으로 오버사이드 영역에 도달하면 평형화됩니다. 이 전략은 시장의 변동 상황에 따라 동적으로 조정할 수 있으며, 변동률이 높을 때 적시에 손실을 멈추고 변동률이 낮을 때 수익을 올릴 수 있으며, 다른 시장 상태에 적응할 수 있는 정량화 거래 전략입니다.

전략적 원칙

  1. 값은 지난 길이 사이클의 이동 평균SMA와 표준격차DEV를 계산한다.
  2. 중축으로 SMA, 궤도로 SMA+thresholdEntry*DEV, 궤도 아래로 SMA-thresholdEntry*DEV로 변동률 통로를 구축한다.
  3. 또한 지난 rsiLength 사이클의 종료 가격의 RSI 지표를 계산합니다.
  4. 가격이 상향 경로를 돌파하고 RSI가 오버솔드 (rsiOversold) 의 판매 한계보다 작을 때, 오버솔드 신호가 발생한다.
  5. 가격이 하향 경로를 돌파하고 RSI가 구매 한계 rsiOverbought보다 커지면 오픈 포지션 신호가 생성됩니다.
  6. 중축으로 SMA, 궤도 위로 SMA+thresholdExit*DEV, 궤도 아래로 SMA-thresholdExit*DEV로 또 다른 좁은 출구 통로를 구성한다.
  7. 오버 포지션을 할 때, 가격이 하향으로 돌파하거나 RSI가 구매 한계보다 크면 오버 포지션이다.
  8. 빈 포지션을 보유할 때, 가격이 상향으로 돌출하거나 RSI가 oversold 문턱보다 작으면 빈 포지션을 평면한다.

장점 분석

  1. 또한 가격 행동과 동력 지표가 보조 판단을 사용하여 잘못된 신호를 효과적으로 필터링 할 수 있습니다.
  2. 변동률을 동적으로 조정하여 채널 폭을 조정하여 전략이 다른 시장 상태에 적응 할 수 있습니다.
  3. 두 개의 통로를 설정하여 가격 반전 초기부터 손실을 멈추고 유지를 제어하고 추세가 형성된 후에도 수익을 유지할 수 있습니다.
  4. 코드 로직과 매개 변수 설정은 명확하고 이해하기 쉽고 최적화됩니다.

위험 분석

  1. 시장이 일방적인 경향을 계속하는 경우, 이 전략은 손실을 너무 빨리 멈추고, 트렌드 수익을 놓칠 수 있다.
  2. 매개 변수 설정은 전략 성능에 큰 영향을 미치며, 다른 품종과 시기를 위해 매개 변수를 개별적으로 최적화해야합니다.
  3. 이 전략은 불안한 시장에서 더 유리하며, 트렌드 시장은 일반적으로 수행됩니다. 장기 트렌드가 갑자기 반전되면 전략은 더 큰 역전을 일으킬 수 있습니다.
  4. 지표의 자산 변동률이 급격히 변하면 고정된 매개 변수 설정이 무효가 될 수 있다.

최적화 방향

  1. 추세 판단 지표를 도입하여 추세와 변동 시장을 구분하는 데 다른 매개 변수 설정을 사용할 수 있습니다.
  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")




관련 내용

더 많은 내용