다중 지표 조정 장기 거래 전략

SMA SAR DOJI
생성 날짜: 2024-09-26 14:32:13 마지막으로 수정됨: 2024-09-26 14:32:13
복사: 1 클릭수: 421
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 지표 조정 장기 거래 전략

개요

이 양적 거래 전략은 여러 기술적 지표와 가격 행동을 기반으로 하는 긴 라인 거래 시스템이다. 그것은 주로 평행선, 패러블 라인 SAR 및 그래프 형식을 사용하여 잠재적인 구매 기회를 식별하고 여러 개의 탈퇴 조건을 사용하여 위험을 관리하고 수익을 잠금합니다. 이 전략의 핵심 아이디어는 시장이 상승 추세에있을 때 단기간의 과매 기회를 찾아서 구매하는 것이며 시장의 역동에 대응하기 위해 여러 가지 보호 장치를 설정합니다.

전략 원칙

  1. 입장 조건:

    • 가격은 200기 간단한 이동 평균 (SMA) 위에 위치해 있으며, 장기적인 상승세를 확인했다.
    • 3개 이상의 연속적인 선이 나타나면, 단기간에 과매매가 일어날 수 있음을 나타냅니다.
  2. 위험 관리:

    • 단편 거래의 위험을 제한하고 수익을 고정하기 위해 Stop Loss과 Stop Stop 비율을 사용한다.
  3. 탈퇴 조건:

    • 파란선 SAR 지표의 역전으로 단기적 추세가 바뀔 수 있음을 나타냅니다.
    • 5단계 SMA를 넘어가는 것은 단기 동력이 약해진다는 것을 나타냅니다.
    • 이 그래픽은 시장의 주저함을 나타냅니다.

전략은 여러 지표와 가격 행동을 결합하여 거래의 정확성과 안정성을 향상시킵니다. 200기 SMA는 장기적인 추세를 확인하는 데 사용되며, 연속적인 음은 단기간의 과매매를 식별하는 데 사용되며, SAR, 단기 SMA 및 십자별은 시장의 감정 변화를 적시에 포착하는 데 사용됩니다.

전략적 이점

  1. 다차원 분석: 장기적 추세, 단기적 과매매 및 여러 탈퇴 조건과 결합하여 시장 상황을 전체적으로 평가한다.

  2. 리스크 제어: 고정된 비율의 스톱로스 및 스팟을 사용하여 거래 당 리스크를 효과적으로 제어한다.

  3. 유연성: 사용자가 파라미터를 조정하여 전략을 최적화하여 다른 시장 환경에 적응할 수 있도록 한다.

  4. 적시에 퇴출: 여러 가지 퇴출 조건은 시장이 역전될 때 신속하게 청산하여 수익을 보호합니다.

  5. 트렌드 추적: 200주기 SMA를 통해 장기적인 트렌드를 확인하고 거래 성공률을 높인다.

  6. 과도한 거래를 방지하기: 연속적인 음의 수를 제한하고, 극단적인 하락에서 진입하는 것을 피한다.

전략적 위험

  1. 가짜 브레이크 위험: 시장이 짧은 반발 후 계속 하락하여 가짜 신호를 유발할 수 있습니다. 해결 방법: 거래량 확인이나 다른 동력 지표를 추가하는 것을 고려하십시오.

  2. 매개 변수 민감성: 정책 성능은 매개 변수 선택에 매우 민감할 수 있다. 해결 방법: 광범위한 역사 데이터 재검토를 통해 견고한 파라미터 조합을 찾습니다.

  3. 시장 환경 의존성: 불안정한 시장에서 부진할 수 있다. 해결 방법: 시장 환경 필터를 추가하고, 추세가 보이지 않을 때 거래를 중지하는 것을 고려하십시오.

  4. 슬라이드 포인트 및 수수료: 실제 거래에서, 자주 출입하는 것은 거래 비용의 증가로 이어질 수 있다. 해결책: 거래 빈도를 최적화하고, 지분 시간을 늘리는 것을 고려하십시오.

  5. 기술적인 지표에 지나치게 의존하는 것: 기본적인 요소를 무시하는 것은 중요한 사건에서 좋지 않은 성과를 가져올 수 있다. 해결 방법: 기본적 분석과 결합하거나 중요한 경제 자료가 발표되기 전에 거래를 중단하는 것을 고려하십시오.

전략 최적화 방향

  1. 동적 변수 조정: 변수가 자율성을 구현하여 시장의 변동성에 따라 이동 평균 주기 및 SAR 변수를 자동으로 조정한다.

  2. 거래량 분석을 늘리십시오: 가격 움직임의 유효성을 확인하기 위해 OBV 또는 CMF와 같은 거래량 지표를 도입하십시오.

  3. 시장 환경 필터를 추가: ATR 또는 변동률 지표를 사용하여 시장 상태를 식별하고 낮은 변동성 기간 동안 거래를 줄이십시오.

  4. 출전 논리를 최적화하십시오: 더 나은 수익을 고정하기 위해 추적 스톱 또는 ATR 기반의 동적 스톱을 사용하십시오.

  5. 통합된 다중 시간 프레임 분석: 더 긴 시간 프레임에서 트렌드를 확인하고 거래의 정확성을 향상시킵니다.

  6. 기계 학습을 도입: 기계 학습 알고리즘을 사용하여 매개 변수 선택 및 신호 생성 프로세스를 최적화하십시오.

  7. 기본적인 요소를 고려하세요. 경제 달력을 통합하고, 중요한 사건 전에 전략적 행동을 조정하세요.

  8. 위험 관리를 강화합니다. 동적 포지션 관리를 구현하여 계좌의 순가치와 시장의 변동에 따라 거래 규모를 조정합니다.

