Estrategia en Jforex
Estrategia en Jforex
Hola a todos. Estoy intentando programar una estrategia en jforex para que me cierre todas las ordenes cuando el beneficio llegue a un porcentaje determinado respecto al margen. Hasta ahora he encontrado unas rutinas para poder cerrar todas las ordenes abiertas , pero me falta por determinar la condicion para ejecutarlas. Si alguien sabe como y donde deberia de introducir la condicion se agradeceria.
Re: Estrategia en Jforex
Hola,
Yo lo haría en el método onBar, comprobando que el periodo que te venga sea de, por ejemplo, un segundo (o la frecuencia con la que quieras comprobar entre los periodos posibles...).
Algo como (va de memoria porque no estoy ahora dentro del editor de jforex...)
IF (period.equals(Period.ONE_SEC)){
...
}
Creo que sería mejor en el onBar que en el onTick porque imagino que no necesitas tanta exactitud como para comprobar en cada tick... pero sería igual hacerlo en uno o en otro, lo que pasa que en el onTick no necesitas poner el filtro del periodo...
Ahora, la condición, necesitarías obtener por un lado el margen y por otro el beneficio de las órdenes abiertas.
Para lo del margen, no sé exactamente ahora a que dato te refieres, pero podrías mirar algunos métodos el objeto IAccount, como getEquity, getBalance, getBaseEquity, getCreditLine, getUseOfLeverage, etc... entre tantos alguno tendrá que valer para sacar directamente lo que quieres o para usarlo y calcular tú el dato que necesitas
...
Para el beneficio podrías usar un bucle como este:
double pl = 0;
for(IOrder o : engine.getOrders())
pl = pl + o.getProfitLossInAccountCurrency(); //restar o.getCommissions() si quieres tener en cuenta las comisiones
Bueno, no se si te habrá ayudado porque es muy general...
Saludos,
Yo lo haría en el método onBar, comprobando que el periodo que te venga sea de, por ejemplo, un segundo (o la frecuencia con la que quieras comprobar entre los periodos posibles...).
Algo como (va de memoria porque no estoy ahora dentro del editor de jforex...)
IF (period.equals(Period.ONE_SEC)){
...
}
Creo que sería mejor en el onBar que en el onTick porque imagino que no necesitas tanta exactitud como para comprobar en cada tick... pero sería igual hacerlo en uno o en otro, lo que pasa que en el onTick no necesitas poner el filtro del periodo...
Ahora, la condición, necesitarías obtener por un lado el margen y por otro el beneficio de las órdenes abiertas.
Para lo del margen, no sé exactamente ahora a que dato te refieres, pero podrías mirar algunos métodos el objeto IAccount, como getEquity, getBalance, getBaseEquity, getCreditLine, getUseOfLeverage, etc... entre tantos alguno tendrá que valer para sacar directamente lo que quieres o para usarlo y calcular tú el dato que necesitas

Para el beneficio podrías usar un bucle como este:
double pl = 0;
for(IOrder o : engine.getOrders())
pl = pl + o.getProfitLossInAccountCurrency(); //restar o.getCommissions() si quieres tener en cuenta las comisiones
Bueno, no se si te habrá ayudado porque es muy general...

Saludos,
Re: Estrategia en Jforex
Gracias de nuevo mascara. Pensaba que era mas directo los calculos. Al final me ha servido mucho tu ayuda. El calculo del margen usado lo hice calculando getEquity-getCreditLine/getleverage, ahora voy a probarlo a ver si funciona.
Gracias.
Gracias.
Re: Estrategia en Jforex
Por cierto tenéis algún link con un tutorial bastante extenso? porque en la web de dukascopy los que hay son muy por encima (almenos los que he visto yo), gracias
Re: Estrategia en Jforex
Lo siento pero yo solo conozco lo que viene en dukascopy.
Re: Estrategia en Jforex
Me alegro, no se si sabes que el objeto IAccount no siempre lleva la información actualizada, se actualiza cada 5 seg. más o menos, por lo que dice la documentación... espero que aún así te funcione como quieresYago escribió:Gracias de nuevo mascara. Pensaba que era mas directo los calculos. Al final me ha servido mucho tu ayuda. El calculo del margen usado lo hice calculando getEquity-getCreditLine/getleverage, ahora voy a probarlo a ver si funciona.
Gracias.
Re: Estrategia en Jforex
Supongo que no sera problema excepto cuando haya mucho meneo, probare .
Gracias por la informacion
Gracias por la informacion
Si te ha gustado este hilo del Foro, ¡compártelo en redes!