Estratégias de indicadores técnicos, estratégias de gestão de risco, estratégias de acompanhamento de tendências adaptativas

EMA SDI
Data de criação: 2024-07-29 17:25:26 última modificação: 2024-07-29 17:25:26
cópia: 0 Cliques: 470
1
focar em
1617
Seguidores

Estratégias de indicadores técnicos, estratégias de gestão de risco, estratégias de acompanhamento de tendências adaptativas

Visão geral

A estratégia é um sistema de negociação de acompanhamento de tendências auto-adaptável baseado em indicadores de movimentos de média (EMA) e de direção suave (SDI). Combina vários indicadores técnicos e ferramentas de gerenciamento de risco para capturar tendências de mercado e controlar o risco. A estratégia usa a cruz de EMAs rápidas e lentas e a direção do SDI para determinar tendências de mercado e, em consequência, gerar sinais de compra e venda.

O núcleo da estratégia está em sua adaptabilidade e abordagem abrangente de gerenciamento de risco. Com o uso de parâmetros ajustáveis, como o ciclo EMA, a suavidade do SDI e os limites de gerenciamento de risco, os comerciantes podem otimizar a estratégia de acordo com diferentes condições de mercado e preferências de risco pessoais. A configuração flexível do tamanho de alavancagem e posição aumenta ainda mais a adaptabilidade da estratégia, permitindo que ela se adapte a diferentes estilos de negociação e tamanho de capital.

Princípio da estratégia

  1. Indicador calculado:

    • Calcular os EMAs rápidos e lentos, e suas versões suaves.
    • Calcule o SDI, incluindo indicadores de direção positiva e negativa.
  2. Geração de sinais de transação:

    • Condição multi-cabeça: DI positivo maior que DI negativo, e EMA rápido maior que EMA lento.
    • Condição de vazio: DI negativo maior que DI positivo e EMA rápido menor que EMA lento.
  3. Gestão de posições:

    • O tamanho da transação é definido com base em um nível de alavancagem ajustável e percentagem de equidade.
    • Quando os requisitos de entrada são cumpridos, a posição inversa é eliminada e uma nova posição é aberta.
  4. Gestão de Riscos:

    • Implementação de funções opcionais de suspensão, parada e rastreamento de parada.
    • Ajuste dinâmico para rastrear o nível de stop loss para bloquear o lucro.
  5. Filtro de tempo:

    • Pode-se definir o início e o fim das negociações, para que a posição seja automaticamente liquidada fora do intervalo de tempo especificado.

Vantagens estratégicas

  1. Capacidade de captura de tendências: Combinação de EMA e SDI para identificar e acompanhar de forma eficaz as tendências do mercado.

  2. Adaptável: adapta-se a diferentes condições de mercado através de parâmetros ajustáveis.

  3. Gerenciamento de risco completo: Stop Loss, Stop Loss e Tracking Stop Loss integrados, controle de risco abrangente.

  4. Controle de posição flexível: pode-se ajustar a alavancagem e a taxa de utilização de fundos para adaptar-se a diferentes preferências de risco.

  5. Atividade de retrospecção: Suporte para retrospecção de dados históricos, facilitando a otimização de estratégias.

  6. Neutralidade emocional: reduzir o impacto emocional subjetivo com base em indicadores objetivos.

  7. Multifuncionalidade: pode ser usado em diferentes períodos de tempo e variedades de negociação.

Risco estratégico

  1. Transações excessivas: podem gerar transações frequentes em mercados turbulentos, aumentando os custos.

  2. Atraso: EMA e SDI são indicadores de atraso e podem ser mais lentos em reagir quando a tendência se inverte.

  3. Risco de Falso Breakout: Pode ser um erro de avaliação de tendências em flutuações de curto prazo, resultando em transações erradas.

  4. Sensibilidade de parâmetros: o desempenho é altamente dependente da configuração de parâmetros e precisa de otimização contínua

  5. Dependência do cenário de mercado: pode ter um desempenho fraco em determinadas condições de mercado.

  6. Risco de alavancagem: uma alavancagem elevada pode aumentar os prejuízos e deve ser usada com cautela

  7. Dependência tecnológica: Dependência de um ambiente tecnológico estável, onde falhas no sistema podem causar prejuízos.

