Herramientas - Estrategias
Una estrategia es un pequeño programa creado por el usuario donde define como y cuando invierte. Gracias a ello le va a permitir realizar estudios de rentabilidad sobre su método de inversión en un periodo de tiempo determinado.
Por ejemplo, se podría crear una estrategia que abriera posiciones a mercado cuando un valor estuviera en inicio de ciclo y otra cuando estuviera en inicio de ciclo y el RSI 40 > 20. Con cada una de las estrategias se podría realizar un estudio y así poder determinar si es más rentable una estrategia u otra.
Otra de las posiblidades de las estrategias es poder seleccionar automáticamente los valores a invertir en la cartera.
La estrategía nos va a permitir crear código específico en 4 situaciones diferentes:
- Antes de abrir la sesión para los valores que no tenemos en cartera.
- Antes de abrir la sesión para los valores que ya tenemos en cartera.
- Antes de cerrar la sesión para los valores que no tenemos en cartera.
- Antes de cerrar la sesión para los valores que ya tenemos en cartera.
Tanto para los estudios como para la cartera el funcionamiento es idéntico. Para cada uno de los valores del grupo que tengamos activo se le aplicará la estrategía correspondiente, según si el valor ya está en cartera o no y si en el cálculo se está calculando antes de abrir o cerrar la sesión.
Como puedo deducirse, si el grupo de valores es mayor, el tiempo de cálculo será mayor, por lo tanto es recomendable ejecutar la estrategia desde estudios o cartera con el grupo activo adecuado.
Para acceder a las estrategias vamos al menú Herramientas y seleccionamos la opción Estrategias

tras lo cual nos aparecerá el siguiente formulario:

En el tenemos 3 zonas:
Panel superior, donde tenemos los botones de acción:
para añadir una nueva estrategia
para Duplicar una estrategia
para Borrar una estrategia
Panel izquierdo, donde aparecen todas las estrategias creadas.
Panel derecho donde aparecen todos los detalles de la estrategia seleccionada.
Crear una nueva estrategia
Para crear una nueva estrategia hay que pulsar en el botón
tras lo cual, el sistema nos pedirá el nombre de usa nueva estrategia:

y tras pulsar el botón Crear, se abrirá la ventana principal de Estrategias con la nueva estrategia creada. A continuación se debe introducir el código deseado. Para ello, en la parte superior tenemos la pestaña Código, que al pulsarla aparecerá un editor para poder introducir el código.
Por otra parte, en la parte derecha se puede apreciar un semáforo llamado Usar en la cartera.
Usar en la cartera
Una vez realizados estudios y encontrado estrategias que obtengan las rentabilidades esperadas, éstas pueden utilizarse para que en el día a día, en la pantalla de cartera, se seleccionen automáticamente los valores que cumplen esa estrategia. En esa selección de estrategias solo aparecen las estrategias que tengan Usar en la cartera en verde (
).
- en verde (
) indica que esta estrategia va a poder usarse en el apartado de la cartera donde se puede escoger una estrategia para que haga la selección de los posibles valores a invertir ese día. - en rojo (
), indica que la estrategia solo se puede usar en los estudios para realizar testeos de su efectividad.
Para cambiar el semáforo de un color a otro, solo hay que pulsar encima.
Pero, en la cartera, ¿cómo se seleccionan los valores automáticamente cuando se selecciona una estrategia? Al crear el código de una estrategia veremos que hay un objeto de programación que simula el bróker, el cual permite la simulación de compra de un valor. Cuando se utiliza la estrategia en un estudio, esta compra realizada con el objeto broker permite realizar una simulación de cuando compramos y a que precio, obteniendo un estudio de rentabilidades simuladas. Esto significa que la instrucción de compra del objeto de programación broker que hemos introducido en el código es una intención de compra de un valor determinado. Entonces, siguiendo esta lógica, cuando se utiliza la estrategia desde la cartera, ésta mostrará los valores que hayan hecho una llamada a la función de compra del objeto de programación broker.
La pestaña Código
Nos muestra el entorno desde el que programaremos la estrategia.

Hay 4 pestañas:
- Antes abrir sesión: estrategia a seguir antes de que abra el mercado para cada valor que no tengamos en cartera.
- Antes abrir sesión posicionados: estrategia a seguir antes de que abra el mercado para valores que ya tenemos en cartera.
- Antes cerrar sesión: estrategia a seguir antes de que cierre el mercado para cada valor que no tengamos en cartera.
- Antes cerrar sesión posicionados: estrategia a seguir antes de que cierre el mercado para valores que ya tenemos en cartera.
Cada una de las pestañas son independientes y no son obligatorias. Esto significa que no tenemos porque poner código en cada una de las pestañas, sólo en la que nos interese, según el método de inversión que queramos probar.
Para entender que significa programar nuestra estrategia en cada una de las pestañas, tenemos que imaginarnos que somos inversores y como actuamos cuando deseamos invertir.

