Página 1 de 1

Ayuda con orden condic. en Visual Jforex o Java

Publicado: 27 Nov 2016 10:10
por WallStreet
Hola, quería pedir un favorcito a los usuarios expertos en programación de sistemas en Visual Jforex o Java.

Realmente no es un sistema, es simplemente poder lanzar una orden a mercado, largo o corto, de cualquier par a una hora concreta (ejemplo 16:42:34 GMT).

Me parece increíble que desde propia plataforma Jforex no se pueda lanzar este tipo de órdenes pero bueno...

He pedido esto mismo en los foros de Dukascopy y a algunos expertos de visual jforex y parece ser que no se puede, cosa que me parece más increíble todavía... por que es un sistema de lo más sencillo que se puede pensar (lanzar una orden a mercado a una hora concreta). Algunos me dicen que hay que poner más condiciones y realmente no hay más condiciones, la única condición para lanzar la orden al mercado es que se cumpla la hora exacta programada en el sistema.

Por si algún alma caritativa quiere ayudarme, estas son las reglas del sistema, he puesto más reglas de las que necesito, la regla que realmente me interesa es poder elegir la hora concreta de entrada:

Par por defecto: Eur/usd (pero que pueda elegir luego cualquier par)
Dirección de la entrada por defecto: largo (pero que pueda elegir luego largo o corto)
Volumen de la entrada: 100.000 = 1 lote (pero que pueda elegir luego cualquier volumen)
Stop loss por defecto: 150 pips (pero que pueda elegir luego cualquier cantidad)
Take profit por defecto: 300 pips (pero que pueda elegir luego cualquier cantidad)
Hora de entrada por defecto: 16:14:45 h. GMT (pero que pueda elegir luego cualquier hora)
Tipo de entrada: A mercado a la hora programada anteriormente.

Ejemplo: Quiero entrar largo a mercado en eur/usd a las 16:14:45 h GMT con 1 lote con stop en 150 pips y profit en 300 pips.

Si hay que dar más datos o quitar alguno ponerlo por aquí.

Muchas gracias

Saludos

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 27 Nov 2016 14:28
por X-Trader
Lo muevo aquí, más apropiado.

Saludos,
X-Trader

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 27 Nov 2016 23:11
por daykoku
Wall,

Yo queria hacer algo parecido en mi codigo y encontré este camino, espero que te sirva:

1- Lo primero es crearte una clase que según los inputs genere una booleana (prueba con esta)

Código: Seleccionar todo

// Es la funcion ValidTime
    
    private boolean isValidTime(int fromHour, int fromMin, int toHour, int toMin, Integer... days) throws JFException {
        
        long lastTickTime = mHistory.getLastTick(Instrument.EURUSD).getTime();
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeZone(TimeZone.getTimeZone("GMT"));
        //you want to work with the date of the last tick - in a case you are back-testing
        calendar.setTimeInMillis(lastTickTime);
        calendar.set(Calendar.HOUR_OF_DAY, fromHour);
        calendar.set(Calendar.MINUTE, fromMin);
        calendar.set(Calendar.SECOND, 0);
        long from = calendar.getTimeInMillis();        

        calendar.setTimeZone(TimeZone.getTimeZone("GMT"));
        calendar.setTimeInMillis(lastTickTime);
        calendar.set(Calendar.HOUR_OF_DAY, toHour);
        calendar.set(Calendar.MINUTE, toMin);
        calendar.set(Calendar.SECOND, 0);
        long to = calendar.getTimeInMillis();
        
        boolean isDayOk = (Arrays.asList(days)).contains(calendar.get(Calendar.DAY_OF_WEEK));
        boolean timeOk = lastTickTime > from  && lastTickTime < to ;
     //   mConsole.getOut().println(String.format("calendar: %s - %s last tick: %s, isDayOk=%s, timeOk=%s",mSdf.format(from), mSdf.format(to), mSdf.format(lastTickTime), isDayOk, timeOk)); 
                        

        return isDayOk && timeOk;
    }
2- Luego en la parte donde lanza las ordenes simplemente te creas una condición (por ejemplo estaS)

Código: Seleccionar todo

