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

동적 취득 및 중단 손실 거래 전략 세 개의 연속 하락 촛불과 이동 평균에 기초

저자:차오장, 날짜: 2024-05-09 16:42:35
태그:SMAEMA

img

전반적인 설명

이 거래 전략은 3개의 연속적인 하향 촛불 패턴과 이동 평균 시스템을 기반으로 거래 신호를 결정합니다. 가격이 200일 이동 평균보다 높고 3개의 연속적인 하향 촛불이 있을 때, 그것은 긴 포지션을 개척합니다. 이 전략은 단기 이동 평균의 위치와 가격의 비율 변화로 결정되는 동적 인 수익 및 스톱 손실 수준을 통해 거래 위험을 관리합니다. 이 전략은 지정된 시간 범위 내에서만 거래합니다.

전략 원칙

  1. 연속 하향 촛불의 수를 계산합니다. 지정된 수 (예정값은 3) 의 연속 하향 촛불이 나타나면 긴 신호로 간주됩니다.
  2. 트레이드의 트렌드와 시기를 결정하는 데 도움이 되는 두 개의 이동 평균을 사용하십시오. 10일 이동 평균과 200일 이동 평균의 기본 설정으로. 가격이 200일 이동 평균보다 높을 때만 장기간 거래하는 것을 고려하십시오.
  3. 동적 취익 및 스톱 손실 수준을 설정합니다. 취익 수준은 입시 가격보다 특정 비율 (기본 1.5%) 높고, 스톱 손실 수준은 입시 가격보다 특정 비율 (기본 1%) 낮습니다.
  4. 포지션 폐쇄의 또 다른 조건은 10일 이동 평균에 대한 가격 포지션의 변화입니다. 긴 포지션이 유지되고 가격이 이동 평균 이상에서 아래로 떨어지면 포지션은 닫습니다.
  5. 전략은 시작과 종료 날짜에 의해 결정된 특정 시간 범위 내에서만 실행됩니다.

전략적 장점

  1. 가격 패턴과 이동 평균 시스템을 결합함으로써 트렌드 기회를 비교적 잘 파악할 수 있습니다.
  2. 동적 인 수익 및 스톱 로스 레벨을 통해 위험과 보상이 유연하게 제어 될 수 있습니다. 가격 상승에 따라 수익 수준이 상승하여 수익이 실행되고 스톱 로스 레벨은 최대 손실을 제한합니다.
  3. 단기 이동평균의 위치의 변화를 신호로 사용하여 포지션을 닫을 수 있습니다. 갑작스러운 가격 전환에 신속하게 대응할 수 있습니다.
  4. 거래 시간 범위를 지정하면 시장 폐쇄 또는 공휴일과 같은 특별한 기간 동안 거래를 피할 수 있으며 위험을 줄일 수 있습니다.

전략 위험

  1. 연속 하향 촛불의 패턴은 트렌드 반전을 완전히 결정할 수 없으며, 연속 하향 촛불 이후 가격이 계속 상승하여 전략이 실패하는 상황이 발생할 수 있습니다.
  2. 고정 비율의 영업이익 및 스톱 러스 레벨은 극적인 시장 변동에 대응할 수 없을 수 있습니다. 추세가 매우 강할 때, 영업이익 레벨은 너무 낮게 설정되어 조기 출퇴로 이어질 수 있습니다. 변동성이 증가할 때, 스톱 러스 레벨은 너무 가깝게 되어 빈번한 스톱으로 이어질 수 있습니다.
  3. 단기 이동평균의 위치를 판단하는 것은 특히 가격이 빠르게 변할 때 지연될 수 있으며 가장 좋은 폐쇄 기회를 놓쳤을 수도 있습니다.
  4. 이 전략은 포지션 관리 및 리스크 통제 조치가 없습니다. 입점점과 포지션 크기가 고정되어 단일 거래에서 과도한 위험을 초래할 수 있습니다.

전략 최적화 방향

  1. 더 많은 기술적 지표가 심사를 돕기 위해 MACD와 RSI와 같이 신호의 신뢰성을 향상시키기 위해 도입 될 수 있습니다.
  2. 수익을 취하고 손실을 멈추는 레벨을 계산하는 방법을 최적화하십시오. 예를 들어 동적으로 조정하기 위해 ATR 또는 변동성을 사용하거나 설정하기 위해 지원 및 저항 수준을 결합하십시오.
  3. 종료 신호에 대해, 잘못된 신호를 피하기 위해 거래량 변화, 긴/단지 포지션 비율 등과 같은 더 많은 확인 조건을 사용하는 것을 고려하십시오.
  4. 각 거래의 위치 크기를 계좌 잔액과 위험 수준에 따라 조정하고 전반적인 위험 한도를 설정하는 것과 같은 위치 관리 및 위험 통제 조치를 도입합니다.
  5. 연속 하락 촛불 수와 이동 평균 기간과 같은 매개 변수 설정에 대해 최적화 테스트를 수행하여 최상의 매개 변수 조합을 찾을 수 있습니다.

요약

이 거래 전략은 연속적인 하락 촛불과 이동 평균 시스템으로 트렌딩 거래 기회를 결정하며, 동적 인 이익 취득 및 손실 중지 수준 및 단기 이동 평균의 위치 변화 등을 통해 위험을 제어합니다. 전략은 명확한 논리를 가지고 있으며 중장기 트렌드를 파악하는 것을 목표로하는 거래자에게 적합합니다. 그러나 전략에는 신호의 신뢰성, 이익 취득 및 손실 중지 레벨의 설정 및 위치 관리와 같은 일부 제한이 있습니다. 여전히 최적화 할 여지가 있습니다. 실제 응용에서는 시장 특성과 개인 위험 선호도에 따라 전략에 적절한 조정 및 개선을 수행하고 위험을 엄격히 제어해야합니다.


/*backtest
start: 2023-05-09 00:00:00
end: 2024-05-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Trading", overlay=true)

// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)

// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)

// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")

// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)

// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)

// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre

// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
    cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
    cierres_decrecientes_consecutivos := 0

es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes

// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)

// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)

// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
    strategy.close("Long")

// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)

// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)

// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)


관련

더 많은