동적 인 내일 장기 단기 균형 전략 이동 평균과 슈퍼 트렌드를 결합

저자:차오장, 날짜: 2024-03-11 11:33:47
태그:

img

전략 개요

이동 평균과 슈퍼트렌드를 결합한 동적 내일 장기 단기 균형 전략은 파이인 스크립트TM 5에서 작성된 양적 거래 전략이다. 이 전략은 동적 장기 단기 전환 및 스톱 로스/트레이프프로프트를 통해 위험을 제어하면서 시장의 트렌드 기회를 포착하기 위해 MACD 지표와 슈퍼트렌드 지표를 사용합니다.

전략 원칙

이 전략의 핵심은 시장의 트렌드 방향을 결정하기 위해 MACD 지표와 슈퍼트렌드 지표를 결합하는 것입니다. 구체적으로:

  1. 슈퍼트렌드 지표를 사용하여 현재 트렌드 방향을 결정합니다. 슈퍼트렌드 지표가 변경되면 트렌드의 반전을 나타냅니다.
  2. 모멘텀의 변화를 판단하기 위해 MACD 지표의 히스토그램을 사용하십시오. MACD 히스토그램이 음에서 양으로 전환되면 상승 모멘텀의 증가를 나타냅니다. MACD 히스토그램이 양에서 음으로 전환하면 하락 모멘텀의 증가를 나타냅니다.
  3. 슈퍼트렌드 지표와 MACD 지표가 모두 긴 신호를 내면 긴 포지션을 열고 슈퍼트렌드 지표와 MACD 지표가 모두 짧은 신호를 내면 짧은 포지션을 열고
  4. 오버나이트 리스크를 피하기 위해 각 거래일에 모든 포지션을 일정한 시간에 (예: 15:15) 닫습니다.
  5. 슈퍼트렌드 지표와 MACD 지표의 지표에 따라 새로운 거래일에 (예를 들어 9시 30분) 포지션을 재개합니다.

동적 인 장-단 전환을 통해 전략은 시장의 변화에 적응하고 트렌드 기회를 포착 할 수 있습니다. 동시에 고정된 시간에 포지션을 닫는 디자인은 위험을 제어하는 데 도움이됩니다.

전략적 장점

  1. 트렌드 추적: 슈퍼트렌드 지표와 MACD 지표를 결합함으로써 전략은 시장의 트렌드 기회를 효과적으로 파악 할 수 있습니다.
  2. 동적 긴 짧은 전환: 전략은 시장 변화에 적응하여 지표의 변화에 따라 위치 방향을 동적으로 조정합니다.
  3. 리스크 제어: 고정 시간 포지션 폐쇄 및 동적 장기 단위 전환을 통해 전략은 위험을 비교적 잘 제어 할 수 있습니다.
  4. 매개 변수 유연성: 전략의 매개 변수 (ATR 기간, 요인 등) 는 시장 특성과 개인 선호도에 따라 조정될 수 있으며, 어느 정도의 유연성을 제공합니다.

전략 위험

  1. 지표 실패 위험: 일부 시장 환경에서 MACD 지표와 슈퍼 트렌드 지표는 잘못된 신호를 제공하여 전략 실패로 이어질 수 있습니다.
  2. 매개 변수 최적화 위험: 전략의 성능은 매개 변수 선택에 달려 있으며, 부적절한 매개 변수는 전략 성능의 저하로 이어질 수 있습니다.
  3. 스톱 로스 위험: 전략에는 명시적인 스톱 로스 논리가 없으며 극단적인 시장 환경에서 상당한 손실을 초래할 수 있습니다.
  4. 오버나이트 리스크: 이 전략은 하루내로 포지션을 닫지만, 오버나이트 포지션을 열 때 여전히 오버나이트 격차의 위험에 직면할 수 있습니다.

최적화 방향

  1. 스톱 로스 로직을 추가합니다. 더 많은 위험을 제어하기 위해 전략에 일목요연한 스톱 로스 로직을 추가합니다. 고정 비율 스톱 로스 또는 ATR 스톱 로스 같은 것입니다.
  2. 매개 변수 최적화: 전략의 안정성과 수익성을 향상시키기 위해 ATR 기간, 요인, MACD 매개 변수 등 전략의 주요 매개 변수를 최적화합니다.
  3. 신호 필터링: 신호의 신뢰성을 높이기 위해 가격 파격, 거래량 등과 같은 더 많은 신호 필터링 조건을 추가합니다.
  4. 여러 시장 테스트: 전략의 적용성과 안정성을 평가하기 위해 다른 시장과 도구에서 전략을 테스트합니다.

요약