Estrategia A: Nos posicionamos en el mercado y/o cambiamos los stops de los valores en cartera antes de abrir la sesión. El código se introducirá en las pestañas Antes abrir sesión y/o Antes abrir sesión posicionados.
Por ejemplo: Trabajamos durante el día, por lo que por la noche nos descargamos los datos, buscamos los valores a invertir y una vez seleccionados los valores, entramos a nuestro bróker y ponemos las órdenes de compra para el día siguiente, así como modificamos los stops de los valores que tengamos en cartera.
- Antes abrir sesión: Código que establece las reglas para decidir qué valor se compra.
- Antes abrir sesión posicionados: Código que cambia el stop por el stop que proporciona FinanforPRO.
Estrategia B: Nos posicionamos a mercado y/o cambiamos los stops de los valores en cartera antes de que cierre la sesión.
Por ejemplo: Podemos mirar el mercado a fin de su sesión, por lo que podemos descargar los datos la noche del día anterior o en ese mismo día, buscamos los valores a invertir y una vez seleccionados los valores, entramos a nuestro bróker y ponemos las órdenes de compra cuando esté acabando la sesión. Como no se ha introducido ningún stop, nos podemos evitar el problema de barridos de stop, aunque como inconveniente también tendremos que el valor haya podido subir mucho y se nos haya escapado y para los valores que tengamos en cartera que hayan bajado mucho por debajo del stop estipulado.
- Antes cerrar sesión: Código que establece las reglas para decidir que valor se compra.
- Antes cerrar sesión posicionados: Código que cierra la posición si se ha roto el stop.
Estrategia A + B: Una combinación de ambas estrategias. Por ejemplo entrar en los valores antes de abrir la sesión y poner el stop solo al cierre.
- Antes abrir sesión: Código que establece las reglas para decidir que valor se compra.
- Antes cerrar sesión posicionados: Código que modifica el stop.
- Ctrl + Espacio: Objetos y métodos disponibles.
Muestra un menú contextual que varía según en que parte del código se esté. Si está en una posición en blanco, muestra los objetos de programación disponibles. Si ya ha comenzado a escribir un objeto de programación y ya ha escrito el . para empezar a escribir uno de sus métodos, mostrará los métodos disponibles de ese objeto. - Ctrl + Shift + Espacio: Parámetros de un método.
Funciona cuando ya se ha escrito el método y deseamos que se nos muestre una ayuda de los parámetros que admite.Veamos un ejemplo.
Si escribimos Broker. (observe que hay un punto después de Broker, ya que con ello se indica que vamos a utilizar un método del objeto Broker) y pulsamos Ctrl + Espacio después del punto, se nos abrirá una ventana donde nos mostrará los dos métodos que podemos usar: AbrirPosicionMercado y AbrirPosicionLimitada.

Y por otro lado, si estamos introduciendo la parte de código destinada a abrir una posición limitada y no recordamos los parámetros que le debemos pasar, pulsando Ctrl + Shift + Espacio a la vez, veremos como aparece la ayuda que necesitamos.

Programación de estrategias
El lenguaje de programación de estrategias se basa en la nomenclartura de Object PASCAL. Se incluyen una serie de objetos que permiten interaccionar con FinanforPRO dando acceso a todos los datos (cambio, máximo, mínimo, RSI, ... cualquier dato que se vea en pantalla) y otros de diferente índole, como uno para simular el acceso a un broker y realizar una compra, buscar valores por nombre, ...
Puede consultar las reglas de programación y las funciones disponibles pulsando aquí.
Programación de estrategias: Ayuda a la programación
El botón
nos servirá para comprobar si nuestro código es correcto. Cuando éste se pulsa, realiza una comprobación de la sintaxis. Si todo es correcto, nos aparecerá al pie un mensaje diciendo Correcto.

En caso contrario, nos mostrará la línea y la posición de la palabra en la que ha localizado el error. Por ejemplo, quitamos el punto final de la palabra end

Cuando se está escribiendo código en cualquiera de las pestañas, existen combinaciones de teclas que ayudan a la programación:
Existen varias estrategías ya creadas de ejemplo. Practique con la combinación de teclas de ayuda a la programación con ellas y observe los diferentes métodos de cada objeto. Verá que programar nuevas estrategias con su ayuda es muy fácil.
Ejemplos prácticos de posibles estrategias
- Entrar largos en los valores con inicio de ciclo con el stop correspondiente. Para los valores que ya tengamos en cartera, modificar su stop.
Pestaña: Antes abrir sesión
Código:
begin
|
Pestaña: Antes abrir sesión posicionados
Código:
begin
|
- Entrar largos en los valores con inicio de ciclo cuando el precio toque el valor indicado en Posicionado con el stop correspondiente. Para los valores que ya tengamos en cartera, modificar su stop
Pestaña: Antes Abrir Sesión
Código:
begin |
Pestaña: Antes abrir sesión posicionados
Código:
begin
|
- Entrar largos en los valores con inicio de ciclo cuando el precio toque el valor indicado en el mínimo del día anterior con el stop correspondiente. Para los valores que ya tengamos en cartera, modificar su stop al cierre.
Pestaña: Antes Abrir Sesión
Código:
|
Pestaña: Antes cerrar sesión posicionados
Código:
begin
|
- Entrar largos en los valores con inicio de ciclo sin stop. Para los valores que ya tengamos en cartera, modificar su stop.
Pestaña: Antes abrir sesión
Código:
begin
|
Pestaña: Antes abrir sesión posicionados
Código:
begin
|
- Entrar largos en los valores con inicio de ciclo y el RSI 140 > 50 con el stop correspondiente. Para los valores que ya tengamos en cartera, modificar su stop.
Se usa una variable para simplicar el código.
Pestaña: Antes Abrir Sesión
Código:
var diario: TDatosSesion;
|
Pestaña: Antes abrir sesión posicionados
Código:
begin
Broker.ModificarStop(Datos.Diario.Stop);
end.
- Entrar largos en los valores en los que aparezca un mensaje de “Inicio de Ciclo” y además el valor esté posicionado en la zona O+ o A+ o en la zona AB+ pero que a su vez la cantidad de Dinero sea superior a la del papel con el stop correspondiente
Se usa una variable para simplicar el código.
Pestaña: Antes Abrir Sesión
Código:
var diario: TDatosSesion;
|
