이중 이동 평균 오스실레이션 거래 전략

저자:차오장, 날짜: 2023-12-04 15:28:12
태그:

img

전반적인 설명

이중 이동 평균 오스실레이션 거래 전략은 오스실레이션 시장에서 이익을 얻기 위해 2/20 기하급수 이동 평균과 적응 가격 구역 오스실레이션 지표를 결합하여 거래 신호를 생성합니다. 이 전략은 주식 지수, 외환, 재화 및 디지털 통화와 같은 명백한 오스실레이션 특성을 가진 시장에 주로 적합합니다.

전략 원칙

이중 이동 평균 오시슬레이션 거래 전략은 두 부분으로 구성됩니다.

  1. 2/20 기하급수적 이동 평균. 이 지표는 가격이 20일 라인을 뚫고 상승 시 2일 라인을 뚫지 않을 때 구매 신호를 생성합니다. 가격이 2일 라인을 뚫고 하락 시 20일 라인을 초과하지 않을 때 판매 신호를 생성합니다.

  2. 적응 가격 영역 오스실레이션 지표. 이 지표는 가격의 변동성 범위에 기초하여 가격 대역을 구성하고 상위 및 하위 가격 대역을 뚫고 구매 및 판매 신호를 생성하는 가격으로 시장 전환점을 판단합니다.

이중 이동 평균 오시레이션 거래 전략은 2/20 지수 이동 평균과 적응 가격 영역 오시레이션 지표가 동시에 전략 거래를 구현하기 위해 신호를 발행 할 때만 실제 거래 신호를 생성합니다. 이것은 일부 유효하지 않은 신호를 효과적으로 필터링하고 신호 품질을 향상시킬 수 있습니다.

이점 분석

이중 이동 평균 오스실레이션 거래 전략은 이동 평균 지표와 변동성 지표의 장점을 결합하여 다음과 같은 특징을 가지고 있습니다.

  1. 신뢰할 수 있는 거래 신호. 이중 표시자 검증은 신호 품질을 향상시키고 유효하지 않은 신호를 효과적으로 필터링합니다.

  2. 변동 시장에 적응합니다. 이동 평균 및 가격 대역 지표의 결합 사용은 변동 시장의 전환점을 정확하게 결정할 수 있습니다.

  3. 중간 작업 빈도. 이중 지수 이동 평균 전략과 비교하면 유효하지 않은 거래의 발생을 줄일 수 있습니다.

  4. 자동 거래를 구현하기 쉽습니다. 신호 규칙은 명확하고 매개 변수는 설정하기 쉽습니다. 자동 거래를 달성하기 위해 프로그래밍하는 것이 쉽습니다.

위험 분석

이중 이동평균 오스실레이션 거래 전략은 또한 다음과 같은 위험을 가지고 있습니다.

  1. 신호 지연이 커질 수 있습니다. 이중 지표를 필터 신호로 결합하면 빠른 가격 반전을위한 기회를 놓칠 수 있습니다.

  2. 오스실레이션이 약화되면 낮은 성과. 전략은 주로 오스실레이션 시장에 의존하며, 변동성이 약화되면 거래 신호와 이익 마진이 감소합니다.

  3. 매개 변수 최적화의 중요한 영향: 지표 매개 변수 설정은 거래 결과에 더 큰 영향을 미칠 수 있으며 최적의 매개 변수를 위해 체계적으로 최적화되어야합니다.

위의 위험에 대응하여, 시장 환경 변화에 적응하기 위해 매개 변수를 동적으로 조정하는 방법과 같은 방법을 채택할 수 있으며, 하락 위험을 제어하기 위해 스톱 로스 전략을 설정할 수 있습니다.

최적화 방향

이중 이동 평균 오스실레이션 거래 전략은 다음 측면으로 최적화 될 수 있습니다:

  1. 이동 평균과 가격 대역의 더 많은 조합을 테스트하십시오. 최적의 매개 변수 조합을 찾기 위해 다양한 길이의 이동 평균과 가격 대역을 체계적으로 테스트하십시오.

  2. 필터 신호에 볼륨 표시기를 추가합니다. 이동 평균의 가격 신호를 필터하는 비정상적인 거래 볼륨 신호를 결합하면 신호 품질을 더욱 향상시킬 수 있습니다.

  3. 동적 스톱 로스 메커니즘을 설정합니다. 시장 변동성이 약화되면 단일 손실을 줄이기 위해 적절한 스톱 로스 포인트를 강화하십시오.

  4. 딥러닝 모델을 결합합니다. 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)

더 많은