이중평균선 흔들림 거래 전략은 2⁄20 지수 이동 평균과 적응 가격대 흔들림 지표를 조합하여 거래 신호를 형성하여 흔들림 상황에서 이익을 얻습니다. 이 전략은 주식 지수, 외환, 상품 및 디지털 통화와 같은 명백한 흔들림 특성이있는 시장에 주로 적용됩니다.
이중평평선 흔들림 거래 전략은 두 부분으로 구성됩니다.
2⁄20 지수 이동 평균. 이 지표는 가격 상승이 20일선을 뚫고 하락이 2일선을 넘지 않은 경우 구매 신호를 발생시킨다. 가격 하락이 2일선을 뚫고 20일선을 넘지 않은 경우 판매 신호를 발생시킨다.
적응 가격대 흔들림 지표. 이 지표는 가격의 변동 범위를 기반으로 가격대를 구성하고, 가격으로 상하 가격대 돌파구를 판단하여 시장 전환점을 판단하여 구매 및 판매 신호를 생성한다.
이중 평균선 흔들림 거래 전략은 2⁄20 지수 이동 평균과 적응 가격带 흔들림 지표가 동시에 신호를 발송할 때 실제 거래 신호를 생성하여 전략 거래를 구현합니다. 이것은 일부 비효율 신호를 효과적으로 필터링하여 신호의 품질을 향상시킬 수 있습니다.
이중 평행선 흔들림 거래 전략은 평행선 지표와 변동성 지표의 장점을 활용하여 다음과 같은 특징을 가지고 있습니다.
신뢰할 수 있는 거래 신호. 이중 지표 검증은 신호 품질을 향상시키고, 유효한 신호를 필터링한다.
충격적 상황에 적응한다. 평균선과 가격대 지표의 조합을 사용하여 충격적 상황에서의 전환점을 정확하게 결정할 수 있다.
거래 빈도는 적당하다. 이중 지수 이동 평균 전략에 비해 무효 거래의 발생을 줄일 수 있다.
자동 거래를 쉽게 구현한다. 신호 규칙이 명확하고, 매개 변수 설정이 간단하며, 자동 거래를 구현하기 위해 프로그래밍이 쉽다.
이중 평행선 흔들림 거래 전략에는 다음과 같은 위험도 있습니다.
신호 지연이 더 클 수 있다. 이중 지표 조합은 필터링 신호를 주고, 가격의 빠른 반전을 놓칠 수 있다.
충격적인 상황이 약해지면 효과가 떨어진다. 전략은 주로 충격적인 상황에 의존한다. 충격성이 약해지면 거래 신호와 수익의 공간이 감소한다.
매개 변수 최적화의 영향은 뚜렷하다. 지표 매개 변수 설정은 거래 결과에 큰 영향을 미치며, 시스템 최적화를 통해 최적의 매개 변수를 결정해야 한다.
위와 같은 위험에 대해, 시장 환경의 변화에 대응하는 동적으로 조정되는 매개 변수 방법을 채택할 수 있으며, 손실 위험을 제어하는 스톱 손실 전략을 설정할 수 있습니다.
이중 평행선 흔들림 거래 전략은 다음과 같은 측면에서 최적화될 수 있다:
더 많은 평균선과 가격대 변수 조합을 테스트하십시오. 평균선과 가격대 변수 조합의 다양한 길이를 체계적으로 테스트하여 최적의 변수 조합을 찾으십시오.
거래량 지표 필터링 신호를 추가한다. 거래량 비정상 신호 필터링 평균선 가격 신호와 결합하여 신호 품질을 더욱 향상시킬 수 있다.
동적 스톱 메커니즘을 설정한다. 시장의 변동성이 약해지면 스톱 포인트를 적절히 강화하여 단독 손실을 줄인다.
딥 러닝 모델과 결합. LSTM와 같은 딥 러닝 모델을 사용하여 거래 신호를 검증하여 전략을 더욱 지능화한다.
이중평균선 흔들림 거래 전략은2/20 지수 이동 평균과 적응 가격대 흔들림 지표를 조합하여 높은 품질의 흔들림 거래 신호를 생성하고 주식 지수, 외환, 상품과 같은 변동성이 높은 시장에 적응할 수 있으며, 흔들림 영역 내에서 자주 거래 할 수 있습니다. 이 전략은 신호 품질이 높고, 자동화하기 쉬운 구현 등의 장점이 있습니다. 동시에 전환점 식별 지연 및 동적 조정 파라미터의 위험을 제어하는 데 주의를 기울여야 합니다.
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 02/03/2022
// This is combo strategies for get a cumulative signal.
//
// First 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.
//
// Second strategy
// The adaptive price zone (APZ) is a volatility-based technical indicator that helps investors
// identify possible market turning points, which can be especially useful in a sideways-moving
// market. It was created by technical analyst Lee Leibfarth in the article “Identify the
// Turning Point: Trading With An Adaptive Price Zone,” which appeared in the September 2006 issue
// of the journal Technical Analysis of Stocks and Commodities.
// This indicator attempts to signal significant price movements by using a set of bands based on
// short-term, double-smoothed exponential moving averages that lag only slightly behind price changes.
// It can help short-term investors and day traders profit in volatile markets by signaling price
// reversal points, which can indicate potentially lucrative times to buy or sell. The APZ can be
// implemented as part of an automated trading system and can be applied to the charts of all tradeable assets.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
pos = 0.0
xPrice = close
xXA = ta.ema(xPrice, Length)
nHH = math.max(high, high[1])
nLL = math.min(low, low[1])
nXS = nLL > xXA or nHH < xXA ? nLL : nHH
iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
pos := nXS > close[1] ? -1 : iff_1
pos
APZ(nPeriods,nBandPct) =>
pos = 0.0
xHL = high - low
nP = math.ceil(math.sqrt(nPeriods))
xVal1 = ta.ema(ta.ema(close,nP), nP)
xVal2 = ta.ema(ta.ema(xHL,nP), nP)
UpBand = nBandPct * xVal2 + xVal1
DnBand = xVal1 - nBandPct * xVal2
pos := low < DnBand ? 1 : high > UpBand ? -1 : pos[1]
pos
strategy(title='Combo 2/20 EMA & Adaptive Price Zone', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Adaptive Price Zone ═════●'
nPeriods = input(20)
nBandPct = input(2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAPZ = APZ(nPeriods,nBandPct)
iff_1 = posEMA20 == -1 and prePosAPZ == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAPZ == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
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)