리소스 로딩... 로딩...

멀티 타임프레임 트렌드 전략

저자:차오장, 날짜: 2023-12-28 11:57:00
태그:

img

전반적인 설명

이 전략은 트렌드 방향을 결정하기 위해 4개의 다른 시간 프레임을 사용하여, 단기 트렌드를 입력 기회로 사용하면서 장기 트렌드를 발견합니다. 4개의 시간 프레임 (일일, 주간, 15일, 월간) 의 오픈 가격은 모두 종료 가격보다 낮을 때, 그것은 장기 상승 추세로 결정됩니다. 4개의 시간 프레임의 오픈 가격은 모두 종료 가격보다 높을 때, 그것은 장기 하락 추세로 결정됩니다. 전략은 장기 트렌드를 확인하고 단기 신호가 생성되면 지위를 열 것입니다.

전략 논리

이 전략은 매일, 매주, 15일, 월간 4개의 시간 프레임을 사용합니다. 이 4개의 시간 프레임의 오픈 및 종료 가격 사이의 관계를 기반으로 장기 트렌드 방향을 결정합니다.

일일, 주간, 15일 및 월간 시간 프레임의 오픈 가격은 모두 종료 가격보다 낮을 때, 그것은 가격이이 4 시간 프레임에서 상승 추세를 보이고 있음을 나타냅니다. 따라서 황소 시장과 장기 상승으로 결정됩니다.

반대로, 이 4개의 시간 프레임의 오픈 가격들이 모두 종료 가격보다 높을 때, 이는 이 4개의 시간 프레임에서 가격이 하락 추세를 보이고 있음을 나타냅니다. 따라서 하락 시장과 장기 하락 시장으로 결정됩니다.

장기 트렌드 방향을 결정한 후, 전략은 단기간에 구매/판매 신호가 생성되면 포지션을 열 것입니다. 즉, 이 전략은 주요 트렌드를 결정하기 위해 장기 기간과 특정 진입 기회를 결정하기 위해 단기 기간을 사용합니다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 여러 시간 프레임 판단은 정확성을 향상시킵니다

    장기적 경향을 포괄적으로 판단하기 위해 4개의 다른 시간 프레임을 사용하는 것은 판단의 정확성을 향상시키고 단기 시장 소음에 의해 오해되는 것을 피할 수 있습니다.

  2. 장기적, 단기적, 유연한 전략의 조합

    주요 방향을 결정하기 위해 장기 프레임과 거래 신호를 생성하기 위해 단기 프레임을 사용하여 이 전략은 유연하며 주요 트렌드에서 벗어나지 않고 단기 기회를 포착 할 수 있습니다.

  3. 간단한 매개 변수, 쉽게 구현

    이 전략의 주요 판단 지표는 4 시간 프레임의 오픈 및 종료 가격입니다. 매개 변수 설정은 간단하고 구현하기가 쉽습니다.

위험 분석

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

  1. 장기적 역행성

    장기적인 상승 추세가 장기적인 하락으로 뒤집어지면 이 전략은 즉각적으로 판단할 수 없으며 더 큰 손실로 이어질 수 있습니다. 이 경우 수동 개입 또는 스톱 로스를 사용해야합니다.

  2. 단기 실적 부진

    이 전략은 주로 특정 진입 기회를 결정하기 위해 단기 신호에 의존합니다. 단기 성과가 좋지 않고 적절한 시간에 포지션을 열 수 없다면 전체 성과에 영향을 줄 것입니다. 단기 매개 변수를 조정하거나 단기 전략을 최적화 할 수 있습니다.

최적화 방향

이 전략에 대한 더 많은 최적화 공간이 있습니다:

  1. 스톱 로스 전략을 추가

    최대 손실을 제어하기 위해 이동 또는 명령 스톱 손실을 설정할 수 있습니다.

  2. 단기 전략 최적화

    다른 단기 지표들을 테스트하여 더 적합한 단기 전략을 찾고 진입 성과를 향상시킬 수 있습니다.

  3. 역동적으로 위치를 조정

    시장의 변동성에 따라 포지션을 동적으로 조정할 수 있고, 트렌드가 더 분명해지면 포지션을 늘릴 수 있습니다.

  4. 기계 학습을 결합

    많은 양의 데이터를 수집하고 기계 학습 방법을 사용하여 매개 변수와 규칙을 동적으로 최적화 할 수 있습니다.

결론

이 전략은 여러 시간 프레임에 걸쳐 트렌드 방향을 결정하고, 주요 트렌드의 판단을 보장하고 단기 기회를 활용하는 장기 및 단기 결합의 아이디어를 채택합니다. 전체 논리는 명확하고 합리적이며, 구현하기가 간단하며, 효과적인 트렌드 다음 전략입니다. 중지 손실 및 동적 위치 관리와 같은 기술 도입으로이 전략은 개선의 여지가 있으며 연습하고 최적화 할 가치가 있습니다.


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

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("D", "Timeframe 1")
TF_2_time = input("5D", "Timeframe 2")
TF_3_time = input("15D", "Timeframe 3")
TF_4_time = input("45D", "Timeframe 4")

transaction_size = input(1, "Contract/Share Amount")

src = close, len = 20
out = sma(src, len)
width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor


TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long, qty=transaction_size, when=strategy.position_size == 0)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short, qty=transaction_size, when=strategy.position_size == 0)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)


더 많은