이 전략은 여러 시간 프레임을 활용하는 거래 전략이다. 주로 트렌드 방향을 결정하기 위해 장기 시간 프레임을, 동력 방향을 결정하기 위해 중장기 시간 프레임을, 특정 입점 위치를 찾기 위해 단기 시간 프레임을 사용합니다. 전반적인 아이디어는 세 가지 다른 시간대에 트렌드, 동력 및 입점 타이밍을 기반으로 결정을 내리는 것입니다.
이 전략은 주로 다음을 통해 실행됩니다.
다른 시간 프레임을 정의
장기적 경향을 결정
중장기 동력을 결정합니다.
진입 지점을 찾아
출구점
요약하자면 이 전략은 다양한 차원에서 트렌드와 타이밍을 판단하여 다양한 시간 프레임에 대한 정보를 최대한 활용하여 잘못된 브레이크를 효과적으로 필터링하고 트렌드를 따라 높은 확률의 진입 지점을 선택할 수 있습니다.
이 전략의 장점은 다음과 같습니다.
다중 시간 프레임 설계는 과학적이고 세밀하며 더 정확한 시장 트렌드 판단을 허용하고 단기 시장 소음으로 오해되는 것을 피합니다.
트렌드, 모멘텀, 진입 시기를 고려한 포괄적인 조건은 많은 잘못된 신호를 필터링하는 데 도움이됩니다.
중장기 동력을 결정하기 위해 스톡을 사용하는 것은 매우 정확하며 진정한 시장 반전을 파악하는 데 도움이됩니다.
엄격한 진입 기준은 가격 상승으로 인한 대부분의 가짜 파업을 방지합니다.
정의된 스톱 로스 출구 포인트는 각 거래의 위험을 효과적으로 제어합니다.
특정 시장 조건에 의해 제한되지 않고 다양한 시장 환경에 적용됩니다.
고정 스톱 손실 비율, 동적 위치 사이징 등 자본 관리 최적화를 위한 여지가 있습니다.
이 전략에는 몇 가지 위험 요소가 있습니다.
다양한 시장에서는 여러 개의 스톱 로스 히트가 있을 수 있습니다.
트렌드 변화는 적시에 파악되지 않을 수 있고, 잘못된 거래로 이어질 수 있습니다.
동력 판단에 있어서 스톡에만 의존하는 것은 한계가 있습니다.
엄격한 입시 기준으로 인해 어떤 추세를 놓칠 수 있습니다.
수익 잠재력은 상대적으로 제한되어 있으며, 거대한 추세를 파악할 수 없습니다.
위험 을 줄일 수 있는 몇 가지 방법:
오류율을 낮추기 위해 세밀한 조정 매개 변수
추세 지표를 추가하여 합성 판단을 설정합니다.
모멘텀 판단을 위해 MACD와 같은 더 많은 지표를 포함합니다.
트레일링 스톱 등을 사용하기 위해 스톱 손실을 최적화합니다.
주요 트렌드가 변할 때 즉시 스톱 로스 및 포지션 크기를 조정합니다.
전략을 최적화하는 몇 가지 방법:
MA 기간과 같은 매개 변수 최적화, 신호 정확성을 향상시키기 위한 스톡 설정.
MACD, 볼링거 밴드 같은 더 많은 지표를 추가하여 판단을 향상시킵니다.
진입 기준을 최적화하고 수용 가능한 위험 수준에서 더 많은 거래를 허용합니다.
후속 스톱 손실 또는 ATR 기반 스톱을 사용하세요.
주요 트렌드 변경 시 포지션 크기를 적극적으로 조정합니다.
기계 학습을 활용하여 매개 변수와 규칙을 자동으로 최적화합니다.
기본을 고려하고 주요 데이터 발표를 사용하여 신호를 추가로 확인합니다.
외환, 금속 등과 같은 다양한 상품에서 효과를 테스트합니다.
요약하자면,이 다중 시간 프레임 트렌드 전략의 핵심 아이디어는 장기, 중장기 및 단기 차원에 기반한 결정을 내리는 것입니다. 이점은 엄격한 조건과 통제 가능한 위험에 있습니다. 그러나 매개 변수와 규칙은 특정 시장에 최적화되어야합니다. 앞으로 더 많은 지표, 최적화 중지, 기계 학습 등을 추가함으로써이 전략을 더욱 향상시킬 수 있습니다.
/*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)