Visual JForex disponible

Foro dedicado a la plataforma de trading de divisas de Dukascopy en la que la programación de estrategias se realiza mediante Java.
Avatar de Usuario
mascara
Mensajes: 333
Registrado: 18 Oct 2007 23:15

Visual JForex disponible

Mensaje por mascara » 13 May 2013 12:24

Hola,

El otro día entre en el wiki de dukascopy para consultar algo y vi que ya estaba disponible Visual JForex, que sería una plataforma para programar estrategias de dukas sin programar... No he tenido tiempo de ver cómo va ni que se puede hacer o no, pero por si a alguien le interesa echarle un ojo...

Otra cosa, he visto que este año hay un concurso de Miss Dukascopy :O :O, por si alguien quiere presentarse :D :D... A este sí que sacado tiempo para ver un poco jejeje...


Imagen

Avatar de Usuario
daykoku
Mensajes: 422
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Visual JForex disponible

Mensaje por daykoku » 23 Sep 2013 19:41

Buena mascara, no había leído tu aviso. He intentado escribir en la comunidad que hiciste via traderlinker/x-trader pero no me deja enviar el mensaje. Hay algún error...

El caso es que recién empiezo aprender hacer código por mi mismo. Estoy trabado con añadir una función de trailing stop.

Lo pongo en este evento:

public void CreateOrder

No se si me puedes hechar un cable..

Saludos



Dasziel
Mensajes: 2055
Registrado: 29 Feb 2008 20:49
Ubicación: En la red

Re: Visual JForex disponible

Mensaje por Dasziel » 23 Sep 2013 20:54

Hola day.

No hay errores, las secciones de blogs en las comunidades, en este caso la de mascara, tienen que estar habilitadas para permitir posts de los suscritos, en este caso Mascara no lo tiene habilitado.

Hare un video para explicar como se habilita esta funcion.


Cuidado con los foros. Dont feed the troll

Avatar de Usuario
mascara
Mensajes: 333
Registrado: 18 Oct 2007 23:15

Re: Visual JForex disponible

Mensaje por mascara » 24 Sep 2013 09:03

:shock: Pues miraré cómo activarlo porque precisamente mi idea era que la gente pudiera escribir y compartir cosas! :-D...

¿Estás usando el Visual? Todavía no he tenido tiempo de ponerme con ese para hacer algo con él, pero así ya tengo excusa jejeje... Creo que tendrías que acoplarlo al evento onTick o a la posición más que en crear orden ¿no?... Voy a probarlo porque hablo sin saber... te digo lo que descubra :)...


Imagen

Avatar de Usuario
daykoku
Mensajes: 422
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Visual JForex disponible

Mensaje por daykoku » 24 Sep 2013 12:06

Hola,

MASCARA, no me expliqué, en realidad me gustaría añadirlo a un código que ya tengo. La Jvisual no la he investigado bien tampoco. Si quieres lo hacemos a través de traderlinker.

Respecto a lo que buscaba, encontré algo así por ahí...lo que quiero es añadir la variable de trailing stop y poder activarla o desactivarla desde el menu settings externo.

Sabes si se puede hacer de una forma más simple?

Gracias de antemano, buena iniciativa, aquí tienes un seguidor en la comunidad :-D


@Configurable("TrailingStop")
public int TrailingStop = 50;

public void onTick

if (order.isLong()) { // long side order

if (TrailingStop > 0
&& tick.getBid() > currentStopLoss + pipToPrice(stopLossPips)
&& tick.getBid() > openPrice + pipToPrice(TrailingStop )) {
// trailing stop loss
newStop = tick.getBid() - pipToPrice(stopLossPips);
newStop = (new BigDecimal(newStop)).setScale( instrument.getPipScale(), BigDecimal.ROUND_HALF_UP).doubleValue();

if (currentStopLoss < newStop)


{
order.setStopLossPrice(newStop);
}
}
else if (beTrigger > 0

&& tick.getBid() >= (openPrice + pipToPrice(beTrigger))) {
// break even
newStop = openPrice + pipToPrice(beLockin);
newStop = (new BigDecimal(newStop)).setScale( instrument.getPipScale(), BigDecimal.ROUND_HALF_UP).doubleValue();

if (currentStopLoss < newStop) { order.setStopLossPrice(newStop);
}
}
}
else { // short side order

if (TrailingStop > 0
&& tick.getAsk() < currentStopLoss - pipToPrice(stopLossPips)
&& tick.getAsk() < openPrice - pipToPrice(TrailingStop )) {
// trailing stop loss
newStop = tick.getAsk() + pipToPrice(stopLossPips);
newStop = (new BigDecimal(newStop)).setScale( instrument.getPipScale(), BigDecimal.ROUND_HALF_UP).doubleValue();

if (currentStopLoss > newStop) { order.setStopLossPrice(newStop);
}
}
else if (beTrigger > 0

&& tick.getAsk() <= (openPrice - pipToPrice(beTrigger))) {
// break even
newStop = openPrice - pipToPrice(beLockin);
newStop = (new BigDecimal(newStop)).setScale( instrument.getPipScale(), BigDecimal.ROUND_HALF_UP).doubleValue(); if (currentStopLoss > newStop) { order.setStopLossPrice(newStop); } } } } }



