
쌍평선 반전 거래 전략은 브린 라인 반전 거래 전략과 쌍 지수 이동 평균 거래 전략을 결합하여 통합 신호 판단의 거래 전략을 설계한다. 그것은 주식, 외환, 암호화폐 등의 시장에서 사용할 수 있다.
이 전략은 두 부분으로 구성되어 있습니다.
브린 라인 지표의 두 줄 - %K 라인 및%D 라인을 사용하십시오. 종결 가격이 전날보다 2 일 연속으로 낮아지고%K 라인이 전날보다 2 일 연속으로 높을 때 더 많이하십시오. 종결 가격이 전날보다 2 일 연속으로 높고%K 라인이 전날보다 2 일 연속으로 높고%D 라인이 낮아지면 공백하십시오.
20일과 20일*2의 이중 지수 이동 평균. 가격이 위에서 아래로 또는 아래에서 이중 지수 이동 평균을 통과 할 때 거래 신호가 발생한다.
통합 신호 판단 규칙: 두 가지 전략의 거래 신호가 일치하면 실제 거래 신호가 생성된다.
이러한 조합 전략의 가장 큰 장점은 신뢰성이 높고, 거짓 신호가 거의 없다는 것이다. 왜냐하면 그것은 두 가지 다른 유형의 전략의 신호를 동시에 촉발시켜서, 단일 전략에서 발생할 수 있는 몇 가지 잘못된 신호를 필터링하기 때문이다.
또한, 반전 전략과 트렌드 전략이 결합되어 있기 때문에, 지표된 증권 가격의 단기 반전과 중기 트렌드를 잡을 수 있다.
이 전략의 주요 위험은, 시장이 장기적으로 흔들림 조정 상태에 있을 때, 두 가지 전략이 일치하는 신호를 생성할 수 없으므로 무효 시장 상태를 초래할 수 있다는 것입니다. 이 경우, 거래자는 명확한 추세가 형성될 때까지 전략을 일시적으로 사용해야합니다.
또한, 이중 지수 이동 평균은 중장선 지표로서, 짧은 선이 급격히 반전할 때에도 실패할 수 있다. 이것은 거래자가 더 많은 지표와 결합하여 대장선 움직임을 판단할 필요가 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
더 많은 매개 변수들을 추가하여, 예를 들어, 스톱포인트, 스톱포인트의 이동 등이 전략에 더 많은 통제력을 부여합니다.
더 많은 지표를 추가하여 여러 필터링 조건을 형성하고 더 많은 노이즈 거래를 배제합니다. MACD, KD와 같은 다른 지표를 결합하는 것과 같이.
최적화 지표 변수, 예를 들어, 브린 라인 주기, 이동 평균 주기 등의 변수의 조정, 최적의 변수 조합을 찾습니다.
이 전략이 서로 다른 품종 (주식, 외환, 암호화폐 등) 에서 어떻게 효과가 있는지 개별적으로 테스트하여 가장 적합한 품종을 선택하십시오.
쌍평선 반전 전략은 반전 전략과 트렌드 전략을 조합하여 비교적 신뢰할 수 있는 종합 거래 신호를 형성한다. 이는 증권 가격의 단기 반전과 중기 경향 모두에 관심이 있는 거래자에게 적합하다. 그러나 장기적인 충격적인 상황에서 이 전략은 실패할 수 있다. 최적화 파라미터와 더 많은 지표를 추가함으로써 이 전략의 실용성을 더욱 강화할 수 있다.
/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 12/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
// 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.
// Please, use it only for learning or paper trading. Do not for real trading.
//
// 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
EMA2_20(MA_Length, MA_xPrice) =>
xXA = ema(MA_xPrice, MA_Length)
nHH = max(high, high[1])
nLL = min(low, low[1])
nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
pos = 0.0
pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal and 2/20 EMA", shorttitle="Combo Backtest", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
MA_Length = input(20, minval=1)
reverse = input(false, title="Trade reverse")
MA_xPrice = close
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA2_20 = EMA2_20(MA_Length, MA_xPrice)
pos = iff(posReversal123 == 1 and posEMA2_20 == 1 , 1,
iff(posReversal123 == -1 and posEMA2_20 == -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 )