이중 평행선 역전 전략은 평행선과 역전 원칙을 종합적으로 이용한 주식 거래 전략이다. 이 전략은 먼저 123 역전 원칙을 사용하여 역전 거래 신호를 구성하고, 그 다음 2⁄20 지수 이동 평균과 결합하여 필터링을 수행하며, 두 신호가 일치할 때만 거래 지시를 생성하여 전략의 안정성을 높인다. 이 전략은 단기 역전 기회를 포착하는 동시에 장기 트렌드 필터를 사용하여 높은 확률의 거래 기회를 잠금시킨다.
이 전략은 두 부분으로 구성되어 있습니다.
123 역전 전략은 내가 어떻게 선물 시장에서 3 배의 수익을 얻을 수 있는지에 관한 책에서 나온 역전 전략 시스템에서 유래했다. 이 전략은 다음과 같은 원칙을 기반으로합니다.
이 전략은 2⁄20 지수 이동 평균을 사용하여 장기적인 추세를 판단한다. 가격이 2⁄20 평균선보다 높을 때 부진하고, 가격이 2⁄20 평균선보다 낮을 때 하락한다. 이 전략은 가짜 돌파구를 필터링 할 수 있다.
이 두 가지 전략을 조합하면 123 역전 신호와 2 / 20 평선 신호가 일치하면 진정한 거래 신호가 발생합니다.
이 전략은 단기 반전과 장기적인 경향을 결합하여 다음과 같은 장점을 가지고 있다:
123 역전 전략은 단기간의 과매매 과매매 현상을 포착할 수 있으며, 이러한 전환점은 종종 더 큰 가격 조정을 가져오기 때문에 더 높은 수익을 얻을 수 있습니다.
단순한 반전 전략은 트렌드 시장의 충격에 취약하여 많은 가짜 신호를 생성한다. 2⁄20 평선을 추가하면 트렌드에 부합하지 않는 신호를 필터링하여 상위와 하위의 위험을 피하고 신호의 품질을 향상시킬 수 있다.
단일 지표에만 의존하면 오류 신호가 많이 발생하기 쉽지만, 두 개의 상호 보완 지표와 결합하면 신호의 신뢰도를 크게 높이고, 손실을 줄일 수 있습니다.
이 전략의 각 부분 기능은 명확하고, 아이디어는 명확하며, 그 형성 원인을 이해하기 쉽고, 실제 상황에 따라 조정 및 최적화를 쉽게 할 수 있으며, 더 넓은 시장 환경에 적응할 수 있습니다.
이 전략은 명백한 장점에도 불구하고, 몇 가지 위험도 있습니다.
역사적인 성과는 미래의 성과를 나타내지 않으며, 반전 신호가 나타나면 가격 반전의 규모와 강도는 불확실하며, 손실을 초래할 수 있습니다.
2⁄20 평균선은 트렌드 상황을 완전히 필터링 할 수 없습니다. 트렌드가 매우 강할 때 단기 조정은 여전히 주 트렌드에 의해 삼켜져 손실이 발생할 수 있습니다.
다양한 파라미터 설정은 전략의 성능에 중대한 영향을 미치며, 많은 회수 및 시뮬레이션을 통해 최적의 파라미터를 찾아내야 하며, 파라미터의 최적의 범위는 시장 환경에 따라 변할 수도 있다.
단기 역사의 좋은 성과는 장기적으로 안정적인 수익을 의미하지 않습니다. 시장의 무작위성이 강하며 전략의 장기적 효과는 다양한 시장 환경에서 검증해야합니다.
합리적인 변수 조정, 스톱로스 설정, 위험 관리 등의 방법으로 이러한 위험을 제어 할 수 있습니다. 또한, 거래량, 변동율과 같은 지표와 같은 전략 안정성을 높이기 위해 더 많은 조건을 추가하는 것을 고려할 수 있습니다. 또한 기계 학습과 같은 방법을 도입하여 동적 최적화를 구현 할 수 있습니다.
이 전략은 다음의 몇 가지 측면에서 더 개선될 수 있습니다.
다양한 파라미터 조합을 테스트하여 더 안정적이고 더 눈에 띄는 반전 현상을 찾아서 반전 신호의 질을 향상시킬 수 있다.
다른 변수들의 평균선 조합을 테스트하거나, 여러 평균선 판단을 추가하여 트렌드 판단을 더 정확하고 포괄적으로 할 수 있다.
거래량, 변동률 등의 지표에 기초하여 더 많은 필터 조건을 설정할 수 있으며, 잘못된 판단율을 줄이고 안정성을 향상시킬 수 있다.
많은 양의 역사 데이터를 수집하여 기계 학습 방법을 기반으로 역학적 최적화를 수행하여 전략을 더 거칠게 만들 수 있습니다.
적절하게 수행된 스톱 로드는 전략의 최대 회수와 위험 구멍을 효과적으로 제어할 수 있다.
포지션 관리 및 재원 분배를 최적화하여 전략의 전체 기간 성과를 향상시킬 수 있습니다.
이중평등선 반전 전략은 간단한 실용적인 단기 거래 전략이다. 반전 거래와 추세를 판단하는 두 가지 큰 사고방식을 결합하여 단기 가격 반전 기회를 잡을 수 있고, 파격된 가짜 신호의 오해를 피할 수 있다. 이 전략 사고방식은 명확하고, 이해하기 쉽고, 최적화할 수 있으며, 실질적인 응용 가치가 있다. 그러나 우리는 무위험 전략이 존재하지 않으며, 지속적인 최적화와 위험 통제를 통해 전략을 더 안정적이고 신뢰할 수 있도록 해야 한다.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 06/08/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
// This indicator plots 2/20 exponential moving average. For the Mov
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// 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
EMA220(Length) =>
pos = 0.0
xPrice = close
xXA = ema(xPrice, Length)
nHH = max(high, high[1])
nLL = min(low, low[1])
nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
pos := iff(close > xXA and close > nXS , 1,
iff(close < xXA and close < nXS, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & 2/20 Exponential MA", 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, "---- 2/20 Exponential MA ----")
LengthMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA220 = EMA220(LengthMA)
pos = iff(posReversal123 == 1 and posEMA220 == 1 , 1,
iff(posReversal123 == -1 and posEMA220 == -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 )