Avatar de Usuario
daykoku
Mensajes: 422
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Visual JForex disponible

Mensaje por daykoku » 24 Sep 2013 12:07

DASZIEL, Ok, en cuanto esté accesible pasaré los post allí.

Saludos



Avatar de Usuario
mascara
Mensajes: 333
Registrado: 18 Oct 2007 23:15

Re: Visual JForex disponible

Mensaje por mascara » 24 Sep 2013 13:28

daykoku escribió:Hola,

MASCARA, no me expliqué, en realidad me gustaría añadirlo a un código que ya tengo. La Jvisual no la he investigado bien tampoco. Si quieres lo hacemos a través de traderlinker.

Respecto a lo que buscaba, encontré algo así por ahí...lo que quiero es añadir la variable de trailing stop y poder activarla o desactivarla desde el menu settings externo.

Sabes si se puede hacer de una forma más simple?

Gracias de antemano, buena iniciativa, aquí tienes un seguidor en la comunidad :-D


@Configurable("TrailingStop")
public int TrailingStop = 50;

public void onTick

if (order.isLong()) { // long side order

if (TrailingStop > 0
&& tick.getBid() > currentStopLoss + pipToPrice(stopLossPips)
&& tick.getBid() > openPrice + pipToPrice(TrailingStop )) {
// trailing stop loss
newStop = tick.getBid() - pipToPrice(stopLossPips);
newStop = (new BigDecimal(newStop)).setScale( instrument.getPipScale(), BigDecimal.ROUND_HALF_UP).doubleValue();

if (currentStopLoss < newStop)


{
order.setStopLossPrice(newStop);
}
}
else if (beTrigger > 0

&& tick.getBid() >= (openPrice + pipToPrice(beTrigger))) {
// break even
newStop = openPrice + pipToPrice(beLockin);
newStop = (new BigDecimal(newStop)).setScale( instrument.getPipScale(), BigDecimal.ROUND_HALF_UP).doubleValue();

if (currentStopLoss < newStop) { order.setStopLossPrice(newStop);
}
}
}
else { // short side order

if (TrailingStop > 0
&& tick.getAsk() < currentStopLoss - pipToPrice(stopLossPips)
&& tick.getAsk() < openPrice - pipToPrice(TrailingStop )) {
// trailing stop loss
newStop = tick.getAsk() + pipToPrice(stopLossPips);
newStop = (new BigDecimal(newStop)).setScale( instrument.getPipScale(), BigDecimal.ROUND_HALF_UP).doubleValue();

if (currentStopLoss > newStop) { order.setStopLossPrice(newStop);
}
}
else if (beTrigger > 0

&& tick.getAsk() <= (openPrice - pipToPrice(beTrigger))) {
// break even
newStop = openPrice - pipToPrice(beLockin);
newStop = (new BigDecimal(newStop)).setScale( instrument.getPipScale(), BigDecimal.ROUND_HALF_UP).doubleValue(); if (currentStopLoss > newStop) { order.setStopLossPrice(newStop); } } } } }

