Sistema ejemplo uso Stops Dinámicos.

El pasado 3 de Mayo dedicamos uno de nuestros Webinars al estudio de los distintos tipos de Stops de pérdidas que comúnmente podemos llegar a usar en nuestras estrategias.

A continuación, ponemos a  disposición de todos nuestros usuarios los archivos de ejemplo que usamos durante dicha charla:

Stop Dinamicos en PDV

Stop Dinamicos en VBA

Ambos archivos son el mismo sistema pero en distintos formatos. Éste sistema cuenta con una entrada sencilla de compra y un procedimiento  que nos permite elegir entre distintas clases de stops para poder analizarlos por separado.

Funcionamiento del sistema
El sistema sencillamente envía órdenes de COMPRA cuando los precios cruzan a una media. A partir de ahí, activa el stop que se haya seleccionado y espera a que se ejecute.

Por tanto, el sistema no sigue ningún tipo de fundamento ni estrategia de inversión, y su uso es meramente didáctico.

Clases de Stops a estudiar
El sistema cuenta con un parámetro llamado TipoStopD. Según el valor de dicha parámetro, podemos elegir entre un stop u otro. De modo que:
- Si vale 0 utiliza un Stop Fijo.
- Si vale 1 utiliza un Stop de tipo Trailing Stop.
- Si vale 2 utiliza un Trailing Stop que se activa a partir de un objetivo.
- Si vale 3 utiliza un Stop Loss con Máxima Pérdida.
- Si vale 4 utiliza un Trailing acoplado a un Indicador.



Stop Loss Fijo
No tiene más repercusión que ser un stop colocado a x puntos del precio de entrada:

Select Case TipoStopD
Case 0:
    If gmp = 1 Then
        .ExitLong AtStop, 1, gep - StopLoss
    End If

Trailing Stop Clásico
Se utiliza una variable externa donde guardamos el valor más alto alcanzado.
Esta variable se actualiza cada vez que iniciamos un negocio:

'inicializamos el PriceTS
If gbse = 1 Then
    PriceTS = gep
End If

Conforme los precios suben, actualizamos la variable. Luego, enviamos la orden en stop:

'actualizamos el PriceTS si los precios suben
If .High > PriceTS Then
    PriceTS = .High
End If
'lanzamos la orden de salida
.ExitLong AtStop, 1, PriceTS - StopLoss

Trailing Stop con Objetivo
Inicialmente, colocamos el stop de pérdidas como un stoploss fijo. Este valor no se moverá hasta que los precios alcancen un nivel objetivo que el usuario determinará. Si sucede esto, se actualiza el stop al precio de entrada y a partir de ese instante, se irá subiendo el stop con cada nuevo escalón que se supere.

Para determinar si hemos superado o no el objetivo inicial, usamos una variable externa que activaremos en el momento en el que se cumpla la condición:

'inicializamos el TrailingActivo y el PrecioObjetivo
If gbse = 1 Then
    TrailingActivo = False
    PrecioObjetivo = .GetEntryPrice(0) + Objetivo
End If
'estudiar la ruptura del primer escalón
If TrailingActivo = False Then
    PrecioStop = gep - StopLoss
    If .Close >= PrecioObjetivo Then
        TrailingActivo = True
        PrecioStop = gep
        PrecioObjetivo = PrecioObjetivo + Objetivo
    End If
End If
'si ha roto el primer escalón, estudiar la ruptura de los demás escalones
If TrailingActivo = True Then
    If .Close >= PrecioObjetivo Then
        'actualizar al siguiente escalón
        PrecioStop = PrecioObjetivo - Objetivo
        PrecioObjetivo = PrecioObjetivo + Objetivo
    End If
End If
'lanzamos la orden al valor que tengamos guardado
.ExitLong AtStop, 1, PrecioStop

StopLoss con Máxima Pérdida
Puesto que el estudio del stop que utiliza una máxima perdida por día requiere de un análisis más profundo, dedicaremos una entrada la semana que viene exclusivamente a este tema.

Trailing Acoplado a un Indicador
En este caso usaremos una media simple como indicador de referencia.

El sistema sólo recogerá las señales del indicador cuando éste se encuentre por debajo de los precios, ya que en otro caso puede causar una salida a mercado o la cancelación de la orden de salida:

If gmp = 1 Then
    'si el precio es mayor que el avstop nos sirve como stop de perdida
    If .Close > AvStop Then
        PrecioStop = AvStop
    Else
    'si no, entonces no podemos usarla como stop y colocamos el stoploss fijo
        PrecioStop = gep - StopLoss
    End If
    'lanzamos la orden de salida
    .ExitLong AtStop, 1, PrecioStop
End If


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