윌리엄스 9일 탈출 전략

저자:차오장, 날짜: 2023-10-17 13:51:15
태그:

img

전반적인 설명

이 전략은 트렌드를 결정하기 위해 9일 이동평균의 방향을 모니터링하고 트렌드를 따르기 위해 브레이크아웃 포인트에서 포지션을 취함으로써 Larry Williams의 9일 브레이크아웃 개념을 기반으로합니다.

전략 논리

  • 동향을 판단하는 지표로 9일 EMA를 사용하십시오.
  • 가격이 아래에서 EMA를 넘어서면 상승률로 판단되고 긴 포지션을 취합니다.
  • 가격이 상위에서 EMA 아래로 돌파되면 하향적이라고 판단되고 짧은 포지션이 취합니다.
  • 구매 신호: 오픈 가격은 9일 EMA보다 낮고 종료 가격은 9일 EMA보다 높습니다.
  • 판매 신호: 오픈 가격은 9일 EMA보다 높고 종료 가격은 9일 EMA보다 낮습니다.

구체적으로:

  1. 9일 EMA를 계산합니다
  2. 하루 촛불이 구매 조건을 충족하는지 확인, 즉, 오픈 가격은 9 일 EMA보다 낮고, 폐쇄 가격은 9 일 EMA보다 높습니다
  3. 만족하면, 닫기 가격에 긴 포지션을 취하고, 이전 최고치로 중지 손실을 설정
  4. 하루의 촛불이 판매 조건을 만족하는지 확인합니다. 즉, 오픈 가격은 9일 EMA보다 높고, 종료 가격은 9일 EMA보다 낮습니다.
  5. 만족하면, 이전 최저치로 설정된 수익을 취하면서 이전 긴 위치에서 나오십시오.

위의 것은 구매와 판매의 완전한 논리를 구성합니다.

이점 분석

이것은 다음과 같은 강점을 가진 전략에 따라 비교적 간단한 추세입니다.

  1. 트렌드 방향을 판단하기 위해 EMA를 사용하면 가격 소음을 효과적으로 필터링 할 수 있습니다.
  2. EMA 브레이크에서 포지션을 취하면 트렌드 반전을 적시에 파악할 수 있습니다.
  3. 이전 최고가 손실을 멈추고 이전 낮은 수익을 취하면 트렌드 이윤을 잠금 할 수 있습니다.
  4. 거래 규칙은 명확하고 간단하며 이해하기 쉽고 실행하기 쉽고 초보자도 적합합니다.
  5. 높은 자본 사용 효율성, 항상 포지션을 보유 할 필요가 없으며 트렌드 브레이크에서 단기 포지션만

위험 과 최적화

이 전략은 또한 다음과 같은 측면에서 추가로 최적화 될 수있는 몇 가지 위험과 결함을 가지고 있습니다.

  1. 9일 EMA 기간 설정은 다른 제품과 시장 조건에 충분히 유연하지 않을 수 있습니다, 적응 EMA 기간을 도입 할 수 있습니다.
  2. 트렌드를 판단하기 위해 9일 EMA만을 사용하는 것은 너무 간단할 수 있습니다. 여러 시간 프레임 EMA 또는 다른 지표가 결합될 수 있습니다.
  3. 트랜잭션 비용과 미끄러짐은 고려되지 않습니다. 이는 실시간 거래에서 PnL에 크게 영향을 줄 수 있습니다.
  4. 스톱 로스 및 취득 비율이 설정되지 않습니다, 개별 거래의 위험 수익을 제어 할 수 없습니다.
  5. 입력 신호는 불필요한 작은 주문을 생성, 필터를 추가 할 수 있습니다, 여러 번 흔들 수 있습니다

요약하자면, 전략은 동적 매개 변수 최적화, 다중 요소 판단, 거래 비용 관리, 위험 보상 통제 등을 통해 개선될 수 있습니다.

결론

윌리엄스 9일 브레이크아웃 전략은 비교적 고전적인 단기 트렌드 추후 전략이다. 핵심 아이디어는 간단하고 명확하며, 트렌드 방향을 결정하기 위해 EMA를 사용하여 브레이크아웃 지점에서 포지션을 취하고 트렌드를 따라 리스크를 관리한다. 이 전략은 이해와 구현이 쉽고, 자본 사용 효율성이 높지만 몇 가지 결함이 있다. 우리는 여러 관점에서 최적화하여 매개 변수를 더 역동적으로 만들고 판단 규칙을 더 엄격하게 하고, 리스크 통제를 더 완전하게 하여 더 넓은 시장 조건에 적응하고 안정성과 수익성을 향상시킬 수 있다.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("larry willians teste2", overlay=true)

//Window of time
start     = timestamp(2019, 00, 00, 00, 00)  // backtest start window
finish    = timestamp(2019, 12, 31, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"  

ema9=ema(close,9) // Ema de 9 periodos

//Condições de compra
c1= (open< ema9 and close > ema9) //abrir abaixo da ema9 e fechar acima da ema9

if(window())
    if(c1)
        strategy.entry("Compra", true, stop = high) // Coloca ordem stopgain no topo anterior
    else
        strategy.cancel("Compra") // Cancela a ordem se o proximo candle não "pegar"
        
//codições de venda
v1= (open> ema9 and close < ema9) // abrir acima da ema9 e fechar abaixo ema9

if(window())
    if (v1)
        strategy.exit("Venda", from_entry = "Compra", stop = low) // Saida da entrada com stop no fundo anterior
    else
        strategy.cancel("Venda") //Cancela a ordem se o proximo candle não "pegar"



더 많은