슈퍼트렌드 멀티 타임프레임 백테스트 전략

저자:차오장, 날짜: 2023-12-05 10:59:54
태그:

img

전반적인 설명

이 전략의 주요 아이디어는 슈퍼트렌드 지표를 여러 시간 프레임에 걸쳐 사용하여 거래 신호를 생성하고, 하루 동안 열린 포지션을 정분화하기 위해 일내 필터와 결합하여 여러 시간 프레임 거래를 구현하고 신호 품질을 향상시키는 것입니다.

전략 논리

전략은 먼저 슈퍼트렌드 함수를 호출하고, 매개 변수 mult와 len을 전달하여 슈퍼트렌드 라인 슈퍼트렌드 및 방향 dir를 생성합니다. 그 다음 슈퍼트렌드 라인 차트를 그래프합니다. 입력 매개 변수 intraday는 열린 포지션을 Intraday로 정분할 것인지 여부를 제어합니다. Intraday가 사실이라면, intraday 오픈 포지션은 오후 2시 45분 후에 정분화됩니다.

신호 생성 규칙은: 닫기 가격이 슈퍼 트렌드 라인 위에 있을 때 구매 신호가 생성됩니다. 닫기 가격이 슈퍼 트렌드 라인 아래에 있을 때 판매 신호가 생성됩니다. 구매 신호가 수신되면, 긴 포지션을 열기 위해 구매 주문이 실행됩니다. 판매 신호가 수신되면, 짧은 포지션을 열기 위해 판매 주문이 실행됩니다. 내일 필터 내일이 활성화되면, 즉 true로 설정되면, 모든 개방된 긴 및 짧은 포지션은 매일 오후 2시 45분 후에 종료됩니다.

이점 분석

이 전략의 가장 큰 장점은 단순하지만 실용적인 슈퍼트렌드 지표를 사용하여 멀티 타임프레임 거래 신호를 구현한다는 것입니다. 슈퍼트렌드 자체는 이미 좋은 승률과 수익률을 가지고 있습니다. 또한 이 전략에는 강렬한 내일 변동으로 인한 손실을 피하기 위해 내일 필터가 포함되어 있습니다.

또한, 전략은 매우 간결하며, 매우 적은 코드로 핵심 논리를 구현하여 이해하기 쉽고 수정하고 확장 할 수 있습니다. 이것은 사용자에게 자신의 필요에 따라 매개 변수를 조정하거나 다른 지표를 추가 할 수있는 큰 유연성을 제공합니다.

위험 분석

이 전략의 주요 위험은 슈퍼트렌드 지표가 약간의 지연을 가지고 있기 때문에 추가 손실이 발생할 수 있습니다. 또한 고정된 멀티 타임프레임 거래는 단기간에 거래 기회를 놓칠 수도 있습니다.

이러한 위험을 완화하기 위해 최적의 매개 변수 조합을 찾기 위해 슈퍼트렌드 매개 변수 멀트와 렌을 최적화하는 것이 좋습니다. 다른 지표도 슈퍼트렌드를 보완하고 전략의 안정성을 높이기 위해 더 많은 요소를 활용하여 테스트 할 수 있습니다. 또한 고정된 내일 쿼어 오프 시간을 제거하고 변동성 조건에 따라 쿼어 오프 시기를 결정하는 동적 메커니즘을 사용할 수 있습니다.

최적화 방향

이 전략의 주요 최적화 방향은 다음과 같습니다.

  1. 최적의 매개 변수 조합을 찾기 위해 여러 개의 슈퍼트렌드 매개 변수를 테스트합니다.

  2. 촛불 패턴, 이동 평균 등과 같은 다른 기술적 지표를 추가하여 더 많은 요소로 신호를 필터합니다.

  3. 최첨단 및 동적으로 특정 내일 쿼드 오프 타이밍을 조정하여 조기 쿼드 오프를 줄이십시오.

  4. 고정 비율의 스톱 로스 또는 ATR 스톱 로스 같은 스톱 로스 메커니즘을 추가합니다.

  5. 적절한 자본 활용률과 위치 사이즈 전략 테스트.

  6. 패러미터 안정성을 확인하기 위해 더 긴 시간 동안 백테스트.

결론

요약하자면,이 슈퍼트렌드 멀티 타임프레임 백테스트 전략은 매우 실용적입니다. 간단한 슈퍼트렌드 지표로 멀티 타임프레임 거래를 구현하고 내일 필터로 손실을 제어합니다. 최적화 할 수있는 넓은 공간이 있으며 사용자는 필요에 따라 매개 변수를 조정하거나 다른 기술 지표와 결합 할 수 있습니다. 백테스트 성능은 또한 비교적 안정적이고 신뢰할 수 있습니다. 전반적으로,이 전략은 중장기 트렌드 거래에 적합하며 초보자도 수정 사항을 배우고 연습하는 데 좋습니다.


/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-04 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//@Gurjant_Singh IISMA-Indian Institute of stock Market Analysis 

strategy("SupterTrend ", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=300, calc_on_order_fills=false, calc_on_every_tick=false)




mult = input(type=input.float, defval=3)
len = input(type=input.integer, defval=5)
[superTrend, dir] = supertrend(mult, len)



plot(superTrend)

intrady = input(false, "Do you want to exit intrday position", type = input.bool)

IntraDay_SquareOff = minute >= 45 and hour >= 14



buy = close > superTrend

sell = close < superTrend

if buy
    strategy.entry("Buy", true)
    
if sell
    strategy.entry("sell", false)

if intrady and IntraDay_SquareOff
    strategy.close("buy")
    strategy.close("sell")






더 많은