Estratégia de negociação algorítmica de curto prazo com vários indicadores

Autora:ChaoZhang, Data: 14 de setembro de 2023 19:46:55
Tags:

Este artigo apresenta em detalhes uma estratégia de negociação algorítmica de curto prazo que combina vários indicadores.

I. Lógica da estratégia

O núcleo desta estratégia consiste na utilização de uma combinação de múltiplos indicadores, nomeadamente:

(1) Sistema de média móvel dupla: Calcula uma média móvel Hull rápida e uma média móvel Hull lenta e julga a tendência com base no seu cruzamento.

(2) Sistema Ichimoku: Calcula a conversão e as linhas de base, entre outros, e determina a tendência e os níveis de suporte/resistência com base na nuvem Ichimoku.

(3) Canal de Donchian: Constrói um canal utilizando os preços mais altos e mais baixos para identificar as variações de preços.

(4) MACD: Calcula o MACD e a linha de sinal, fazendo transações com base no seu cruzamento.

Só quando estes indicadores chegarem a um consenso sobre o julgamento da tendência serão gerados sinais de negociação fiáveis.

Tomar posições longas quando o Hull MA rápido cruzar acima do Hull MA lento, E as linhas de Ichimoku cruzarem acima da nuvem, E o Canal de Donchian quebrar, E o MACD cruzar acima da linha de sinal.

Os preços de fechamento diários das barras também são incorporados para evitar ficarem presos em reversões.

Além disso, a estratégia contém uma lógica de stop loss e take profit para controlar o risco e a recompensa para cada negociação.

II. Vantagens da Estratégia

A maior vantagem desta estratégia é a complementaridade das combinações de indicadores, o que melhora a qualidade do sinal.

Em segundo lugar, a combinação de quadros de tempo múltiplos é também uma vantagem significativa.

Por último, o mecanismo de stop loss e take profit garante também riscos controlados por transação.

III. Riscos potenciais

Apesar do bom desenho da estratégia, devem igualmente ser tidos em conta os riscos comerciais:

Em primeiro lugar, a combinação de múltiplos indicadores aumenta a dificuldade de otimização.

Em segundo lugar, os stop losses podem ser atingidos por fortes movimentos de tendência, levando a perdas desnecessárias.

Por último, os julgamentos com vários prazos podem também introduzir situações confusas e difíceis de decifrar.

No geral, a estratégia combina indicadores de forma científica e pode se tornar um sistema de negociação algorítmica eficaz a curto prazo através de testes e otimização de parâmetros.

IV. Resumo

Em resumo, este artigo introduziu em detalhes uma estratégia de negociação algorítmica de curto prazo que combina vários indicadores. Ele usa uma combinação de médias móveis duplas, Ichimoku, Donchian Channel, MACD e mais para melhorar a qualidade do sinal. Ele também utiliza análise de vários prazos e lógica stop loss / take profit para controlar riscos. Com otimização, esta estratégia pode se tornar um sistema eficiente para negociação sistemática de curto prazo.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Custom 15m strat",overlay=true)
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", step=0.0001)`
SL = input(defval=-500.00, title="Stop Loss in $", step=1)
TP = input(defval=25000.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength) //macd
aMACD = ema(MACD, MACD_Length) //signal
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
    strategy.entry("Short",strategy.short)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
//plot(longCondition == true ? 4000:4100,title="long")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green,  title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red,  title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart

Mais.