다중 시간 프레임 트렌드 전략

저자:차오장, 날짜: 2023-10-23 16:56:52
태그:

img

전반적인 설명

이 전략은 여러 시간 프레임을 활용하는 거래 전략이다. 주로 트렌드 방향을 결정하기 위해 장기 시간 프레임을, 동력 방향을 결정하기 위해 중장기 시간 프레임을, 특정 입점 위치를 찾기 위해 단기 시간 프레임을 사용합니다. 전반적인 아이디어는 세 가지 다른 시간대에 트렌드, 동력 및 입점 타이밍을 기반으로 결정을 내리는 것입니다.

원칙

이 전략은 주로 다음을 통해 실행됩니다.

  1. 다른 시간 프레임을 정의

    • 장기 (매일): 전체 추세를 결정하기 위해
    • 중간 기간 (4시간): 운동 방향을 결정합니다.
    • 단기 (관습): 입구점을 찾아내기 위해
  2. 장기적 경향을 결정

    • SMA를 사용하여 장기 트렌드 방향을 결정합니다.
    • 닫는 것이 SMA보다 높으면 상승 추세로 정의
    • 닫는 것이 SMA 이하인 경우 하향 추세로 정의
  3. 중장기 동력을 결정합니다.

    • 스톡 K 및 D 라인을 사용
    • 직선 K가 직선 D 위에 있을 때, 상승동력으로 정의
    • 직선 K가 직선 D 아래에 있을 때, 아래로 향하는 운동량으로 정의
  4. 진입 지점을 찾아

    • 긴 진입: 장기 상승 추세, 중장기 증권 상승, 단기 MA 황금 십자
    • 단기 엔트리: 장기 하락 추세, 중장기 주식 하락 추세, 단기 MA 순위
  5. 출구점

    • 긴 출구: 중장기 스톡 K 라인이 D 라인 아래를 넘는다
    • 짧은 출구: 중장기 스톡 K 라인이 D 라인을 넘습니다.

요약하자면 이 전략은 다양한 차원에서 트렌드와 타이밍을 판단하여 다양한 시간 프레임에 대한 정보를 최대한 활용하여 잘못된 브레이크를 효과적으로 필터링하고 트렌드를 따라 높은 확률의 진입 지점을 선택할 수 있습니다.

장점

이 전략의 장점은 다음과 같습니다.

  1. 다중 시간 프레임 설계는 과학적이고 세밀하며 더 정확한 시장 트렌드 판단을 허용하고 단기 시장 소음으로 오해되는 것을 피합니다.

  2. 트렌드, 모멘텀, 진입 시기를 고려한 포괄적인 조건은 많은 잘못된 신호를 필터링하는 데 도움이됩니다.

  3. 중장기 동력을 결정하기 위해 스톡을 사용하는 것은 매우 정확하며 진정한 시장 반전을 파악하는 데 도움이됩니다.

  4. 엄격한 진입 기준은 가격 상승으로 인한 대부분의 가짜 파업을 방지합니다.

  5. 정의된 스톱 로스 출구 포인트는 각 거래의 위험을 효과적으로 제어합니다.

  6. 특정 시장 조건에 의해 제한되지 않고 다양한 시장 환경에 적용됩니다.

  7. 고정 스톱 손실 비율, 동적 위치 사이징 등 자본 관리 최적화를 위한 여지가 있습니다.

위험성

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

  1. 다양한 시장에서는 여러 개의 스톱 로스 히트가 있을 수 있습니다.

  2. 트렌드 변화는 적시에 파악되지 않을 수 있고, 잘못된 거래로 이어질 수 있습니다.

  3. 동력 판단에 있어서 스톡에만 의존하는 것은 한계가 있습니다.

  4. 엄격한 입시 기준으로 인해 어떤 추세를 놓칠 수 있습니다.

  5. 수익 잠재력은 상대적으로 제한되어 있으며, 거대한 추세를 파악할 수 없습니다.

위험 을 줄일 수 있는 몇 가지 방법:

  1. 오류율을 낮추기 위해 세밀한 조정 매개 변수

  2. 추세 지표를 추가하여 합성 판단을 설정합니다.

  3. 모멘텀 판단을 위해 MACD와 같은 더 많은 지표를 포함합니다.

  4. 트레일링 스톱 등을 사용하기 위해 스톱 손실을 최적화합니다.

  5. 주요 트렌드가 변할 때 즉시 스톱 로스 및 포지션 크기를 조정합니다.

