Sunday 25 December 2016

Jforex Estrategia Wiki

Se recomienda la plataforma JForex para trading automatizado para comerciantes interesados ​​en el comercio manual y automatizado y / o desarrollo y pruebas de estrategias de trading basadas en el lenguaje de programación JAVA. La funcionalidad principal y la interfaz de la plataforma son similares a las de la plataforma Java. Además, se proporciona una interfaz integrada entre plataformas para la ejecución de estrategias personalizadas y código de programación. Las herramientas integradas de análisis técnico también permiten seguir las posiciones directamente desde los gráficos. Porqué los comerciantes eligen JForex Hay muchas diversas soluciones de negociación automatizadas disponibles en el mercado. Pero pocos o ninguno puede proporcionar tantas funciones como JForex. A continuación se presentan algunas de las principales características de la plataforma JForex en comparación con otras soluciones como Meta Trader, Trade Station, etc. Soporte de diferentes sistemas operativos Puede ejecutar estrategias automatizadas utilizando cualquier sistema operativo (Windows, Linux, Mac, etc.) Estrategia automatizada Visualización JForex le ofrece la posibilidad de visualizar una ejecución de estrategias no sólo durante el comercio en tiempo real sino también para las pruebas históricas de retroceso. Estrategias automatizadas basadas en múltiples pares de divisas Los comerciantes pueden desarrollar sus estrategias basadas en múltiples pares de divisas. También puede ejecutar una prueba de retroceso histórica para los múltiples pares seleccionados dentro de una estrategia de negociación. Pruebas de retroceso históricas utilizando datos de tick reales En contraste con otros proveedores de soluciones FX automatizadas en las que los resultados de las pruebas no son muy exactos debido al uso de la interpolación de datos en lugar de los datos de tick reales, JForex soluciona este problema ofreciendo Prueba de retroceso histórica. Hasta 180 indicadores de negociación Hay hasta 180 indicadores de negociación implementados en JForex, todos disponibles para estrategias de FX automatizadas. Soporte de Java IDEs (Integrated Development Environment) Los comerciantes profesionales de JForex pueden aprovechar al máximo los diferentes IDE de Java (Integrated Development Environment) disponibles para la implementación de estrategias de JForex. Profundidad total del mercado La profundidad de mercado de JForex abarca los precios y la liquidez de muchos proveedores de liquidez diferentes. Mientras desarrollan sus estrategias, los comerciantes pueden utilizar la profundidad del mercado como un recurso adicional que proporciona información sobre el mercado actual. Colocación de BIDs y OFERTAS al mercado Esta opción especial permite a los comerciantes actuar como un proveedor de liquidez mediante la presentación de ofertas individuales y ofertas directamente al mercado. A medida que se colocan ofertas / ofertas, pueden ser igualadas por otros consumidores de liquidez, evitando así los costos de propagación. Para obtener más información sobre JForex y otra información relacionada con el comercio, escríbanos: email160protected. Llame a: 41 22 799 4888 o, alternativamente, pida una llamada de regreso. Al estudiar la anatomía de una estrategia vacía de JForex (Parte 1 y Parte 2), su tiempo para diseccionar uno de trabajo. MAPlay es la estrategia que se incluye con cada descarga de API de JForex como una demostración. Puede encontrar el código fuente completo de esta estrategia en / src / singlejartest / en el paquete comprimido de JForex API. Recuerde que el primer método de interfaz que se ejecuta al inicio de la estrategia es onStart. El método onStart de MAPlay se reproduce a continuación. El motor de las variables. Indicadores. Y la consola son campos de la clase MAPlay. Son variables globales dentro de la clase. ¿Qué líneas 42--44 hacer es guardar el IEngine. Indicadores. Y objetos de IConsole para uso posterior. La última línea de onStart, línea 45, es simplemente imprimir un mensaje en la consola del programa JForex para notificar al usuario que la estrategia ha comenzado. Una vez que onStart ha terminado de procesar, es probable que el servidor llame a onTick si llega una señal de mercado. Si no es durante las horas de mercado, entonces theres ninguna señal y algún otro evento podría suceder en lugar de onTick. Piense en los métodos como eventos más que en un proceso lineal. Programe su estrategia de JForex de acuerdo con lo que desea hacer con cada uno de los seis eventos de Interfaz IStrategy. Para esta estrategia en particular, el programador decide implementar su estrategia en el nivel de tick. Como tal, gran parte del algoritmo de negociación reside en onTick para MAPlay. Tenga en cuenta que esta es una opción de diseño, puede utilizar onBar si desea que su estrategia para procesar a nivel de barra (o puede utilizar tanto onTick y onBar). Aquí está el código fuente de onTick en MAPlay. De un vistazo, puede observar que las variables ma0 y ma1 juegan un papel clave en la determinación de la configuración. Sugerencia: Para invertir la ingeniería de una estrategia, puede ser más fácil trabajar hacia atrás desde el momento en que se coloca el pedido, lo que es hecho por engine. submitOrder en este caso. Ma0 y ma1 tienen resultados de promedios móviles exponenciales (EMA). Ma0 es el valor actual. Ma1 es el valor de barras anterior. Líneas 56--63 compruebe utilizando las pruebas IF (líneas 56 y 60) para ver si alguna de las variables contiene datos no válidos. Si los datos no son válidos, se calcula el indicador y se omite el resto de la onTick con la declaración de retorno en la línea 62. Nota: A veces, los valores de indicador pueden ser inválidos (cero, negativo o doble. NaN dependiendo de la implementación del indicador particular ) Si no hay datos suficientes para calcularlo o se ha producido un error, por ejemplo. Las EMA se obtienen en las líneas 57 y 59 utilizando el objeto IIndicators (que se inicializó en onStart). La JForex Wiki proporciona una explicación de su uso. Observe que ma1 es una matriz, que fue declarada en la línea 38 con un tamaño equivalente al número de todos los instrumentos JForex disponibles. En particular, se utiliza con un valor de índice especial como en ma1instrument. ordinal (). En otras palabras, está pidiendo la ranura de instrumentos actual en el array ma1. El instrumento actual es el que se pasa al método en la línea 55. Desplazando hacia abajo el código, otro punto de interés es la línea 65, mostrando el uso de instrument. getPipValue (). La línea 67 comprueba si el número total actual de posición es cero. Si lo es, es decir sin posición abierta, entonces la estrategia procede a comprobar la señal de entrada para entrar en un comercio (líneas 68 - 76). PositionsTotal () es un método personalizado definido en las líneas 84-92. Utiliza un bucle FOR para recorrer todas las órdenes obtenidas de engine. getOrders (instrumento) Una vez que se cumple la condición larga o corta, las líneas 68 y 72, respectivamente, la estrategia envía un orden en las líneas 69 para un corto y Línea 73 durante un largo. Los detalles de la presentación de órdenes de mercado se describe en el JForex Wiki. Cuando detiene esta estrategia, onStop (líneas 48--53) se llama. Para esta estrategia, el programador vuelve a recorrer todos los pedidos utilizando engine. getOrders () y cierra cada posición con un comando order. close () en la línea 50. Eso es para esta estrategia trivial. Si hay un punto que usted debe recordar. Tenga en cuenta mi uso de los muchos enlaces a JForex javadoc y JForex Wiki a lo largo de este post. Es probable que encuentre muchas de sus respuestas de esas dos fuentes. Si no, theres siempre el tablero de la ayuda de JForex. Ahora que has tenido una idea de cómo MAPlay. java funciona, es hora de probarlo. En el siguiente post en enero, vamos a discutir el JForex Historical Tester y qué mirar para cuando se ejecuta una estrategia live. Having estudiado la anatomía de una estrategia vacía de JForex (Parte 1 y Parte 2), su tiempo para diseccionar uno de trabajo. MAPlay es la estrategia que se incluye con cada descarga de API de JForex como una demostración. Puede encontrar el código fuente completo de esta estrategia en / src / singlejartest / en el paquete comprimido de JForex API. Recuerde que el primer método de interfaz que se ejecuta al inicio de la estrategia es onStart. El método onStart de MAPlay se reproduce a continuación. El motor de las variables. Indicadores. Y la consola son campos de la clase MAPlay. Son variables globales dentro de la clase. ¿Qué líneas 42--44 hacer es guardar el IEngine. Indicadores. Y objetos de IConsole para uso posterior. La última línea de onStart, línea 45, es simplemente imprimir un mensaje en la consola del programa JForex para notificar al usuario que la estrategia ha comenzado. Una vez que onStart ha terminado de procesar, es probable que el servidor llame a onTick si llega una señal de mercado. Si no es durante las horas de mercado, entonces theres ninguna señal y algún otro evento podría suceder en lugar de onTick. Piense en los métodos como eventos más que en un proceso lineal. Programe su estrategia de JForex según lo que desee hacer con cada uno de los seis eventos de Interfaz IStrategy. Para esta estrategia en particular, el programador decide implementar su estrategia a nivel de tick. Como tal, gran parte del algoritmo de negociación reside en onTick para MAPlay. Tenga en cuenta que esta es una opción de diseño, puede utilizar onBar si desea que su estrategia para procesar a nivel de barra (o puede utilizar tanto onTick y onBar). Aquí está el código fuente de onTick en MAPlay. De un vistazo, puede observar que las variables ma0 y ma1 juegan un papel clave en la determinación de la configuración. Sugerencia: Para invertir la ingeniería de una estrategia, puede ser más fácil trabajar hacia atrás desde el momento en que se coloca el pedido, lo que es hecho por engine. submitOrder en este caso. Ma0 y ma1 tienen resultados de promedios móviles exponenciales (EMA). Ma0 es el valor actual. Ma1 es el valor de barras anterior. Líneas 56--63 compruebe utilizando las pruebas IF (líneas 56 y 60) para ver si alguna de las variables contiene datos no válidos. Si los datos no son válidos, se calcula el indicador y se omite el resto de la onTick con la declaración de retorno en la línea 62. Nota: A veces, los valores de indicador pueden ser inválidos (cero, negativo o doble. NaN dependiendo de la implementación del indicador particular ) Si no hay datos suficientes para calcularlo o se ha producido un error, por ejemplo. Las EMA se obtienen en las líneas 57 y 59 utilizando el objeto IIndicators (que se inicializó en onStart). La JForex Wiki proporciona una explicación de su uso. Observe que ma1 es una matriz, que fue declarada en la línea 38 con un tamaño equivalente al número de todos los instrumentos JForex disponibles. En particular, se utiliza con un valor de índice especial como en ma1instrument. ordinal (). En otras palabras, está pidiendo la ranura de instrumentos actual en el array ma1. El instrumento actual es el que se pasa al método en la línea 55. Desplazando hacia abajo el código, otro punto de interés es la línea 65, mostrando el uso de instrument. getPipValue (). La línea 67 comprueba si el número total actual de posición es cero. Si lo es, es decir, sin posición abierta, entonces la estrategia procede a comprobar la señal de entrada para entrar en un comercio (líneas 68-76). PositionsTotal () es un método personalizado definido en las líneas 84-92. Utiliza un bucle FOR para recorrer todas las órdenes obtenidas de engine. getOrders (instrumento) Una vez que se cumple la condición larga o corta, las líneas 68 y 72, respectivamente, la estrategia envía un orden en las líneas 69 para un corto y Línea 73 durante un largo. Los detalles de la presentación de órdenes de mercado se describe en el JForex Wiki. Cuando detiene esta estrategia, onStop (líneas 48--53) se llama. Para esta estrategia, el programador vuelve a recorrer todos los pedidos utilizando engine. getOrders () y cierra cada posición con un comando order. close () en la línea 50. Eso es para esta estrategia trivial. Si hay un punto que usted debe recordar. Tenga en cuenta mi uso de los muchos enlaces a JForex javadoc y JForex Wiki a lo largo de este post. Es probable que encuentre muchas de sus respuestas de esas dos fuentes. Si no, theres siempre el tablero de la ayuda de JForex. Ahora que has tenido una idea de cómo MAPlay. java funciona, es hora de probarlo. En el próximo post en enero, vamos a discutir el JForex Historical Tester y qué ver cuando se ejecuta una estrategia en vivo. Examinamos cuatro de los seis métodos de la Interfaz IStrategy en una publicación anterior. Los dos últimos métodos, onTick y onBar, es donde su estrategia de conectar con los datos del mercado. Uno o ambos de estos métodos es donde usted pone su algoritmo de negociación adentro. Su estrategia entonces podría procesar los datos del mercado mientras que llegan una señal / barra a la vez. Recuerde que IStrategy Interface es el esqueleto de su estrategia. Y ese objeto IContext es el corazón de su estrategia. OnTick / onBar es el jefe de su estrategia, que contiene su algoritmo comercial, que es el cerebro. OnTick Heres la definición del método de onTick. Importante: onTick se llama para cada uno de los instrumentos a los que se suscribe su plataforma JForex (la lista de instrumentos en su caja de espacio de trabajo). Permítanme decir que de nuevo, onTick se llama para cada instrumento que su plataforma JForex está suscrito. La práctica estándar es filtrar las garrapatas de los instrumentos que no desea con una simple declaración de devolución de IF. If (instrument myInstrument) return Los datos reales de tick se pasan a su estrategia usando el objeto ITick del parámetro onTick. Echa un vistazo a la entrada de jickead de ITick para ver lo que ofrece. OnBar onBar funciona de manera similar a onTick. En el cual se llama onBar para cada instrumento y periodo subsubvertidos conocidos por JForex. Del mismo modo, tiene que filtrar todos los instrumentos no deseados y períodos o de lo contrario se esperan resultados de su estrategia. Otro punto a tener en cuenta es que onBar proporciona tanto un IBar askBar como un IBar bidBar, representando las barras ask y bid. Pregunta: ¿Qué sucede cuando dos o más períodos se superponen como en las barras 13:45 1, 5 y 15 minutos están llegando al mismo tiempo (sin mencionar los períodos en segundos también). Respuesta: Según Dukascopy Soporte en el foro, Vienen en un orden estricto, por ejemplo (1min 1min 1min 1min 1min 5min 1min 1min 1min 1min 1min 5min.) Vienen en ciclos, donde los periodos más pequeños viene primero. Foro de soporte de JForex Al programar su estrategia con JForex, sin duda encontrará preguntas propias. El mejor lugar para preguntar es en el foro de soporte oficial de JForex. Este es el último de los tres recursos esenciales de JForex a los que aludí anteriormente. Incluso si usted no tiene ninguna pregunta específica, hay códigos de ejemplo, la discusión de codificación, y cientos de QampA existente de otros desarrolladores de JForex publicado en el foro. Resumen La discusión hasta ahora ha sido de muy alto nivel. Para mostrarle lo que realmente puede hacer en una IStrategy, disecaremos una estrategia de trabajo en el próximo post. Y qué más mejor examinar que la estrategia más popular de JForex de todos ellos - MAPlay. java. Continuando con la parte 1 de esta serie: Comenzando a aprender la programación de JForex. Ahora estaban listos para discutir lo real. Usted construye estrategias de JForex usando la interfaz de IStrategy (qué es una interfaz). Básicamente, una interfaz es un esqueleto de código con un conjunto de métodos vacíos predefinidos que necesitará implementar. Los seis métodos estándar de la Interfaz IStrategy son: A continuación se muestra una implementación de interfaz IStrategy vacía, también conocida como estrategia JForex. Este código compilará bien en JForex e incluso podrá ejecutarlo. Pero no hace nada en absoluto porque no hay código para ejecutar en cada uno de los métodos. Cada uno de los seis métodos sólo se llamará y salir inmediatamente. Cada uno de los métodos es activado por un evento específico. Usted puede probablemente adivinar lo que son de su nombre. OnStart (línea 5) Este es el primer método que se llama cuando se ejecuta su estrategia. Se ejecutará una vez y sólo una vez al comienzo de su estrategia. Normalmente usted hace su inicialización aquí. Lo que hay que tener en cuenta para onStart está en la línea 5 del código. La firma del método de onStart es El objeto en el parámetro y dado a usted en este método es un objeto IContext. Si IStrategy es el esqueleto, entonces IContext es el corazón de la estrategia. Eche un vistazo a este enlace javadoc a IContext para ver qué hace este objeto. Javadoc. Ahora es un buen momento para introducir el segundo de los tres recursos esenciales de un programador JForex. JForex Javadoc es la documentación de API más actualizada que explica cada objeto y todos los métodos de la API de JForex. Piense en ello como un manual de referencia. Tenga en cuenta que aunque su integral, la mayor parte de la explicación es muy escasa y posiblemente incompleta. IContext es un objeto principal de JForex para acceder a muchos componentes importantes del sistema JForex, como el motor de pedido, gráficos, consola, indicadores. Tienes la idea. Es importante que normalmente desee conservar una copia local, ya que es la única vez (en onStart) que este objeto se le pasará a IStrategy. OnStop (línea 26) Como su nombre sugiere, este método se llama una vez que envía un comando stop a su estrategia. Usted hace su programa de recapitulación como el registro y la descarga de datos aquí. No mucho fuera de lo común con este. OnMessage (línea 18) Mientras que sabemos cuando onStart y onStop serán llamados, onMessage es un método asíncrono en que no se sabe exactamente cuándo se ejecutará. Este método se llama cuando el servidor Dukascopy envía a su estrategia un mensaje. Por ejemplo, el servidor llama aMessage para hacerle saber que su pedido ha sido llenado. Recibe y procesa el mensaje del servidor accediendo al objeto IMessage que se le pasa a usted. Importante: No hay garantía de que recibirá todos y cada uno de los mensajes enviados a su estrategia desde el servidor. Tal vez su proceso de estrategia está obstruido. O tal vez su conexión a Internet tenía un hipo. Si su estrategia onMessage no se llama por el servidor por cualquier razón, el servidor no podría importar menos y no será la comprobación ni tratar de nuevo. Así que no haga nada crítico como administrar sus pedidos en onMessage onAccount (línea 22) Este método se llama cuando se recibe la actualización de su información de cuenta. El método proporciona acceso al objeto IAccount. Que utiliza para obtener la información de su cuenta. Digamos que si tiene una posición abierta, la información de su cuenta cambia en cada tick porque su capital es ganancias / pérdidas no realizadas en efectivo. En ese caso, onAccount es llamado cada 5 segundos por el servidor como máximo para evitar inundar su estrategia. Más Importante: El objeto IAccount no está conectado en directo a su cuenta en el servidor. Es simplemente una instantánea de su cuenta. Por ejemplo, si guarda una copia local de un objeto IAccount. Hacer algunas operaciones para cambiar su saldo. Luego, solicite la misma cuenta de IA para la información del saldo de la cuenta, no verá ningún cambio. Como tal, siempre actualice su copia local de IAccount dentro del método onAccount para mantener la información de su cuenta actualizada para el uso de sus estrategias. Para continuar los métodos onStart, onStop, onMessage y onAccount son métodos administrativos para su estrategia. Los dos últimos métodos que bien discutir, onTick y onBar, es donde la magia ocurre en una estrategia. Estoy guardando el mejor para el último en el poste siguiente. El mayor problema que tuve al aprender a programar mis propias estrategias de negociación en JForex es encontrar dónde comenzar a aprender. Había pocas documentación de JForex disponible en ese momento y tuve que aprender a través de minuciosos experimentos con la ayuda del soporte técnico de Dukascopys. Las cosas ciertamente han cambiado para mejor como una comunidad de JForex está empezando a brotar y la documentación para que sea por lo menos suficiente para conseguir que nadie comenzó. Este post es el primero de una serie de guías de principiantes rápidos para aprender la programación de JForex al poner todos estos recursos en un tutorial. JForex es una herramienta Java JForex no es en realidad un lenguaje de programación. Es una interfaz de programación de aplicaciones (API) para su uso con el lenguaje de programación Java estándar. Como tal, el primer paso para aprender a programar en JForex es aprender Java. Afortunadamente, Java es uno de los lenguajes de programación más populares. Así que hay un montón de recursos dentro y fuera de la web para aprender la programación Java. Algunos ejemplos de tutoriales en línea gratuitos son: Los Tutoriales de Java - Este es un tutorial oficial del desarrollador de Java ellos mismos. Muy recomendable. Principiantes Java Tutorial - Más orientado para los principiantes absolutos a la programación. Si prefieres un libro, recomiendo Head First Java, 2nd Edition. Me cepilló en mi Java de este libro. No te preocupes demasiado por Java, ya que solo necesitas saber lo básico para comenzar con JForex. Basta con leer algunos capítulos para entender la sintaxis de Java y luego seguir adelante. Siempre se puede volver a ellos más tarde. Buceo en JForex El JForex Wiki es uno de los tres recursos esenciales para los programadores de JForex. Me referiré a algunas páginas específicas del Wiki en gran parte de esta serie de mensajes. Si no lo ha hecho ya, regístrese para una cuenta DEMO en Dukascopy. A continuación, ejecute la plataforma JForex y siga las instrucciones de la página wiki Use in JForex para ensamblar su primera estrategia JForex. Resumen Hasta el momento, tan bueno Espero que pueda entender el código fuente básico de Java y saber cómo iniciar / abrir, compilar, Y ejecutar una estrategia de JForex. En el próximo post de esta serie de JForex de aprendizaje, estudiaremos la anatomía de una estrategia de JForex.


No comments:

Post a Comment