
이 전략의 주요 아이디어는 123 역전 전략과 절대 가격 변동 지표의 두 가지 유형의 전략을 결합하여 통합 신호를 얻는 것입니다. 구체적으로, 두 전략이 다수 신호를 발산하면 최종 전략 신호는 1 ((더 많은 것을); 두 전략이 다수 신호를 발산하면 최종 전략 신호는 -1 ((무익); 두 전략의 신호가 일치하지 않으면 최종 신호는 0 ((무익) 이다.
첫째, 123 역전 전략의 원칙은: 매장 가격이 전날의 매장 가격보다 2일 연속으로 낮아지고, 무작위 지표가 초과 구매 라인보다 낮아지면, 더 많이 매장하라; 매장 가격이 전날의 매장 가격보다 2일 연속으로 높아지고, 무작위 지표가 초과 판매 라인보다 높아지면, 더 많이 매장하라.
둘째, 절대 가격 변동 지표는 두 지수 이동 평균 사이의 차이를 나타냅니다. 빠른 이동 평균이 느린 이동 평균보다 높을 때, 긍정적으로, 추세를 나타냅니다. 반대로, 부정적으로, 추세를 나타냅니다.
마지막으로, 이 정책은 두 가지 하위 정책의 신호를 결합합니다. 즉, 둘 다 일치하는 신호를 내면, 이 신호에 따라 동작합니다. 그렇지 않으면 동작하지 않습니다.
이 전략은 종합적으로 단기 반전 신호와 가격의 중장기 트렌드를 고려하여 시장의 전환점을 효과적으로 식별할 수 있습니다. 123 반전 또는 APO 지표를 단독으로 사용하는 것에 비해 이 전략은 신호의 신뢰성을 크게 향상시키고 잘못된 신호의 발생을 줄일 수 있습니다.
또한, 이 전략은 여러 가지 기술 지표를 사용함으로써 시장 상황을 전체적으로 판단할 수 있습니다. 특정 지표에만 의존하지 않습니다. 이것은 특정 지표의 실패로 인해 전체적인 판단 오류가 발생하는 상황을 피할 수 있습니다.
이 전략의 가장 큰 위험은 123 역전 전략과 APO 지표가 서로 다른 신호를 내는 상황이다. 이 경우, 거래자는 자신의 경험을 바탕으로 어느 신호가 더 신뢰할 수 있는지 판단해야 한다. 판단이 오차가 발생하면 거래 기회를 놓치거나 손실이 발생할 수 있다.
또한, 만약 시장상황이 급격하게 변하여 단기 반전 신호와 중장기 트렌드 신호가 동시에 무효화되는 경우, 전략의 신호도 오류가 발생할 수 있다. 운영자는 주요 정치 경제 사건의 시장상황에 대한 영향에 주의를 기울여야 하며, 필요하다면 전략 운행을 일시 중단할 수 있다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
최적화 하위 전략의 변수, 하위 전략의 신호를 더 신뢰할 수 있게 한다. 예를 들어 이동 평균 주기 변수를 조정한다.
다른 보조 판단 지표를 추가하여 투표 메커니즘을 형성한다. 여러 지표가 일치하는 신호를 발산할 때, 신호의 신뢰도가 높아진다.
손실을 막는 전략을 추가하십시오. 가격 움직임이 기술 지표 예상과 일치하지 않을 때, 적시에 중지하면 손실을 계속 확장하는 것을 피할 수 있습니다.
포지션 개시 및 정지 위치를 최적화한다. 역사 재검토 데이터와 결합하여 더 적합한 구체적인 값을 설정한다.
이 전략은 복합적으로 여러 가지 기술 지표를 사용하여 상황을 판단하여 단일 지표에 의존하는 위험을 어느 정도 회피하고 신호 판단의 정확성을 향상시킵니다. 또한 이 전략에는 약간의 최적화 여지가 있으며 투자자는 자신의 필요에 따라 파라미터를 조정할 수 있습니다.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 22/04/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// The Absolute Price Oscillator displays the difference between two exponential
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
// APO crossing above zero is considered bullish, while crossing below zero is bearish.
// A positive indicator value indicates an upward movement, while negative readings
// signal a downward trend.
// Divergences form when a new high or low in price is not confirmed by the Absolute Price
// Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO
// forms a higher low. This indicates less downward momentum that could foreshadow a bullish
// reversal. A bearish divergence forms when price makes a higher high, but the APO forms a
// lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// 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
AbsolutePriceOscillator(LengthShortEMA, LengthLongEMA) =>
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = 0.0
pos := iff(xAPO > 0, 1,
iff(xAPO < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal and Absolute Price Oscillator (APO)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posAbsolutePriceOscillator = AbsolutePriceOscillator(LengthShortEMA, LengthLongEMA)
pos = iff(posReversal123 == 1 and posAbsolutePriceOscillator == 1 , 1,
iff(posReversal123 == -1 and posAbsolutePriceOscillator == -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 ? red: possig == 1 ? green : blue )