Curso de Programación. PROBLEMAS Y EJERCICIOS. BLOQUE 2.
Todas las semanas plantearemos un ejercicio relacionado con lo visto durante el seminario. La resolución de los mismos se hará de forma conjunta cada cierto tiempo.
Si necesitan más aclaraciones o quieren comentar algo relativo al ejercicio, pueden contactar con nosotros a través del correo sistemas@visualchart.com.
EJERCICIO 6.2. Gestión nivel del Stop de Pérdidas Sistema Antitendencia
En el sistema Antitendencia que hemos diseñado basado en las bandas de Bollinger, hemos añadido un stop de pérdidas situado a la distancia entre las bandas y la media de referencia.
En este ejercicio vamos a controlar la posición de dicho stop, impidiendo que su valor retroceda una vez alcance cierta distancia respecto del precio de entrada:
Para ello, seguiremos los siguientes pasos:
1. Crear una variable donde guardar el precio del stop de pérdidas (PSTOPLOSS).
2. Si estamos comprados, nos quedamos con el nivel más ALTO.
3. Si estamos vendidos, nos quedamos con el nivel más BAJO.
EJERCICIO 6.1. Añadir reglas de cierre al Sistema Cruce Bandas de Bollinger
Como el sistema que hemos diseñado trata de aprovechar los impulsos posteriores a las zonas de congestión, trataremos de mejorar el sistema cerrando las posiciones abiertas una vez dichos impulsos entran en su fase de agotamiento.
La teoría que seguiremos será la siguiente: Tras haber entrado, esperaremos a que el precio retroceda hasta el interior del canal de las bandas para cerrar, siempre y cuando el margen de volatilidad sea lo suficientemente amplio.
El filtro de la volatilidad nos sirve para confirmar que ya nos encontramos en la fase de distribución, lo cual nos permite evitar salidas de mercado a destiempo.
Para poder llevar a cabo esta idea, seguiremos los siguientes pasos:
1. Crear una variable llamada MargenVolSalida. Esta variable determinará la diferencia mínima que debe de haber entre las bandas para poder cerrar.
2. Gestionar los cruces de las bandas con el precio de cierre de cada barra.
3. Si se cumple la condición, añadir órdenes ExitLong y ExitShort Al Cierre.
EJERCICIO 5.2. Añadir filtro de entrada al Sistema Cruce Medias del Estocástico
Con éste ejercicio trataremos de evitar que el sistema corte operaciones ganadoras demasiado pronto. Para ello, le vamos a pedir que espere un número de barras entre una operación y la siguiente.
Para poder llevar a cabo esto, seguiremos los siguientes pasos:
1. Añadir la función GetBarsSinceEntry.
2. Añadir la función GetMarketPosition.
3. Crear parámetro NBEspera (por defecto 10).
4. Si GetMarketPosition = 0, permito entrar.
5. Si GetMarketPosition <> 0 Y GetBarsSinceEntry >= NBEspera, permito entrar.
EJERCICIO 5.1. Añadir control del pérdidas al Sistema Bandas del Estocástico
Para este ejercicio vamos a solicitar la inclusión de un control de pérdidas al sistema de ruptura de bandas del estocástico: Para ello, el sistema deberá guardar los valores tope de cada una de las zonas de agotamiento. Estos valores serán los niveles a partir de los cuales cerraremos por considerar que el impulso ha retrocedido.
En este ejercicio, vamos a plantear la posibilidad de incluir dos nuevos parámetros que sirvan como puntos de cierre de posiciones abiertas, de modo que haremos lo siguiente:
EJERCICIO 4.1. Añadir salidas al Sistema Ruptura de Bandas
Una de los principales inconvenientes de seguir al RSI sucede cuando el indicador establece el fin de un ciclo y sin embargo el precio prolonga el movimiento correspondiente. Cuando ocurre esto, el indicador se reajusta, provocando constantes rupturas de las zonas de agotamiento.
Como de inicio no podemos saber cual será la ruptura de la zona de agotamiento que irá acompañada por un cambio de dirección de los precios, no podemos prever las situaciones anteriormente citadas:
Si necesitan más aclaraciones o quieren comentar algo relativo al ejercicio, pueden contactar con nosotros a través del correo sistemas@visualchart.com.
EJERCICIO 6.2. Gestión nivel del Stop de Pérdidas Sistema Antitendencia
En el sistema Antitendencia que hemos diseñado basado en las bandas de Bollinger, hemos añadido un stop de pérdidas situado a la distancia entre las bandas y la media de referencia.
En este ejercicio vamos a controlar la posición de dicho stop, impidiendo que su valor retroceda una vez alcance cierta distancia respecto del precio de entrada:
Para ello, seguiremos los siguientes pasos:
1. Crear una variable donde guardar el precio del stop de pérdidas (PSTOPLOSS).
2. Si estamos comprados, nos quedamos con el nivel más ALTO.
3. Si estamos vendidos, nos quedamos con el nivel más BAJO.
EJERCICIO 6.1. Añadir reglas de cierre al Sistema Cruce Bandas de Bollinger
Como el sistema que hemos diseñado trata de aprovechar los impulsos posteriores a las zonas de congestión, trataremos de mejorar el sistema cerrando las posiciones abiertas una vez dichos impulsos entran en su fase de agotamiento.
La teoría que seguiremos será la siguiente: Tras haber entrado, esperaremos a que el precio retroceda hasta el interior del canal de las bandas para cerrar, siempre y cuando el margen de volatilidad sea lo suficientemente amplio.
El filtro de la volatilidad nos sirve para confirmar que ya nos encontramos en la fase de distribución, lo cual nos permite evitar salidas de mercado a destiempo.
Para poder llevar a cabo esta idea, seguiremos los siguientes pasos:
1. Crear una variable llamada MargenVolSalida. Esta variable determinará la diferencia mínima que debe de haber entre las bandas para poder cerrar.
2. Gestionar los cruces de las bandas con el precio de cierre de cada barra.
3. Si se cumple la condición, añadir órdenes ExitLong y ExitShort Al Cierre.
EJERCICIO 5.2. Añadir filtro de entrada al Sistema Cruce Medias del Estocástico
Con éste ejercicio trataremos de evitar que el sistema corte operaciones ganadoras demasiado pronto. Para ello, le vamos a pedir que espere un número de barras entre una operación y la siguiente.
Para poder llevar a cabo esto, seguiremos los siguientes pasos:
1. Añadir la función GetBarsSinceEntry.
2. Añadir la función GetMarketPosition.
3. Crear parámetro NBEspera (por defecto 10).
4. Si GetMarketPosition = 0, permito entrar.
5. Si GetMarketPosition <> 0 Y GetBarsSinceEntry >= NBEspera, permito entrar.
EJERCICIO 5.1. Añadir control del pérdidas al Sistema Bandas del Estocástico
Para este ejercicio vamos a solicitar la inclusión de un control de pérdidas al sistema de ruptura de bandas del estocástico: Para ello, el sistema deberá guardar los valores tope de cada una de las zonas de agotamiento. Estos valores serán los niveles a partir de los cuales cerraremos por considerar que el impulso ha retrocedido.
El proceso ha seguir será el siguiente:
1. Crear dos variables donde guardar los topes (TopeSobreC y TopeSobreV).
2. Cada vez que el estocástico acceda a las zonas de sobrecompra y sobreventa, actualizamos dichas variables.
3. Mientras el estocástico permanezca en la zona de agotamiento, actualizamos el tope en caso de ser superado.
4. Por último, una vez hemos entrado a corto o a largo, comprobamos si el precio de cierre alcanza el nivel tope:
- Si el Cierre >= TopeSobreC y GetMarketPosition = -1 cerramos Cortos.
- Si el Cierre <= TopeSobreV y GetMarketPosition = 1 cerramos Largos.
EJERCICIO 4.2. Añadir bandas de cierre al Sistema Ruptura de Bandas
- Si el Cierre <= TopeSobreV y GetMarketPosition = 1 cerramos Largos.
EJERCICIO 4.2. Añadir bandas de cierre al Sistema Ruptura de Bandas
En este ejercicio, vamos a plantear la posibilidad de incluir dos nuevos parámetros que sirvan como puntos de cierre de posiciones abiertas, de modo que haremos lo siguiente:
1. Añadiremos dos parámetros llamados BandaCierreCompras y BandaCierreVentas.
2. Cuando el RSI cruce sobre BandaCierreCompras cerramos Largos.
3. Cuando el RSI cruce sobre BandaCierreVentas cerramos Cortos.
Una de los principales inconvenientes de seguir al RSI sucede cuando el indicador establece el fin de un ciclo y sin embargo el precio prolonga el movimiento correspondiente. Cuando ocurre esto, el indicador se reajusta, provocando constantes rupturas de las zonas de agotamiento.
Como de inicio no podemos saber cual será la ruptura de la zona de agotamiento que irá acompañada por un cambio de dirección de los precios, no podemos prever las situaciones anteriormente citadas:
Debido a esto, vamos a plantear el siguiente ejercicio: Si pasadas un número determinado de barras el RSI continúa en la zona de agotamiento que generó la señal, cerramos posición y esperamos una señal nueva mejor situada (algo similar a lo que hicimos con el sistema del MACD).
1. Añadir parámetro XBarras (valor por defecto 10).
2. Añadir función GetBarsSinceEntry (con EntryAgo igual a 0).
3. Añadir función GetMarketPosition para saber si estamos comprados o vendidos.
4. Cuando se cumpla que GetBarsSinceEntry >= XBarras, enviamos orden de cierre:
- Si el RSI actual se sitúa por encima de 70 y GetMarketposition = -1.
- Si el RSI actual se sitúa por debajo de 30 y GetMarketPosition = 1.
Comentarios
Publicar un comentario