
A estratégia de escolha do ADX de linha dupla identifica a tendência usando a combinação da linha média de 2⁄20 e o indicador ADXR para produzir um sinal de negociação no início da tendência. A estratégia usa primeiro a média móvel de 2⁄20 para determinar a direção da tendência de preços e, em seguida, combina o indicador ADXR para confirmar ainda mais o sinal de tendência, resultando em um sinal de negociação mais confiável.
A lógica central da estratégia de escolha do ADX é baseada nas seguintes partes:
2⁄20 média móvel (EMA)
Indicador ADXR
Sinais de negociação
A principal inovação da estratégia é a utilização de indicadores ADXR para identificar tendências em estágios iniciais e combiná-los com sinais de estratégias lineares tradicionais, melhorando a qualidade do sinal e aumentando a estabilidade da estratégia.
A estratégia de escolha de ADX de linha dupla tem as seguintes principais vantagens:
Os principais riscos associados a uma estratégia de ADX de linha dupla são:
A configuração incorreta dos parâmetros ADXR pode causar oportunidades de negociação perdidas.
Em circunstâncias especiais, pode haver mais sinais falsos.
Os parâmetros da EMA são fixos e não se adaptam às mudanças do mercado.
A incapacidade de identificar os intervalos de flutuação pode gerar muitos negócios inválidos.
A estratégia de escolha do ADX de linha dupla pode ser ainda mais otimizada em vários aspectos:
Os parâmetros da EMA são otimizados para que possam ser alterados automaticamente de acordo com a situação.
A gama de parâmetros do ADXR foi otimizada para conter mais sinais de negociação efetivos.
Adição de indicadores adicionais de avaliação de tendências, combinação de geração de sinais, melhoria da qualidade.
Aumentar a estratégia de stop loss, definir padrões de stop loss e controlar o risco de cada transação.
Optimizar a estratégia de gestão de fundos, permitindo que ele ajuste automaticamente as posições de acordo com o estado da conta.
A estratégia de escolha do ADX de linha dupla, através de uma combinação inovadora de estratégias tradicionais de linha dupla e indicadores ADXR, aumenta a qualidade do sinal, aumenta a estabilidade da estratégia, é capaz de identificar efetivamente a tendência na fase inicial, o histórico de retrospectiva é melhor. A estratégia tem um grande espaço de otimização e pode ser melhorada em vários aspectos, o que a torna uma forte capacidade de adaptação e espaço para lucrar em mercados mais complexos.
/*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)