boolean isValid1 = isValidTime(01, 00, 23, 00, Calendar.MONDAY, Calendar.TUESDAY, Calendar.WEDNESDAY, Calendar.THURSDAY);
                boolean isValid2 = isValidTime(22, 59, 23, 00, Calendar.MONDAY, Calendar.TUESDAY, Calendar.WEDNESDAY, Calendar.THURSDAY);
                boolean isValid3 = isValidTime(20, 00, 20, 01, Calendar.FRIDAY);
                boolean isValid4 = isValidTime(10, 59, 11, 00, Calendar.MONDAY, Calendar.TUESDAY,

A mi esto me funcionó, lo único que desconozco si hay una forma mas eficiente de hacerlo.

ya me cuentas,

Saludos

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 27 Nov 2016 23:37
por daykoku
Otra cosa, para la parte de las reglas de entrada puedes usar la interface SortedMap

https://docs.oracle.com/javase/tutorial ... d-map.html

Por ejemplo crearte una como esta:

private SortedMap<String, reglas> mReglas;

//-----------------------------------------------------------------------------------------------------
Par por defecto: Eur/usd (pero que pueda elegir luego cualquier par)
Dirección de la entrada por defecto: largo (pero que pueda elegir luego largo o corto)
Volumen de la entrada: 100.000 = 1 lote (pero que pueda elegir luego cualquier volumen)
Stop loss por defecto: 150 pips (pero que pueda elegir luego cualquier cantidad)
Take profit por defecto: 300 pips (pero que pueda elegir luego cualquier cantidad)
Hora de entrada por defecto: 16:14:45 h. GMT (pero que pueda elegir luego cualquier hora)
Tipo de entrada: A mercado a la hora programada anteriormente.
-----------------------------------------------------------------------------------------------------------//
public class reglas
{
private Instrument mI;
private int mDireccion;
private int mSL = 0;
private int mTP = 0;
private double mLotes = 0;

reglas(Instrument instrument, int direccion, double lots, int sl, int tp)
{
mI = instrument;
mDireccion = direccion;
mSL = sl;
mTP = tp;
mLotes = lots;

}

--------------------------------------------------------------------------------------------------------

Entonces reglas seria la que determina las reglas y la puedes condicionar con la otra funcion de ValidTime



PD: Esto es parte de un codigo que yo uso y funciona, pero que yo no hize. Creo que ya puedes arrancar tu solo con esto y debería funcionarte también.


La forma más simple es añadir en reglas lo de la funcion IsValid, pero yo no lo hize así. Prueba y me dices

Saludos

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 28 Nov 2016 09:17
por WallStreet
Hola daykoku, muchas gracias por tu valiosa y rápida respuesta, el problema es que yo no tengo ni idea de programación de ningún tipo. Lo máximo que sé hacer es subir un archivo .java con el código ya escrito a la jforex o subir el archivo .vfs a la plataforma Visual jforex y si tengo suerte ponerlo a funcionar.

El código que me pones no tengo ni idea de que hacer con él (todo me suena como si fuera chino). Quizá es pedir demasiado pero necesito el archivo con el código ya escrito para poder probarlo y ver si realmente es lo que pido.

En cualquier caso muchas gracias por todas las molestias que te has tomado para responder.

Saludos...

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 29 Nov 2016 10:29
por daykoku
BUff...lo que necesitas es un programa completo y testeado. Aunque tuviera tiempo me falta conocimiento, mi alcance llega a trozos de código que modifico o creo según necesidades, pero trabajando sobre una base ya testeada.

Se me ocurre que busques algún EA sencillito que gatille según algunas de tus condiciones y vayas añadiendo cosas hasta que te vaya funcionando. Es lo que yo suelo hacer.

Siento no poder ayudarte más.

Saludos

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 29 Nov 2016 10:54
por WallStreet
daykoku escribió:BUff...lo que necesitas es un programa completo y testeado. Aunque tuviera tiempo me falta conocimiento, mi alcance llega a trozos de código que modifico o creo según necesidades, pero trabajando sobre una base ya testeada.

Se me ocurre que busques algún EA sencillito que gatille según algunas de tus condiciones y vayas añadiendo cosas hasta que te vaya funcionando. Es lo que yo suelo hacer.

Siento no poder ayudarte más.

Saludos
Muchas gracias daykoku, has hecho bastante, no te preocupes.

Estoy buscando alguno parecido ya hecho, si lo encuentro lo pondré por aquí.

Lo que me pregunto es por qué en ninguna plataforma de ningún broker (que yo conozca) está incluida la opción de poner ordenes condicionadas a una hora concreta, no deja de ser más que una orden limitada a una hora concreta en lugar de a un precio concreto :shock:

Saludos...

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 03 Dic 2016 14:24
por TRADERMIX
Hola WALLSTREET, pues lo mismo me pasa a mí desde hace años, yo tengo una estrategia de poner una posición en el XAU USD a las 00.12H y todos los putos días tengo que estar delante de la pantalla para colocar la #@#!%# orden, ya que no existe ninguna opción de ponerla cuando quieras para que salte a esa precisa hora, no existe ni en jforex ni en METATRADER, así llevo cuatro años poniendo todas las noches las orden a las OO.12H, pk a nadie se le ocurre de poner un programa de poner ordenes condicionadas horarias y no sólo sobre precios.Así que de momento me fastidio y todos los días a esa hora delante del ordenador si quiero colocar la orden.

En fin.... no queda otra que.....

Saludos
TRADERMIX
:lol: :lol:

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 03 Dic 2016 16:41
por WallStreet
TRADERMIX escribió:Hola WALLSTREET, pues lo mismo me pasa a mí desde hace años, yo tengo una estrategia de poner una posición en el XAU USD a las 00.12H y todos los putos días tengo que estar delante de la pantalla para colocar la #@#!%# orden, ya que no existe ninguna opción de ponerla cuando quieras para que salte a esa precisa hora, no existe ni en jforex ni en METATRADER, así llevo cuatro años poniendo todas las noches las orden a las OO.12H, pk a nadie se le ocurre de poner un programa de poner ordenes condicionadas horarias y no sólo sobre precios.Así que de momento me fastidio y todos los días a esa hora delante del ordenador si quiero colocar la orden.

En fin.... no queda otra que.....

Saludos
TRADERMIX
:lol: :lol:
Hola TRADERMIX, bueno... al final después de mucho buscar encontré casi lo que quiero ya hecho, me sirve perfectamente, es posible que tu encuentres algo parecido en las webs donde alojan EAs de metatrader, que hay muchas.

Ojo... primero haz montones de pruebas en demo de los archivos de descargues, yo probé bastantes hasta que dí con el que me podía servir.

Lo que yo buscaba lo encontré aquí: https://www.mql5.com/es/code/10822

Seguramente alguien ya habrá compartido algo parecido a lo que pides, en último recurso siempre puedes recurrir a los profesionales que te lo hacen por menos de 30 euros creo.

Saludos...

Re: Ayuda con orden condic. en Visual Jforex o Java

Publicado: 09 Dic 2016 15:44
por TRADERMIX
Wallstreet, muchisimas gracias por el Ea, es justo lo que necesitaba, ya lo he probado durante toda la semana y funciona perfectamente.

Saludos