최적화

전략을 최적화하는 몇 가지 방법:

  1. MA 기간과 같은 매개 변수 최적화, 신호 정확성을 향상시키기 위한 스톡 설정.

  2. MACD, 볼링거 밴드 같은 더 많은 지표를 추가하여 판단을 향상시킵니다.

  3. 진입 기준을 최적화하고 수용 가능한 위험 수준에서 더 많은 거래를 허용합니다.

  4. 후속 스톱 손실 또는 ATR 기반 스톱을 사용하세요.

  5. 주요 트렌드 변경 시 포지션 크기를 적극적으로 조정합니다.

  6. 기계 학습을 활용하여 매개 변수와 규칙을 자동으로 최적화합니다.

  7. 기본을 고려하고 주요 데이터 발표를 사용하여 신호를 추가로 확인합니다.

  8. 외환, 금속 등과 같은 다양한 상품에서 효과를 테스트합니다.

결론

요약하자면,이 다중 시간 프레임 트렌드 전략의 핵심 아이디어는 장기, 중장기 및 단기 차원에 기반한 결정을 내리는 것입니다. 이점은 엄격한 조건과 통제 가능한 위험에 있습니다. 그러나 매개 변수와 규칙은 특정 시장에 최적화되어야합니다. 앞으로 더 많은 지표, 최적화 중지, 기계 학습 등을 추가함으로써이 전략을 더욱 향상시킬 수 있습니다.


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

//@version=2
strategy("TUX MTF", overlay=true)

// MULTIPLE TIME FRAME STRATEGY
// LONG TERM --- TREND
// MED TERM --- MOMENTUM
// SHORT TERM --- ENTRY

// ENTRY POSITION TIMEFRAME
entry_position = input(title="Entry timeframe (minutes)",  defval=5, minval=1, maxval=1440)
med_term = entry_position * 4
long_term = med_term * 4

// GLOBAL VARIABLES
ma_trend = input(title="Moving Average Period (Trend)",  defval=50, minval=5, maxval=200)

// RSI
length = input(title="Stoch Length",  defval=18, minval=5, maxval=200)
OverBought = input(title="Stoch OB",  defval=80, minval=60, maxval=100)
OverSold = input(title="Stoch OS",  defval=20, minval=5, maxval=40)
smoothK = input(title="Stoch SmoothK",  defval=14, minval=1, maxval=40)
smoothD = input(title="Stoch SmoothD",  defval=14, minval=1, maxval=40)
maSm = input(title="Moving Avg SM",  defval=7, minval=5, maxval=50)
maMed = input(title="Moving Avg MD",  defval=21, minval=13, maxval=200)

// LONG TERM TREND
long_term_trend = request.security(syminfo.ticker, tostring(long_term), sma(close,ma_trend)) > request.security(syminfo.ticker, tostring(long_term), close)
plot(request.security(syminfo.ticker, tostring(long_term), sma(close,ma_trend)), title="Long Term MA", linewidth=2)
// FALSE = BEAR
// TRUE = BULL

// MED TERM MOMENTUM

k = request.security(syminfo.ticker, tostring(med_term), sma(stoch(close, high, low, length), smoothK))
d = request.security(syminfo.ticker, tostring(med_term), sma(k, smoothD))

os = k >= OverBought or d >= OverBought
ob = k <= OverSold or d <= OverSold


// SHORT TERM MA X OVER
bull_entry = long_term_trend == false and os == false and ob == false and k > d and request.security(syminfo.ticker, tostring(entry_position), crossover(sma(close, maSm), sma(close, maMed)))
bear_entry = long_term_trend == true and os == false and ob == false and k < d and request.security(syminfo.ticker, tostring(entry_position), crossunder(sma(close, maSm), sma(close, maMed)))



bull_exit = crossunder(k,d)
bear_exit = crossover(k,d)



if (bull_entry)
    strategy.entry("Long", strategy.long)
    

if (bear_entry)
    strategy.entry("Short", strategy.short)
  
strategy.close("Long", when = bull_exit == true)
strategy.close("Short", when = bear_exit == true)

    
    

    




더 많은