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:
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:
Conforme los precios suben, actualizamos la variable. Luego, enviamos la orden en stop:
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:
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:
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
'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
Publicar un comentario
¡Gracias!