Estratégia de negociação quantitativa de curto prazo baseada em múltiplos indicadores


Data de criação: 2023-09-14 19:46:55 última modificação: 2023-09-14 19:46:55
cópia: 1 Cliques: 785
1
focar em
1617
Seguidores

Este artigo detalha uma estratégia de negociação quantitativa de linha curta com uma combinação de vários indicadores. A estratégia utiliza um conjunto de indicadores técnicos poderosos para gerar sinais de negociação em períodos de tempo baixos (por exemplo, 15 minutos).

Princípios estratégicos

O núcleo da estratégia é o uso de uma combinação de vários indicadores, incluindo:

(1) Sistema de dupla equilíbrio: Calcule duas médias móveis de Hull de forma rápida e lenta, julgando a direção da tendência de acordo com a sua relação de cruzamento.

(2) Sistema Ichimoku: calcula linhas de conversão, linhas de referência, etc., e combina tendências e resistências de suporte com o diagnóstico da topografia da nuvem.

(3) Canal Donchian: construção de canais através de preços máximos e mínimos para determinar a ruptura de preços.

(4) MACD: Calcule o MACD e a linha de sinal e opere de acordo com sua interseção.

Quando esses indicadores estão de acordo com os critérios de tendência, os sinais de negociação são mais confiáveis. A lógica é:

Quando o Hull MA rápido atravessa o Hull MA lento, E a linha Ichimoku atravessa o mapa da nuvem E a passagem do canal Donchian E a linha de sinal atravessa o MACD, faça mais; ao contrário, julgue o vazio.

Ao mesmo tempo, as mudanças no preço de fechamento do K Line diário são usadas como critério auxiliar para evitar a inversão da cadeia.

Além disso, a estratégia contém uma lógica de stop loss e stop loss, que permite controlar o risco de retorno de uma única transação.

A vantagem estratégica

A maior vantagem da estratégia é que o conjunto de indicadores se complementam, o que aumenta a qualidade do sinal. Diferentes indicadores julgam a tendência de vários ângulos, e apenas um consenso produz um sinal, o que evita a limitação de um único indicador.

Em segundo lugar, a combinação de múltiplos ciclos de tempo também é uma grande vantagem. O julgamento auxiliar do Kline diário pode filtrar o risco de um curto período de Low ciclo ser encaixado.

Por fim, a estratégia contém um mecanismo de stop-loss que permite controlar o risco de cada transação.

C. Riscos potenciais

Apesar da estratégia ser razoavelmente concebida, as transações também devem ter em conta os seguintes riscos:

Em primeiro lugar, a combinação de múltiplos indicadores aumenta a dificuldade de otimização de parâmetros, e a configuração inadequada pode levar a otimização excessiva.

Em segundo lugar, em uma tendência forte, o stop loss pode ser rompido e trazer prejuízos.

Finalmente, há casos em que os complexesignals são difíceis de serem julgados.

Em geral, a estratégia combina a ciência lógica geral, que pode ser continuamente otimizada por meio de testes de parâmetros, para se tornar uma estratégia de quantificação de linha curta eficaz.

Quatro conteúdos, resumo

Este artigo detalha uma estratégia de negociação quantitativa de linha curta com combinações de vários indicadores. Utiliza indicadores como a linha de dupla equivalência, o canal Ichimoku, o canal Donchian e o MACD para a combinação, melhorando a qualidade do sinal.

Código-fonte da estratégia
/*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