이중 트렌드 추적 전략은 두 가지 다른 전략 신호를 조합하여 시장 추세를 더 정확하게 포착하여 초과 수익을 얻을 수 있습니다. 이 전략은 먼저 123 역전 전략을 사용하여 가격 역전 신호를 판단하고, 그 다음 과잉 구매 과잉 판매 지표와 결합하여 포지션 방향을 결정하여 추세를 추적하는 동시에 포장을 피합니다.
이 전략은 두 부분으로 구성되어 있습니다.
123 역전 전략은 먼저 지난 2 일간의 종결 가격 관계를 판단하고, 만약 최근 2 일간의 종결 가격이 역전되었다면 (예를 들어, 전날의 종결 가격이 올라갔고, 전 2 일간의 종결 가격이 내려갔을 경우), 가격이 전환될 수 있음을 나타냅니다.
둘째, 이 전략은 스토흐 지표와 결합하여 매매 시기를 판단한다. 스토흐 패스트 라인이 특정 수준 (예: 50) 보다 낮아지고 슬로우 라인이 특정 수준 (예: 50) 보다 높을 때, 오버 소드라고 생각하고 매매 신호를 발생시킨다. 스토흐 패스트 라인이 특정 수준 (예: 50) 보다 높고 슬로우 라인이 특정 수준 (예: 50) 보다 낮아지면, 오버 소드라고 생각하고 매매 신호를 발생시킨다.
따라서 123 역전 전략은 가격 역전을 판단하는 동시에 스토흐 지표 검증이 필요하며, 진정한 구매/판매 신호를 생성할 수 있다.
과매매 지표는 스토흐 지표를 직접 사용하며, 스토흐 지표가 특정 수준 (예: 90) 보다 높을 때, 오버 바이가 판매 신호를 생성한다고 간주하고, 스토흐 지표가 특정 수준 (예: 20) 보다 낮을 때, 오버 바이가 구매 신호를 생성한다고 간주한다.
이 지표는 스토흐 지표를 통해 오버 바이 오버 셀 영역을 직접 판단하여 트렌드를 추적하는 효과를 달성한다.
마지막으로, 이 전략은 위의 두 가지 전략적 신호를 조합합니다. 두 가지 전략적 신호가 동향되면 최종 구매 또는 판매 신호가 생성되어 시장 추세를 더 정확하게 포착 할 수 있습니다.
이중 트렌드 추적 전략의 가장 큰 장점은 가격 트렌드와 오버 바이 오버 소드를 동시에 확인할 수 있다는 것입니다. 거래 신호의 오류를 방지하는 것입니다. 구체적인 장점은 다음과 같습니다:
두 가지 전략 신호를 조합하면, 검증 메커니즘이 더 안정되어 단일 전략 판단 오류로 인한 손실을 줄일 수 있습니다.
123 역전 전략은 가격 역전 신호를 판단하여 잠재적인 트렌드 전환점을 적시에 잡을 수 있다.
오버 바이 오버 셀 지표는 시장의 현재 상황을 확인하고, 하락의 추격을 피하는 데 도움이 됩니다.
두 가지 전략은 상호 검증하여 거래 신호의 오류를 방지하여 전략의 안정성을 향상시킬 수 있습니다.
간단한 효과적 인 지표와 전략 논리가 명확하고 이해하기 쉽고 실제 적용에 편리합니다.
이 전략은 조합 검증을 통해 안정성을 높였지만, 위험도 존재합니다.
123 반전 전략은 가격 반전 지점을 완벽하게 판단할 수 없으며, 반전 기회의 일부를 놓칠 수 있다. 반전 신호의 판단 임계 (threshold) 를 낮추기 위해 파라미터를 적절히 조정할 수 있다.
오버 바이 오버 소드 지표는 오직 하나의 스토흐 지표에 기반하여 잘못된 신호를 생성할 수 있다. 이동 평균과 같은 지표가 추가될 수 있다.
두 가지 전략 신호는 서로 상쇄되어 놓친 거래 기회를 초래할 수 있습니다. 전략 포트폴리오의 조건적 제약을 줄이기 위해 매개 변수를 적절하게 조정할 수 있습니다.
전략은 단지 역사적 데이터 회귀에 기초하고, 실판의 매개 변수는 계속 테스트를 통해 최적화해야 한다. 손실을 제어하는 스톱저스 메커니즘을 추가해야 한다.
다른 품종과 거래 기간의 파라미터는 독립적으로 테스트 최적화를 필요로 하며, 완전히 복사할 수 없는 파라미터이다.
이 전략은 다음의 몇 가지 측면에서 계속 개선될 수 있습니다.
두 가지 전략의 매개 변수를 최적화하여, 다른 시장 조건의 매개 변수 조합을 찾아, 최적화 프로그램 선택에 대 한 매개 변수 풀을 형성한다.
이동 평균, 브린 밴드 등의 지표에 기반한 필터링 조건을 추가하여 잘못된 신호를 방지한다.
시속 정지, 이동 정지, 시간 정지 등과 같은 손해 방지 메커니즘을 추가하고, 제어 전략의 최대 철회.
다양한 품종은 거래량이나 보유량에 대한 필터를 추가하는 것을 고려할 수 있으며, 저 유동성 거래는 피할 수 있다.
전략 파라미터가 시간이 지남에 따라 변하는 법칙을 연구할 수 있으며, 기계 학습 방법을 사용하여 자동으로 최적화할 수 있다.
시장에 진입하는 횟수를 최적화하고, 명확한 추세가 없는 시장에서 자주 거래하는 것을 피하십시오.
이중 트렌드 추적 전략은 123 역전 전략과 오버 바이 오버 시드 지표를 조합하여 가격 트렌드 역전과 동시에 현재 오버 바이 오버 시드 여부를 정확하게 판단하여 잘못된 신호를 필터링하여 실제 트렌드를 캡처합니다. 단일 지표 전략에 비해 이 전략은 안정성과 수익성이 강합니다. 그러나 여전히 위험을 통제하고 적시에 중지해야합니다. 향후 지수 최적화, 필터링 조건을 추가하고 자동화 등을 통해 전략 성능을 계속 향상시킬 수 있습니다.
/*backtest
start: 2022-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 30/03/2021
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Simple Overbought/Oversold indicator
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
OO(Length,BuyBand,SellBand) =>
pos = 0.0
xOBOS = stoch(close, high, low, Length)
nRes = iff(close > close[Length], xOBOS / 100, (100 - xOBOS) / 100)
pos :=iff(nRes < SellBand, -1,
iff(nRes > BuyBand, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Overbought/Oversold", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Overbought/Oversold ----")
LengthOO = input(10, minval=1)
BuyBand = input(0.92, step = 0.01)
SellBand = input(0.5, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posOO = OO(LengthOO,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posOO == 1 , 1,
iff(posReversal123 == -1 and posOO == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1 )
strategy.entry("Long", strategy.long)
if (possig == -1 )
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )