모멘텀 브레이크아웃 전략


생성 날짜: 2023-10-23 15:17:45 마지막으로 수정됨: 2023-10-23 15:17:45
복사: 0 클릭수: 567
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

모멘텀 브레이크아웃 전략

개요

이 전략은 무작위적인 흔들림 지표인 K선과 D선에 기반한 동적 돌파 거래 전략이다. K선으로 오버셀드 영역에서 오버 바이드 영역으로 되돌아가는 것을 구매 신호로 사용하여 스톱로드를 추적한다.

전략 원칙

이 전략은 다음과 같은 부분들로 구성됩니다.

  1. 지표 설정

RSI 지표의 14주기 Smoothed Stoch 지표의 K선과 D선, 각각 3주기 SMA의 부드러운 처리를 한다.

  1. 신호 생성

K선에서 20을 구매 신호로 착용할 때, 구매를 하고 포지션을 개설한다.

  1. 손해 방지 방법

추적 스톱 방식을 사용하여 고정 추적 스톱 거리를 설정한다. 또한 20주기의 최저 지점을 스톱 위치로 설정한다.

  1. 포지션 계산

회수 기간 중 20주기 최저점과 현재 폐장 가격 사이의 점수 거리를 계산한다. 다음으로 용납 가능한 달러의 손실 금액과 점수 거리를 기준으로 각 점의 값을 계산한다. 마지막으로 점값을 기준으로 특정 포지션 크기를 계산한다.

이 전략은 오버 바이 지역 반전의 동력 돌파구를 입시 신호로 활용하고, 정밀하게 계산된 포지션 관리와 스톱로스를 추적하여 동력 반전 거래를 실현하고, 위험을 효과적으로 제어한다.

전략적 이점

이 전략에는 다음과 같은 장점이 있습니다.

  1. 진입 신호는 명확하고, 오버셀 영역을 뚫고, 동력이 강하다.

  2. 트래킹 스톱을 적용하여 시장의 흐름에 따라 유연하게 스톱할 수 있다.

  3. 정확한 계산에 따라 입점, 단편적 손실을 효과적으로 통제한다.

  4. 재측정주기 내의 정지위치를 계산하여 정밀한 정지를 달성한다.

  5. 포지션 계산은 간단하고 명확하며 조작이 쉽습니다.

  6. 전략의 논리는 간단하고 명확하며, 구현을 이해하기 쉽습니다.

  7. 코드 구조가 명확하고, 읽기 쉽고, 재개발하기 쉽다.

전략적 위험

이 전략에는 몇 가지 위험도 있습니다.

  1. 주식 자체의 변동 위험. 급격한 상황이 발생하면, 정지 손실이 발생할 수 있다.

  2. 과도한 거래의 위험이 있습니다.

  3. “이런 일방적인 입장을 취한 것은 역동적인 상황을 활용할 수 없습니다.

  4. 이동 상황 배경을 효율적으로 필터링할 수 없습니다. 예를 들어, 진동 상황에서는 정지 손실이 자주 유발될 수 있습니다.

위험 관리를 최적화할 수 있는 방법은 다음과 같습니다.

  1. 최적화 변수, 입시 조건 조정, 너무 자주 거래하는 것을 피한다.

  2. 한방적인 위험을 줄이기 위해 분산된 기간을 적용하고, 수량으로 창고를 건설하는 방법을 채택합니다.

  3. 큰 규모의 거래 배경에 대한 판단을 높이고, 불리한 상황에서 거래하는 것을 피하십시오.

  4. 손해배상 정책을 최적화하여 너무 민감한 손해배상 방지 방법을 사용한다.

전략 최적화

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 손해 중지 전략을 최적화하여 손해를 더 원활하게 방지하기 위해 동적으로 추적하는 손해 중지, 분할 손해 중지, 이동 손해 중지 등의 방법을 고려할 수 있습니다.

  2. 대규모 트렌드 판단을 높여 거래 흔들림 트렌드를 피하십시오. 평균선, 채널 돌파 등과 결합하여 트렌드를 판단 할 수 있습니다.

  3. 양방향 포지션을 고려하여 역전 포지션을 추가하여 역풍 상황을 활용하여 이익을 얻을 수 있습니다.

  4. 기계 학습과 같은 방법을 통해 매개 변수를 자동으로 최적화하여 매개 변수가 다른 단계의 상황에 더 잘 적응하도록 할 수 있습니다.

  5. 포지션 관리 전략을 최적화하여, 고정 비율, 고정 자금 등의 OTHER 방법을 고려할 수 있으며, 자금을 더 합리적으로 사용할 수 있습니다.

  6. 더 많은 필터링 조건을 추가하여 더 좋은 기회에서 거래하십시오. 합성 트래픽, 브린 라인 등의 지표를 최적화하십시오.

요약하다

이 전략은 전체적으로 단순하고 명확한 동적 돌파 전략이다. 그것은 더 신중한 중지 방식을 취하여 단편 손실을 효과적으로 제어한다. 그러나 여전히 특정 시장 상황에 따라 전략 매개 변수가 시장에 더 잘 적응하고, 효과없는 거래 신호를 필터링하고, 수익과 위험 사이의 더 나은 균형을 이루기 위해 전략 매개 변수를 최적화해야합니다. 동시에 대규모 추세에 대한 판단과 포지션 관리를 강화하는 것도 전략의 최적화 방향이다.

전략 소스 코드
//@version=2
//descripcion: 
//entrada en saturacion oscilador estocastico
//salida por trailing
strategy("MomentumBreak#1", overlay=true,calc_on_every_tick=true,
     default_qty_type=strategy.fixed,currency="USD")
//entradas y variables de indicadores
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
overbought=input(80)
oversold=input(20)
//entradas de stop , trail, profit
stop=input(1500)
stop_dentro_de_los_ultimos_lows=input(20)
trail_points=input(500)
trail_offset=input(100)
profit=input(1000)
riesgo_en_dolares=input(15)

//condicion de compra: k>80
buycondition=crossover(k,oversold)
//entrada a la posicion
posicionabierta=0
if year>2015
    if buycondition 
        stoplow=lowest(stop_dentro_de_los_ultimos_lows)   
        riesgo_en_pips = (close - stoplow)   
        valor_del_pip = (riesgo_en_dolares / riesgo_en_pips)
        tamanio_de_la_posicion= ( valor_del_pip)              //la posicion la esta calculando bien
        strategy.entry("buy",strategy.long)
        strategy.exit("salida","buy",trail_points=trail_points,trail_offset=trail_offset,stop=stoplow,comment=tostring(stoplow))

//////////////////////////////////condicion de stop por drodown 10% equity
//strategy.risk.max_drawdown(15,strategy.cash)
// condicion de stop por perdida mayor a $15 en op abierta
//strategy.risk.max_intraday_loss(15,strategy.cash)
//formas de tomar stop:
// cuando llega a una media movil: strategy.close o strategyentry o strategy.exit o strategy.order
// determinado por un numero de pips strategy.exit
// determinado por el calculo de la posicion:
//tomar el minimo minimo de los ultimos 20 periodos, guardarlo como nivel de stop
//calcular la posicion en base a ese stop:
//prcio de entrada - precio de stop = pips_en-reisgo
//riesgo_e_dolares / pips_en_riesgo = pip_value
//position_size=10000 * pip_value