요약하다

이 다중 지표 연동 긴 라인 거래 전략은 여러 기술 지표와 가격 행동을 결합하여 전체적인 거래 시스템을 제공합니다. 그것은 장기 상승 추세에서 단기 오버셀 기회를 찾고, 동시에 여러 개의 탈퇴 조건을 사용하여 위험을 관리합니다. 전략의 주요 장점은 다차원 분석과 유연한 위험 관리이지만, 파라미터 민감성 및 시장 환경 의존성 등의 과제에 직면합니다.

동적 변수 조정, 거래량 분석 및 시장 환경 필터링을 추가하는 것과 같은 권장된 최적화 조치를 시행함으로써 이 전략은 안정성과 적응력을 더욱 향상시킬 잠재력이 있습니다. 그러나 사용자는 완벽한 거래 전략이 없으며 지속적인 모니터링, 응답 및 최적화가 장기적인 성공의 열쇠라는 것을 항상 기억해야합니다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia Long con 3 Velas Rojas y SL/TP + Parabolic SAR, Media Móvil y Doji", overlay=true)

// Parámetros modificables
lengthMA = input(200, title="Periodo de la Media Móvil")
velas_rojas_apertura = input(3, title="Número de Velas Rojas para Apertura")
velas_rojas_limite = input(6, title="Número Máximo de Velas Rojas Consecutivas")
stopLossPercent = input(0.5, title="Porcentaje de Stop Loss (%)") / 100
takeProfitPercent = input(0.5, title="Porcentaje de Take Profit (%)") / 100

// Parámetros del Parabolic SAR
sarStart = input.float(0.02, title="Parabolic SAR Start")
sarIncrement = input.float(0.02, title="Parabolic SAR Increment")
sarMaximum = input.float(0.2, title="Parabolic SAR Maximum")
enableSARExit = input.bool(true, title="Activar Salida por Parabolic SAR")
closeOnSARClose = input.bool(true, title="Cerrar al Cierre de Vela con Parabolic SAR")

// Parámetros de la Media Móvil para salida
lengthSMAExit = input(5, title="Periodo de la Media Móvil para Salida")
enableSMAExit = input.bool(true, title="Activar Salida por Media Móvil")

// Parámetros para la condición de cierre por velas doji
enableDojiExit = input.bool(true, title="Activar Salida por Velas Doji")

// Cálculo de la media móvil de 200 periodos
ma200 = ta.sma(close, lengthMA)

// Cálculo de la media móvil para salida
maExit = ta.sma(close, lengthSMAExit)

// Cálculo del Parabolic SAR
sar = ta.sar(sarStart, sarIncrement, sarMaximum)

// Contar las velas rojas consecutivas
var int contador_velas_rojas = 0
contador_velas_rojas := close < open ? contador_velas_rojas + 1 : 0

// Condición para abrir una operación Long
puedeAbrirOperacion = (contador_velas_rojas < velas_rojas_limite)
condicion_long = (contador_velas_rojas >= velas_rojas_apertura) and (close > ma200) and puedeAbrirOperacion

// Abrir operación Long si se cumplen las condiciones
if (condicion_long)
    entryPrice = close
    stopLossPrice = entryPrice * (1 - stopLossPercent)
    takeProfitPrice = entryPrice * (1 + takeProfitPercent)
    strategy.entry("Compra", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Compra", limit=takeProfitPrice, stop=stopLossPrice)

// Condición para cerrar la operación Long con Parabolic SAR
sarCambiaDown = ta.crossunder(close, sar)

// Cerrar operación Long si cambia la tendencia del Parabolic SAR y está activado
if (strategy.position_size > 0 and enableSARExit)
    if (closeOnSARClose and sarCambiaDown[1])
        strategy.close("Compra", comment="SAR Cambio al Cierre de Vela")
    else if (sarCambiaDown)
        strategy.close("Compra", comment="SAR Cambio")

// Condición para cerrar la operación Long con Media Móvil y está activado al cierre de la vela
smaExitCondition = close[1] < maExit[1] and close[0] > maExit[0]

if (strategy.position_size > 0 and enableSMAExit)
    if (smaExitCondition)
        strategy.close("Compra", comment="Salida por Media Móvil al Cierre de Vela")

// Condición para cerrar la operación Long con velas doji
dojiCondition = math.abs(open - close) <= ((high - low) * 0.1)

if (strategy.position_size > 0 and enableDojiExit)
    if (dojiCondition)
        strategy.close("Compra", comment="Salida por Doji")

// Para mostrar la media móvil y el Parabolic SAR en el gráfico
plot(ma200, color=color.blue, title="Media Móvil 200")
plot(maExit, color=color.green, title="Media Móvil para Salida")
plot(sar, color=color.red, style=plot.style_cross, title="Parabolic SAR")