Direção de otimização da estratégia

  1. Ajuste de parâmetros dinâmicos: realização de ajustes de adaptação dos parâmetros EMA e SDI para adaptar-se a diferentes fases do mercado.

  2. Análise de múltiplos períodos de tempo: integração de sinais de múltiplos períodos de tempo, aumentando a precisão do julgamento de tendências.

  3. Filtragem de volatilidade: Adicione indicadores de volatilidade como o ATR e ajuste as regras de negociação em períodos de alta volatilidade.

  4. Identificação de estado de mercado: introdução de classificação de estado de mercado ((trend/shake), otimização de lógica de negociação direcionada.

  5. Optimização de gestão de fundos: realização de ajustes de posição dinâmicos, ajustando automaticamente o risco de acordo com a situação de prejuízo da conta.

  6. Pacote de indicadores: Considere adicionar outros indicadores complementares, como RSI ou MACD, para aumentar a confiabilidade do sinal.

  7. Integração de aprendizagem de máquina: introdução de algoritmos de aprendizagem de máquina para otimizar a seleção de parâmetros e a geração de sinais.

Resumir

A estratégia de acompanhamento de tendências auto-adaptável, combinada com a EMA e a SDI, demonstra uma forte adaptabilidade do mercado e capacidade de gerenciamento de riscos. Através de configurações de parâmetros flexíveis e medidas abrangentes de controle de risco, ela oferece aos comerciantes uma estrutura de negociação quantitativa confiável. O principal benefício da estratégia reside na sua captura sensível às tendências e no controle rigoroso do risco, que permite manter um desempenho estável em diferentes ambientes de mercado.

No entanto, os comerciantes ainda precisam estar atentos aos riscos potenciais, como o atraso e a sensibilidade dos parâmetros inerentes à estratégia. A estratégia tem a possibilidade de melhorar ainda mais o seu desempenho e estabilidade através da otimização e melhoria contínua, especialmente em termos de ajustes de parâmetros dinâmicos, análise de múltiplos quadros temporais e identificação de estados de mercado.

Em geral, esta estratégia fornece uma base sólida para a negociação quantitativa e é adequada para os investidores que buscam uma abordagem sistemática e disciplinada de negociação. Com uma compreensão profunda dos princípios da estratégia e combinando um estilo de negociação individual, os comerciantes podem usar efetivamente esta ferramenta para aumentar sua vantagem competitiva nos mercados financeiros.

Código-fonte da estratégia
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © erdas0

//@version=5
strategy("Strategy SEMA SDI Webhook", overlay=true, slippage = 1, commission_value = 0.035, default_qty_type=strategy.percent_of_equity, default_qty_value=50, initial_capital = 1000, calc_on_order_fills = true, process_orders_on_close = true)
// Start and end dates
dts=input(false,"",inline="dts")
dte=input(false,"",inline="dte")
start_date = input(timestamp("2023-01-01 00:00:00"), "Start Date",inline="dts") 
end_date = input(timestamp("2124-01-01"), "End Date",inline="dte") 
times = true
// Initial capital
leverage= input.int(10, "Leverage", minval=1,inline="qty") //Leverage Test
usdprcnt= input.int(50, "%", minval=1,inline="qty")
qty= input(false,"Inital USDT ◨",inline="qty")
initial_capital = qty ? (strategy.initial_capital+strategy.netprofit)/close*leverage*usdprcnt/100 : na
//Level Inputs
tpon=input(false,"TP ◨",group ="Take Profit/Stop Loss", inline="1")
sloc=input(true,"SL ◨",group ="Take Profit/Stop Loss", inline="1")
tron=input(true,"Trailing ◨",group ="Take Profit/Stop Loss", inline="1")

tp = tpon ? input.float(25, "Take Profit %", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="2") : na
sl = sloc ? input.float(4.8, "Stop Loss %", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="2") : na
tr = tron ? input.float(1.9, "Trailing Stop ", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="4") : na

// Take profit and stop loss levels
dir=strategy.position_size/math.abs(strategy.position_size) //Directions
newtrade=strategy.closedtrades>strategy.closedtrades[1]
pftpcnt=dir<0 ? (strategy.position_avg_price-low)/strategy.position_avg_price*100 : dir>0 ? (high-strategy.position_avg_price)/strategy.position_avg_price*100 : na //max profit

pftpr= (1 + pftpcnt*dir/100) * strategy.position_avg_price //Trailing Price
take_profit = (1 + tp*dir/100) * strategy.position_avg_price
stop_loss = (1 - sl*dir/100) * strategy.position_avg_price

var float maxpft=na //max profit percent
maxpft := newtrade ? 0 : strategy.openprofit > 0 ?  math.max(pftpcnt,maxpft) : maxpft
var float Tr=na //Trailing
Tr := newtrade ? na : pftpcnt >= tr and maxpft-pftpcnt >= tr ?  close : Tr

//Inputs
ocema=input(true, title='EMA ◨',group="Inputs",inline="2")
ocsd=input(true, title='SDI ◨',group="Inputs",inline="2")
ocsm=input(true, title='Smooth ◨',group="Inputs",inline="2")
lenf = input.int(58, "Fast Ema", minval=1,group ="Inputs", inline="3")
lens = input.int(70, "Slow Ema", minval=1,group ="Inputs", inline="3")
slen = input.int(3, "Smooth", minval=1,group ="Inputs", inline="4")
dilen = input.int(1, title="DI Length", minval=1,group ="SDI", inline="5")
sdi = input.int(6, title="DI Smooth", minval=1,group ="SDI", inline="5")

//EMA
emaf=ta.ema(close,lenf)
emas=ta.ema(close,lens)
semaf=ta.ema(emaf,slen)
semas=ta.ema(emas,slen)
//SDI
dirmov(len,smt) =>
	up = ta.change(high)
	down = -ta.change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = ta.rma(ta.tr, len)
	plus = ta.ema(fixnan(100 * ta.rma(plusDM, len) / truerange),smt)
	minus = ta.ema(fixnan(100 * ta.rma(minusDM, len) / truerange),smt)
	[plus, minus]
[plus,minus]=dirmov(dilen,sdi)
pm=ta.ema(plus-minus,10) 
sdcl= plus>minus ? color.new(color.green,80) :plus<minus ? color.new(color.red,80) : na
cpm= pm>pm[1] ? color.lime : pm<pm[1] ? color.red : color.yellow
barcolor(cpm,title="PM Color")

//Plot
plot(ocsm ? semaf:emaf,"Fast Ema",color=color.green)
plot(ocsm ? semas:semas,"Slow Ema",color=color.red)
// Conditions
Long = (ocsd ? plus>minus:true) and (ocema ? (ocsm ? semaf:emaf)>(ocsm ? semas:emas):true)
Short = (ocsd ? plus<minus:true) and (ocema ? (ocsm ? semaf:emaf)<(ocsm ? semas:emas):true)

// Strategy conditions
if Long and times
    strategy.close("Short","Close S")
    strategy.entry("Long", strategy.long, comment="L",qty = initial_capital)
if strategy.position_size>0
    strategy.exit("Long LTP", "Long", limit=take_profit, stop=stop_loss, comment="LSL",comment_profit = "LTP")
if Tr and strategy.position_size>0
    strategy.exit("Long LTP", "Long", limit=take_profit, stop=pftpr, comment="Tr",comment_profit = "LTP")

if Short and times
    strategy.close("Long","Close L")
    strategy.entry("Short", strategy.short, comment="S",qty = initial_capital)
if strategy.position_size<0
    strategy.exit("Short STP", "Short", limit=take_profit, stop=stop_loss, comment="SSL",comment_profit ="STP" )
if Tr and strategy.position_size<0
    strategy.exit("Short STP", "Short", limit=take_profit, stop=pftpr, comment="Tr",comment_profit = "STP")

if not times
    strategy.close_all()