Curso de Programación. 10.1. Indicador TRIX.

Durante éste nuevo tema hablaremos del indicador impulsivo TRIX. Explicaremos el funcionamiento de dicho indicador, el uso que podemos darle y las principales señales de trading que nos aporta éste instrumento. Para finalizar, plantearemos un sistema muy completo que utilice el TRIX como base. Vamos a añadir a éste sistema todos los elementos que hemos venido viendo durante los últimos temas, con el fin de llevar a la práctica lo aprendido hasta ahora.

El indicador TRIX
Este indicador fue presentado por J. Huston como un método para detectar los cambios de dirección significativos de los precios.

Su principal particularidad es que permite suavizar las señales de cambio, eliminando los pequeños movimientos en contra que puedan llegar a producirse. La idea es que éste indicador siga exclusivamente a la tendencia principal del mercado.

El indicador TRIX sigue la siguiente fórmula:


Se puede considerar por tanto el resultado del TRIX como la pendiente de una Media Exponencial Triple, lo cual nos da una idea más aproximada de por qué nos encontramos ante un instrumento que suaviza de forma excepcional el movimiento de los precios.

Como consecuencia, podemos definir los siguientes puntos como los principales aspectos a favor y en contra de su uso:

1) A Favor. Al ser triplemente suavizada, permite eliminar el ruido provocado por los pequeños movimientos generados en el precio.

2) En contra. Aumenta también el desfase con respecto al cambio de tendencia detectado en el precio.




Análisis de Señales
En función del uso que le demos al indicador TRIX, podemos distinguir entre dos tipos de señales:

Señales de seguimiento de tendencia.
Es decir, aquellas señales en las que el TRIX confirma la tendencia dominante. Podemos encontrar dos métodos:

1) Por ruptura de la banda central. Es decir, cuando la Media exponencial triple cruza al precio. Esta señal es la más conservadora.
2) Por cambio de pendiente. Es decir, cuando la pendiente pasa de ser ascendente a descendente o viceversa. Esta señal permite adelantarse al cruce de la media triple, si bien es más agresiva y por tanto implica un mayor riesgo.

Señales de detección de patrones de cambio.
Es decir, aquellas señales en las que detectamos en el TRIX patrones de cambio de tendencia dominante. El método que usaremos sería el siguiente:

1) Añálisis de la divergencia. Es decir, cuando el TRIX cambie de tendencia antes de que lo haga el precio, produciéndose la divergencia. Este método lo desarrollaremos en el próximo punto del actual tema.

En el presente artículo, vamos a desarrollar una estrategia que use como método de trading el cambio de pendiente del TRIX.

Estrategia Cambio de Pendiente TRIX
La estrategia a seguir será la siguiente:

1) Cuando el TRIX tenga pendiente positiva mantenemos posiciones largas.
2) Cuando el TRIX tenga pendiente negativa mantenemos posiciones cortas.

Añadiremos un stop de pérdidas, un objetivo de ganancias y un horario de operativa.

Además, vamos a añadir un filtro de confirmación de espera de n-barras. Este filtro consistirá en lo siguiente: Pasadas el número de barras determinado, observamos si el TRIX sigue confirmando la señal dada. Si esto sucede, entonces procedemos a enviar la señal de entrada.

La aplicación de este filtro añadirá un nivel mayor de complejidad a la estrategia. El proceso a seguir para el control de dicho filtro de barras sería el siguiente:

1) Incluir dos variables internas llamadas nbentrada y signoentrada. Estas dos variables irán almacenando la información de la última señal detectada que se vaya dando.

2) Realizar la gestión de cambio de pendiente del TRIX. De modo que:
- Si el TRIX cambia de alcista a bajista, entonces nbentrada = barra actual y signoentrada = 1.
- Si el TRIX cambia de bajista a alcista, entonces nbentrada = barra actual y signoentrada = -1.

Es decir, cada vez que se genere una nueva señal en el TRIX, actualizamos ambas variables.

3) Control del filtro. Esperamos a que la barra actual alcance el número de barras de espera que hayamos estimado (es decir, la diferencia entre la barra actual y nbentrada alcanza el valor de n-barras). Una vez sucede esto, nos fijamos en signoentrada. Según su valor, si el TRIX confirma la tendencia en ese momento, enviamos la orden de entrada. En caso contrario, la señal se desprecia y empezamos otra vez desde cero.

El diseño del sistema sería el siguiente:

Código en VBA

Dim Contratos As Long '1
Dim HoraInicio As Integer '900
Dim HoraFin As Integer '1900
Dim Periodo1 As Integer '12
Dim Periodo2 As Integer '12
Dim Periodo3 As Integer '12
Dim PeriodoC As Integer '1
Dim StopLoss As Double '50
Dim TakeProfit As Double '100
Dim FiltroBarras As Integer '0
'Parameters !!
Dim trixdata As DataIdentifier
Dim nbentrada As Long
Dim signoentrada As Integer
Option Explicit
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
With APP
    trixdata = .GetIndicatorIdentifier(Trix, Data, Periodo1, Periodo2, Periodo3, PeriodoC, PriceClose, 0)
    nbentrada = -1
    signoentrada = 0
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP

    If (.Time >= HoraInicio And .Time < HoraFin) Then
        Dim trixact As Double
        Dim trixant As Double
        Dim trixantant As Double
    
        trixact = .GetIndicatorValue(trixdata)
        trixant = .GetIndicatorValue(trixdata, 1, 1)
        trixantant = .GetIndicatorValue(trixdata, 2, 1)
    
        If (trixant <= trixantant And trixact > trixant) Then
            nbentrada = Bar
            signoentrada = 1
        ElseIf (trixant >= trixantant And trixact < trixant) Then
            nbentrada = Bar
            signoentrada = -1
        End If

        If signoentrada = 1 Then
            If (Bar = nbentrada + FiltroBarras) Then
                If (trixact > trixant) Then
                     .Buy AtClose, Contratos
                     signoentrada = 0
                End If
            End If
        End If

        If signoentrada = -1 Then
            If (Bar = nbentrada + FiltroBarras) Then
                If (trixact < trixant) Then
                    .Sell AtClose, Contratos
                    signoentrada = 0
                End If
            End If
        End If

        If .GetMarketPosition = 1 Then
            If StopLoss <> 0 Then
                .ExitLong AtStop, Contratos, .GetEntryPrice - StopLoss
            End If
        
            If TakeProfit <> 0 Then
                .ExitLong AtLimit, Contratos, .GetEntryPrice + TakeProfit
            End If
        ElseIf .GetMarketPosition = -1 Then
            If StopLoss <> 0 Then
                .ExitShort AtStop, Contratos, .GetEntryPrice + StopLoss
            End If
            If TakeProfit <> 0 Then
                .ExitShort AtLimit, Contratos, .GetEntryPrice - TakeProfit
            End If
        End If
    Else
        If .GetMarketPosition = 1 Then
            .ExitLong AtClose, Contratos
        Else
            .ExitShort AtClose, Contratos
        End If
    End If
End With
End Sub

Comentarios

Entradas populares de este blog

Como consultar el GAP % de un conjunto de valores

MANEJO DE PLANTILLAS. Eliminar plantilla de un gráfico activa

Estudio de las divergencias en el RSI