이 전략은 다중 시간 프레임을 사용하여 거래하는 전략으로, 주로 장기 시간 프레임을 사용하여 트렌드 방향을 판단하고, 중기 시간 프레임을 사용하여 동력 방향을 판단하고, 단기 시간 프레임을 사용하여 특정 입구를 찾습니다. 전체적으로, 전략의 주요 아이디어는 동력, 동력 및 특정 입구 지점을 동시에 사용하여 세 가지 다른 시간 단위의 정보를 사용하여 결정을 내립니다.
이 전략은 다음과 같은 부분들을 통해 이루어집니다.
다른 시간 프레임 정의
장기적 추세를 판단하는 방법
중장기적 동력을 판단하는 방법
출입구를 찾습니다.
탈퇴 지점
종합적으로, 이 전략은 다중 시간 프레임의 정보를 활용하여, 동향과 시기를 길고 짧은 차원에서 판단하고, 가짜 돌파구를 효과적으로 필터링하여, 동향의 배경에서 높은 확률의 입점 지점을 선택합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
다중 시간 프레임은 과학적이고 세밀하게 설계되어 시장의 움직임을 더 정확하게 판단하고, 시장의 단기 잡음으로 오해되는 것을 효과적으로 피할 수 있습니다.
트렌드, 동력, 출전 시기를 고려하면서도, 조건은 포괄적이고 엄격하며, 많은 가짜 신호를 필터링 할 수 있습니다.
스토흐 지표는 시장의 실제 전환 시기를 파악할 수 있는 매우 정확한 중간 동력을 판단합니다.
진입 조건은 엄격하게 설정되어 있으며, 대부분의 오프타임 회귀의 가짜 돌파구를 피할 수 있다.
명확한 스톱로스 탈퇴 지점을 설정하여 각 거래의 위험을 효과적으로 제어할 수 있습니다.
다양한 시장 환경에 적용되며, 특정 상황으로 제한되지 않습니다.
자금 관리 측면에서 최적화 할 수 있습니다. 고정 손실 비율을 설정, 동적으로 포지션을 조정하는 등.
이 전략에는 몇 가지 위험도 있습니다.
지진이 발생했을 때, 여러 번의 손실이 발생할 수 있습니다.
큰 트렌드가 변할 때, 트렌드의 판단이 늦어지고, 잘못 조작될 수 있다.
KDJ 지수만으로도 중기 동력이 변하는 경우를 놓칠 수 있다.
입시 조건이 너무 엄격해서 일부 관람을 놓칠 수도 있습니다.
이 사업의 수익은 상대적으로 제한적이어서 큰 규모를 파악하기 힘들다.
위험 대응은 다음과 같은 측면에서 최적화 될 수 있습니다:
적절한 변수를 조정하여 오류율을 줄여주세요.
트렌드 판단 지표를 추가하고 포트폴리오 판단을 구축하십시오.
MACD와 같은 중간 동력을 판단하는 더 많은 지표와 결합하십시오.
손해 차단 메커니즘을 최적화하고, 손해 차단 추적 방식이 바뀌었습니다.
큰 트렌드가 바뀌면, 정지점과 포지션을 적시에 조정한다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
매개 변수 최적화. 예를 들어 MA 주기 변수, Stoch 변수 등을 조정하여 신호를 더 정확하게 한다.
더 많은 지표 판단을 추가한다. MACD, Bollinger Band 등 지표 보조 판단을 도입할 수 있다.
입시 조건을 최적화하십시오. 입시 조건을 완화하고 거래 빈도를 적절하게 증가시키는 것을 고려할 수 있습니다.
최적화 스톱 방식. 스톱을 추적하거나, ATR에 따라 스톱을 설정할 수 있다.
포지션 관리를 추가한다. 큰 트렌드가 변할 때 포지션을 적극적으로 조정한다.
기계 학습을 최적화한다. 기계 학습 방법을 사용하여 매개 변수 및 전략 규칙을 자동으로 최적화한다.
기본적 요소를 고려한다. 중요한 경제 데이터와 함께 거래 신호를 추가로 확인한다.
다양한 품종의 사용 효과를 테스트한다. 외환, 귀금속 등 다양한 품종의 효과를 평가하는 전략이다.
이 다중 시간 프레임 트렌드 전략의 전체적인 관점에서 볼 때, 핵심 아이디어는 긴, 중간, 짧은 3 차원의 정보를 사용하여 결정을 내리는 것이다. 전략의 장점은 조건이 엄격하고, 위험은 제어 가능하지만, 특정 시장에 대한 매개 변수 및 규칙 최적화가 필요하다. 미래에는 더 많은 지표를 도입하고, 손해 중지 방법을 최적화하고, 기계 학습과 같은 방법을 추가함으로써 전략을 더욱 개선할 수 있다.
/*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)