다이내믹 인트라데이 롱 쇼트 밸런싱 전략 (Dynamic Intraday Long-Short Balancing Strategy Combining Moving Average and Supertrend) 은 트렌드 추적 및 모멘텀 판단에 기반한 거래 전략이다. 슈퍼트렌드 지표와 MACD 지표를 결합하고 위치 방향을 동적으로 조정함으로써 전략은 시장의 변화에 적응하고 트렌드 기회를 포착할 수 있다. 동시에 일정한 시간에 포지션을 닫는 설계는 오버나이트 위험을 제어하는 데도 도움이 된다.

그러나 이 전략에는 지표 실패 위험, 매개 변수 최적화 위험, 스톱 로스 위험 등과 같은 위험과 단점도 있습니다. 이 전략을 더욱 개선하기 위해서는 스톱 로스 로직을 추가하고 매개 변수를 최적화하고 더 많은 신호 필터링 조건을 추가하고 여러 시장에서 테스트하는 것을 고려할 수 있습니다.

전반적으로, 동적 내일 장기 단기 균형 전략은 이동 평균과 슈퍼 트렌드를 결합하여 트렌드 추적 및 리스크 통제를 위한 사고 방식을 제공합니다. 실제 적용에서, 거래자는 자신의 위험 선호도와 시장 특성에 따라 전략에 적절한 조정 및 최적화를 수행하고 신중하게 사용해야합니다. 양적 거래 전략은 거래 아이디어를 제공 할 수 있지만 시장은 끊임없이 변화하고 있으며 어떤 전략도 이익을 보장 할 수 없습니다. 투자자는 전략의 원칙과 위험을 이해하고 합리적으로 위치를 제어하고 엄격하게 손실을 중지하고 장기적으로 시장에서 살아남기 위해 항상 경각심을 유지해야합니다.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © smj31071995

//@version=5
strategy("EQ - INTRA - Samsuga supertrend prod", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_every_tick = false)


atrPeriod = input.int(7,    "ATR Length", minval = 1)
factor =    input.float(1.0, "Factor",     minval = 0.01, step = 0.01)
st_tf = "3"
macd_tf="30"

[supertrend, direction] =request.security(symbol = syminfo.tickerid, timeframe = st_tf,expression =  ta.supertrend(factor, atrPeriod),lookahead=barmerge.lookahead_on)

supertrend := barstate.isfirst ? na : supertrend
upTrend =    plot(direction <= 0 ? supertrend : na, "Up Trend",   color = color.green, style = plot.style_linebr)
downTrend =  plot(direction <= 0 ? na : supertrend, "Down Trend", color = color.red,   style = plot.style_linebr)
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle",display = display.none)
longcondition = direction[1] > direction 
shortCondition = direction[1] < direction 

macdp1 = 2
macdp2=8
macdp3=4

[macdLine, signalLine, histLine] =request.security(symbol = syminfo.tickerid, timeframe = macd_tf,expression = ta.macd(close,macdp1,macdp2,macdp3),lookahead=barmerge.lookahead_on)
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
timezone_input = input("Asia/Kolkata", title="Timezone")
// log.info(timezone_input)
if(hour==15 and minute==15)
    strategy.close_all(comment = "DAY EXIT",alert_message = "X-D")
else if(hour==9 and minute==30)
    if(longcondition or histLine[1]>0)
        strategy.entry(id= "Long", direction=strategy.long,  comment = "DL",alert_message = "L")
    else if(shortCondition or histLine[1]<0) 
        strategy.entry(id= "Short", direction=strategy.short,  comment = "DS",alert_message = "S")
else
    if(longcondition)
        strategy.close("Short",comment = "X-S", alert_message = "X-S")
        if(histLine[1]>0)    
            strategy.entry(id= "Long", direction=strategy.long,  comment = "L",alert_message = "L")
    else if(shortCondition) 
        strategy.close("Long",comment = "X-L",alert_message = "X-L")
        if(histLine[1]<0)    
            strategy.entry(id= "Short", direction=strategy.short,  comment = "S",alert_message = "S")


// plot(macdLine,   title = "MACD",   color = #2962FF)
// plot(signalLine, title = "Signal", color = #FF6D00)
// 8, 21, 5
// 8,13,9
// 12,26,9
//  1--> 3, 17, 5
// 3, 10, 16
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
//  /////////----------------METHOD 1-----------------////////////////
// if(longcondition)
//     if(strategy.opentrades>0)
//         strategy.close("Long","Prev Exit", immediately = true)
//     if( histLine[0] > 0.1)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long")

    
// else if(shortCondition and strategy.openprofit<=0.1) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 2-----------------////////////////
// if(longcondition)
//     if(histLine[0] > 0)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long" )
//         strategy.exit("Long", loss = close*0.2)


    
// else if(shortCondition ) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 3-----------------////////////////



더 많은