Nueva York
Londres
Madrid
Tokyo
Sidney
JSystemTrader Imprimir Correo electrónico
Por X-Trader   
16 de Febrero de 2007
 

 

3.3. Automatizar estrategias
El plato fuerte de este programa es sin duda la automatización de estrategias. Para ello, vamos a modificar una de las estrategias que vienen con el programa. Con el proyecto abierto en Eclipse vamos a desplegar la carpeta Source y seguidamente desplegamos la clase com.jsystemtrader.strategy, tal y como se aprecia en la imagen.

Image

Después seleccionamos el archivo ForexTrend.java, le damos con el boton derecho, seleccionamos Copy y después nuevamente con el botón derecho le damos a Paste. Nos preguntará el nombre que queremos ponerle; para este ejemplo vamos a llamarlo CruceMediasXTrader. Con ello hemos creado un duplicado de una de las estrategias para modificarla tranquilamente.

Ahora abrimos el nuevo archivo y buscamos la siguiente línea:

private final int maFastLength = 45, maSlowLength = 180;

Dado que el sistema ForexTrend es un simple cruce de medias exponenciales, en esta línea parece evidente (sin saber nada de Java) que lo que se declara son los periodos de las dos medias móviles del sistema. Para poder generar bastantes señales, cambiamos la sentencia a lo siguiente:

private final int maFastLength = 4, maSlowLength = 9;

Bajando un poco más encontraremos dos líneas como éstas:

Contract contract = ContractFactory.makeContract("EUR", "CASH", "IDEALPRO", null, "USD");
setStrategy(contract, PriceBar.BAR_1_MINUTE, false, 25000);

La primera línea controla el producto sobre el que vamos a operar mientras que la segunda especifica el minutaje y el número de contratos a introducir en cada operación. Tal y como está ahora mismo lanzará órdenes de 25000$ en el cruce EUR/USD negociado en IdealPro pero nos gustaría que lanzara las órdenes al DAX así que vamos a cambiar algunos parámetros, reemplazando esas líneas por lo siguiente:

Contract contract = ContractFactory.makeContract("DAX", "FUT", "DTB", "200703", null);
setStrategy(contract, PriceBar.BAR_1_MINUTE, false, 1);

Es decir, vamos a lanzar órdenes a partir de un cruce de medias exponenciales de 4 y 9 periodos en futuro sobre DAX vencimiento Marzo de 2007 trabajando con barras de 1 minuto y operando con un contrato.

Finalmente debemos indicar el horario de la operativa. Para ello modificaremos la siguiente línea:

addTradingInterval("1:00", "23:50", 5); // trades about 23 hours/day

En ella se indica que el sistema opere entre la 1.00 y las 23.50 h., cerrando posiciones a las 23.50 h. y no abriendo nuevas posiciones en los últimos 5 minutos de ese intervalo.

Para operar en un horario más realista cambiamos esa línea de la siguiente forma:

addTradingInterval("9:00", "17:30", 5);

Finalizadas las modificaciones, lo guardamos desde File->Save y seguidamente incorporamos esta nueva estrategia al proyecto mediante el menu Project->Build All.

Ahora empieza lo realmente interesante: lanzamos nuevamente el JSystemTrader mediante el botón Run, conectamos con la TWS (File->Connect to TWS) y cargamos la estrategia que acabamos de crear, desde Trading->Strategies... Si todo ha ido bien, ahi debe aparecer un sistema llamado CruceMediasXTrader aplicado al DAX en 1 min. Lo marcamos y pulsamos en Start Trading.

En ese momento JSystemTrader se descarga el histórico reciente del DAX para hacer los cálculos pertinentes y en el momento que pase el primer minuto, el programa decidirá en qué posición deberíamos estar y lanzará la orden. Una vez tengamos algunas órdenes ejecutadas, podemos hacer doble click sobre la estrategia para que nos muestre, en tiempo real:

  • % Operaciones Ganadoras, Profit Factor y Máx Drawdown.
  • Pulsando en Aceptar nos dará un gráfico con todas las operaciones ejecutadas hasta el momento, con las medias móviles insertadas.


Y lo mejor de todo es que si en algún momento se desconecta la TWS, el programa intentará conectar de nuevo y en el momento que lo consiga le solicitará información de las últimas ejecuciones realizadas para no perder la posición en la que estaba. Simplemente brillante.

En definitiva, creo que JSystemTrader es posiblemente una de las mejores aplicaciones para automatizar nuestra operativa y que en los próximos meses dará mucho que hablar.

No quisiera terminar este artículo sin enumerar otras alternativas también gratuitas que prometen bastante aunque por ahora no sean tan potentes como JSystemTrader:

Un saludo
X-Trader

Haz click aquí para debatir este artículo en el Foro

 

Trackback(0)
Comentarios (0)Add Comment

Escribir comentario

security code
Escribe los caracteres de la imagen


busy

 

Blogs de Bolsa - Top List

Buscar en X-Trader.net

Siguenos en:

Mercados

EN LOS FOROS

COMENTARIOS

Últimos Comentarios