Estrategias de indicadores técnicos, estrategias de gestión de riesgos, estrategias adaptativas de seguimiento de tendencias

EMA SDI
Fecha de creación: 2024-07-29 17:25:26 Última modificación: 2024-07-29 17:25:26
Copiar: 0 Número de Visitas: 470
1
Seguir
1617
Seguidores

Estrategias de indicadores técnicos, estrategias de gestión de riesgos, estrategias adaptativas de seguimiento de tendencias

Descripción general

La estrategia es un sistema de comercio de seguimiento de tendencias adaptativo basado en el índice de medias móviles (EMA) y el indicador de dirección deslizante (SDI). Combina varios indicadores técnicos y herramientas de gestión de riesgos para capturar tendencias de mercado y controlar el riesgo. La estrategia utiliza cruces de EMAs rápidas y lentas y la dirección del SDI para determinar tendencias de mercado y, en consecuencia, generar señales de compra y venta.

El núcleo de la estrategia reside en su adaptabilidad y en su enfoque integral de gestión de riesgos. Mediante el uso de parámetros ajustables, como el ciclo EMA, la suavidad del SDI y los umbrales de gestión de riesgos, los comerciantes pueden optimizar la estrategia en función de las diferentes condiciones del mercado y las preferencias de riesgo personales. La configuración flexible del tamaño de la posición y el apalancamiento aumenta aún más la adaptabilidad de la estrategia, lo que la permite adaptarse a diferentes estilos de negociación y escalas de capital.

Principio de estrategia

  1. El índice se calcula de la siguiente manera:

    • Cálculo de los EMA rápidos y lentos, y sus versiones suaves.
    • Cálculo del SDI, incluyendo indicadores de dirección positiva y negativa.
  2. Se generan señales de transacción:

    • Condición múltiple: el DI positivo es mayor que el DI negativo, y el EMA rápido es mayor que el EMA lento.
    • Condición de cabeza vacía: el DI negativo es mayor que el DI positivo, y el EMA rápido es menor que el EMA lento.
  3. Administración de posiciones:

    • El tamaño de las transacciones se determina mediante el uso de un nivel de apalancamiento ajustable y un porcentaje de participación.
    • Cuando se cumplan las condiciones de entrada, se elimina la posición inversa y se abre una nueva posición.
  4. Gestión de riesgos:

    • Implementa la función opcional de detener, detener y rastrear el deterioro.
    • Ajuste dinámico para rastrear el nivel de pérdidas para bloquear ganancias.
  5. Filtrado por tiempo:

    • Se puede configurar la fecha de inicio y finalización de la operación, para que la posición se liquide automáticamente fuera del rango de tiempo especificado.

Ventajas estratégicas

  1. Capacidad de captura de tendencias: Combinación de EMA y SDI para identificar y seguir de manera efectiva las tendencias del mercado.

  2. Adaptabilidad: adaptación a las diferentes condiciones del mercado mediante parámetros ajustables.

  3. Gestión integral del riesgo: detener, detener y rastrear el deterioro integrado, controlar el riesgo en todos los aspectos.

  4. Control de posición flexible: El uso del apalancamiento y la proporción de capital se puede ajustar a las diferentes preferencias de riesgo.

  5. La retroalimentación es amigable: permite la retroalimentación de datos históricos, lo que facilita la optimización de la estrategia.

  6. Neutralidad emocional: reduce el impacto emocional subjetivo basado en indicadores objetivos.

  7. Multifuncionalidad: Se puede usar en diferentes períodos de tiempo y variedades de transacción.

Riesgo estratégico

  1. Exceso de transacciones: En un mercado convulso puede producirse un incremento de las transacciones y los costos.

  2. Retraso: Los EMA y SDI son indicadores retrasados y pueden reaccionar más lentamente cuando la tendencia se invierte.

  3. Riesgo de falsa ruptura: puede ser un error de tendencia en las fluctuaciones a corto plazo, lo que puede conducir a transacciones erróneas.

  4. Sensibilidad de parámetros: el rendimiento depende en gran medida de la configuración de los parámetros, y requiere una optimización continua.

  5. Dependencia del entorno del mercado: puede tener un rendimiento bajo ciertas condiciones del mercado.

  6. Riesgo de apalancamiento: el uso de un alto nivel de apalancamiento puede aumentar las pérdidas y debe usarse con precaución.

  7. Dependencia tecnológica: depende de un entorno tecnológico estable, donde los fallos del sistema pueden causar pérdidas.

Dirección de optimización de la estrategia

  1. Ajuste de parámetros dinámicos: permite el ajuste de los parámetros EMA y SDI para adaptarse a las diferentes etapas del mercado.

  2. Análisis de múltiples marcos de tiempo: integración de señales de varios períodos de tiempo para mejorar la precisión de las tendencias.

  3. Filtrado de volatilidad: incorpora indicadores de volatilidad como el ATR y ajusta las reglas de negociación en períodos de alta volatilidad.

  4. Identificación del estado del mercado: introducción de la clasificación del estado del mercado (trend/vibración), optimización de la lógica de negociación dirigida.

  5. Optimización de la gestión de fondos: Realización de ajustes dinámicos de posiciones, ajuste automático del riesgo según la situación de pérdidas y ganancias de la cuenta.

  6. Combinación de indicadores: Considere la inclusión de otros indicadores complementarios, como el RSI o el MACD, para mejorar la fiabilidad de la señal.

  7. Integración de aprendizaje automático: introducción de algoritmos de aprendizaje automático para optimizar la selección de parámetros y la generación de señales.

Resumir

La estrategia de seguimiento de tendencias de adaptación automática combinada con EMA y SDI muestra una fuerte capacidad de adaptación al mercado y gestión de riesgos. A través de la configuración de parámetros flexibles y las medidas de control de riesgos integrales, ofrece a los comerciantes un marco de comercio cuantitativo fiable.

Sin embargo, los operadores deben estar atentos a los riesgos potenciales, como el retraso y la sensibilidad de los parámetros inherentes a la estrategia. A través de la optimización y la mejora continuas, especialmente en lo que respecta al ajuste de parámetros dinámicos, el análisis de múltiples marcos de tiempo y la identificación del estado del mercado, se espera que la estrategia mejore aún más su rendimiento y estabilidad.

En general, esta estrategia ofrece una base sólida para el comercio cuantitativo, adecuado para los inversores que buscan una metodología de comercio sistemática y disciplinada. Al comprender en profundidad los principios de la estrategia y combinar un estilo de negociación individual, los comerciantes pueden utilizar esta herramienta de manera efectiva para aumentar su ventaja competitiva en los mercados financieros.

Código Fuente de la Estrategia
/*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()