
양평선 ADX 선택시 전략은 2/20평선과 ADXR 지표를 결합하여 트렌드를 식별하여 트렌드 초기 단계에서 거래 신호를 생성한다. 이 전략은 먼저 2⁄20 지수 이동 평균을 사용하여 가격 트렌드 방향을 판단하고 ADXR 지표와 결합하여 트렌드 신호를 추가로 확인하여 더 신뢰할 수있는 거래 신호를 생성한다.
쌍평선 ADX 선택시 전략의 핵심 논리는 다음과 같은 부분들에 기초한다:
2⁄20 지수 이동 평균 (EMA)
ADXR 지표
거래 신호
이 전략의 주요 혁신은 ADXR 지표를 사용하여 초기 단계의 트렌드를 식별하고 전통적인 일률 전략의 신호와 결합하여 신호 품질을 향상시키고 전략의 안정성을 강화하는 것입니다.
쌍평선 ADX 선택시 전략은 다음과 같은 주요 장점을 가지고 있다:
이중 평행 ADX 선택 전략에는 다음과 같은 주요 위험도 있습니다.
ADXR 파라미터를 잘못 설정하면 거래 기회를 놓칠 수 있습니다.
특수한 상황에서는 더 많은 가짜 신호가 발생할 수 있습니다.
EMA의 매개 변수는 고정되어 있고 시장의 변화에 적응할 수 없습니다.
가격 변동 영역을 식별할 수 없는 경우, 너무 많은 무효 거래가 발생할 수 있습니다.
쌍평선 ADX 선택시 전략은 다음과 같은 몇 가지 측면에서 더욱 최적화될 수 있다:
EMA 파라미터를 최적화하여 상황에 따라 자동으로 변경할 수 있습니다.
ADXR 파라미터 범위가 최적화되어 더 많은 효과적인 거래 신호를 포함할 수 있습니다.
추가적인 트렌드 판단 지표, 조합 생성 신호, 품질 향상.
더 많은 스톱로스 전략, 더 많은 스톱 스탠더드, 더 많은 단일 거래 위험을 통제하는 것.
자금 관리 전략을 최적화하여 계정 상태에 따라 자동으로 위치를 조정할 수 있습니다.
쌍평선 ADX 선택시 전략은 전통적인 쌍평선 전략과 ADXR 지표의 혁신적 조합을 통해 신호 품질을 향상시키고 전략 안정성을 강화하며, 트렌드의 초기 단계를 효과적으로 식별할 수 있으며, 역사적인 역추적 성능이 좋습니다. 이 전략은 최적화 할 수있는 공간이 넓고, 여러 측면에서 개선 할 수 있으며, 더 복잡한 시장에서 강력한 적응력과 수익을 창출 할 수 있습니다.
/*backtest
start: 2023-11-05 00:00:00
end: 2023-12-05 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 04/04/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 Average Directional Movement Index Rating (ADXR) measures the strength
// of the Average Directional Movement Index (ADX). It's calculated by taking
// the average of the current ADX and the ADX from one time period before
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
// and weakening trends. However, because it represents an average of ADX, values
// don't fluctuate as dramatically and some analysts believe the indicator helps
// better display trends in volatile markets.
//
//
// 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
fADX(Len) =>
up = ta.change(high)
down = -ta.change(low)
trur = ta.rma(ta.tr, Len)
plus = fixnan(100 * ta.rma(up > down and up > 0 ? up : 0, Len) / trur)
minus = fixnan(100 * ta.rma(down > up and down > 0 ? down : 0, Len) / trur)
sum = plus + minus
100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), Len)
ADXR(LengthADX,LengthADXR,Signal1,Signal2) =>
pos = 0.0
xADX = fADX(LengthADX)
xADXR = (xADX + xADX[LengthADXR]) / 2
pos := xADXR < Signal1 ? 1 : xADXR > Signal2 ? -1 : nz(pos[1], 0)
pos
strategy(title='Combo 2/20 EMA & ADXR', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ ADXR ═════●'
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
Signal1 = input.float(13, step=0.01)
Signal2 = input.float(45, step=0.01)
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)
prePosADXR = ADXR(LengthADX,LengthADXR,Signal1,Signal2)
iff_1 = posEMA20 == -1 and prePosADXR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosADXR == 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)