aah :-D
Si te refieres a que te salga la variable "trailingstop" en la ventana de parámetros al ejecutar la estrategia, eso ya lo hace el @Configurable que tienes. Tiene que estar en la parte donde se declaran los atributos globales... justo despues del public class xxx{ ...

Por lo que veo en el código si dejas esa variable a cero, es como desactivarla, porque solo se hace la lógica del trailing cuando TrailingStop > 0 ¿no?.

Y sobre lo de simplificar, no creo, la forma de hacerlo es esa, a menos que te valga poner el trailing estandard de dukas que es de 10 pips mínimo. Eso se puede hacer con el método setStopLossPrice(double price, OfferSide side, double trailingStep) de la orden (creo que devuelve error si le pones a menos de 10 ) , pero si quieres ir controlandolo tú, el código es ese, de echo creo que es el mismo que tengo yo de algún sitio... :-D .

Si quieres limpiar el código, y no quieres nada de mover a breakeven puedes quitar los if del beTrigger... así quitas cosas que no uses...

Saludos,


Imagen

Avatar de Usuario
daykoku
Mensajes: 422
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Visual JForex disponible

Mensaje por daykoku » 24 Sep 2013 13:42

Upppsssssss....crereo que sigo jodido.... :cry:

Quité lo que me dijiste pero fíjate como me falta asignar....

- currentStopLoss
- pipToPrice
- openPrice
- newStop

Te paso la imagen de esa parte.No consigo ver donde me falta algo, consigues dilucidar dónde me pierdo?
Adjuntos
trailing.png



barridopey
Mensajes: 165
Registrado: 29 Mar 2006 19:29

Re: Visual JForex disponible

Mensaje por barridopey » 24 Sep 2013 13:55

Daykoku,

Viendo el trozo de codigo que has puesto, y aunque no venga a cuento mi pregunta (perdón por ello), es el mismo lenguaje de programación que usa JForex que Ninja Trader?

Se podría pasar de uno a otro sin ninguna adaptación?

Saludos



Avatar de Usuario
daykoku
Mensajes: 422
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Visual JForex disponible

Mensaje por daykoku » 24 Sep 2013 14:05

No, este es java. Creo que ninja usaba una variante de C.

Lo que si puedes es usar un conversor de mql a java. Sin embargo, la conversión es rara, es decir, no convierte a java nativo, ralentiza las pruebas y tampoco puedes hacer todas las conversiones. Una vez lo usé y al final era mejor rehacer el código.

Que yo sepa no existe conversor de C# a java pero voy a echar una ojeada y te digo.

Saludos



Avatar de Usuario
mascara
Mensajes: 333
Registrado: 18 Oct 2007 23:15

Re: Visual JForex disponible

Mensaje por mascara » 24 Sep 2013 15:54

daykoku escribió:Upppsssssss....crereo que sigo jodido.... :cry:

Quité lo que me dijiste pero fíjate como me falta asignar....

- currentStopLoss
- pipToPrice
- openPrice
- newStop

Te paso la imagen de esa parte.No consigo ver donde me falta algo, consigues dilucidar dónde me pierdo?
casi todo son variables que te falta por declarar... Seguramente, en el código de donde lo sacaste, al inicio de la clase verás algo como:
private double newStop = 0;
busca esa parte y copiala también... Todas las variables casi seguro que son double así que si no, escribe eso mismo para cada una de ellas arriba del todo después de public class xxx{

Lo de PipToPrice es un método, que te faltará por copiar... búscala por el código que seguro que está...

De todas formas algo más te faltará copiar, bueno o lo tienes pero en otro sitio que no se ve, porque a las variables del CurrentStopLoss, y tal, hay que darles valor antes de usarlas...

Si te parece adjuntame la estrategia original en la que estás basándote y te la devuelvo con lo que me digas que quieres hacer o con los comentarios de que cambiaría... es que ahora no la encuentro entre las que tengo aquí (estoy en el pc del curro)


Imagen

Avatar de Usuario
daykoku
Mensajes: 422
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Visual JForex disponible

Mensaje por daykoku » 25 Sep 2013 21:23

Mascara pégame una ciber-colleja :lol: , pero no consigo hacerme con esto. Creo que es porque tengo muchas cosas en cada evento y me se me mezcla el azúcar con la sal.

He optado por hacer la forma simple, del web-site

http://www.dukascopy.com/wiki/#Set_Stop ... ting_order" onclick="window.open(this.href);return false;

Pero tampoco ato todos los cabos. No se si te importa copiarme esa parte del trailing de cómo lo tienes tú y lo pego en el mio.

Si te vuelvo loco me lo dices y ya me tiro a los foros rusos a ver que hay por ahí :-D

saludos



Avatar de Usuario
daykoku
Mensajes: 422
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Visual JForex disponible

Mensaje por daykoku » 25 Sep 2013 21:29

Por otro lado, se me ocurrió ir recopilando estos métodos básicos en la comunidad que hiciste para el que quiera automatizar sus sistemas ir tirando de ellos (como yo).

Cuando me haga con el puñetero trailing lo inauguro :D



Avatar de Usuario
mascara
Mensajes: 333
Registrado: 18 Oct 2007 23:15

Re: Visual JForex disponible

Mensaje por mascara » 25 Sep 2013 22:39

genial jeje, yo quería hacer lo mismo con lo de subir código, y era uno de los objetivos de la comunidad... si termino con lo del carnet de moto y retomo alguna cosilla de estas, además quería aprovechar que estoy con esto del jforex de nuevo para ver si participo algún mes en el concurso de estrategias :-D...

Bueno, al tema... Se que en algún momento vi la estrategia que estas usando de modelo porque me suena pero no la he encontrado así que he cogido otra parecida y le he comentado la parte del breakeven...
Lo que hace es que mira, en cada tick, si hay alguna orden abierta y gestiona su stop, y dibuja unas flechas en el gráfico, así que si te da error comprueba que tienes un gráfico del par del que sea la orden abierto... He marcado lo que se podría quitar si no se quiere el gráfico...

quitale el .txt al nombre del archivo, es que si no, no me deja adjuntarlo...

cualquier cosa me dices...
Adjuntos
TrailingStop.java.txt
(9.07 KiB) Descargado 149 veces


Imagen

Avatar de Usuario
daykoku
Mensajes: 422
Registrado: 28 Dic 2010 21:20
Ubicación: Tenerife

Re: Visual JForex disponible

Mensaje por daykoku » 28 Sep 2013 20:38

Genial Mascara. Las explicaciones inclusive.

Me dijeron que no permites el posteo en el grupo de traderlinker. SI lo cambias, subimos el código y así inauguramos.

Saludos




Responder

Volver a “JForex”