Proyecto metatrader engine

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
Avatar de Usuario
cu6yu4
Mensajes: 632
Registrado: 10 Oct 2009 15:31
Ubicación: Barcelona

Proyecto metatrader engine

Mensaje por cu6yu4 »

Si a alguien le interesa, puede que me ponga con ello; o mejor, nos pongamos. Ya que ahora estoy intentando montar un programa para obtener, depurar y analizar series de datos en el lenguaje Python. Y me estoy dejando los mejores días de juventud y verano; ya que montarse una interfaz gráfica del estilo metatrader será difícil hasta para los profesionales. Cosas del tipo matplotlib son muy arcaicas(gráficamente). La introducción ésta viene porque a lo mejor en temas muy específicos de programación pudiéramos colaborar(en lo demás casi imposible). Y si alguien domina C y nos quiere aportar una solución; pues también.

Bueno, aunque es posible realizarlo(lo del obtener datos y analizarlos) en ninjatrader... a algunos no nos acaba de gustar; con lo que podría ser interesante cargar historiales en MT4 provenientes de algún feed y de mercados no forex, no cfd, no metales...

En cuanto a la feed, a mí me interesa IQfeed... por lo barata; porque la demo es gratis... y porque se trataría de un MT4 que trabajaría offline... luego, no necesitas datos demasiado actualizados(te los bajas en la demo, nos los pasamos, etc.), y menos aún tarifas streaming. Se itilizaría para pruebas... indicadores, experts, etc. Y podrían incorporarse otras feeds. De hecho la primera opción puede ser exportar lo que quieras de cualquier historial de cualquier feed desde ninjatrader 7.

Porque para straeming la cosa ya sería muy chunga de fabricar, y tampoco íbamos a poder operar(bueno, todo se podría hacer). Aparte que juntar datos históricos y lo que te viene del streaming no me hace la menor gracia... ya bastantes problemas tienen los de historiales...

Por cierto: Jamás en la vida hay que juntar historiales o partes de diferentes fuentes. ¿Y en metatrader ya recordareis lo de los ibarshift no?... mira que siempre estamos en lo mismo...

También se trataría de colocar los historiales donde van los del broker(no los offline), para mayor comodidad. A través de http://docs.mql4.com/files/fileopenhistory.

Lo primero será vaciar un MT4 y dejarlo sin conexión. Como el programa está compilado, lo único que podemos hacer(exeptuando a los mega-hacker-crackers) es ir mirando por los demás archivos de texto que sirven de configuración.

En http://www.megaupload.com/?d=LK59DATK he colgado un mt4 bastante vacío. Se descomprime y se ejecuta terminal.exe(no lleva virus :twisted:). En la primera ejecución te pide contraseña... se la das y cambias el login si quieres; da igual(y luego todo esto se puede configurar en opciones). Si dejas el server en 1, el programa intentará conectarse a algo inexistente, pero cargará los historiales que tengamos en /history/1/. Si borramos el 1, no intentará nada, y deberemos trabajar con historiales offline(una opción muy simple).

En el mt4 adjuntado quedan algunos restos del broker Oanda... pero es para investigar algo que veremos con unos archivos .raw.

El caso es que para abrir un historial tenemos 2 opciones... la poco conocida pero útil de ENTER e introducir el valor, como "eurusd" y luego "h4", o junto tipo "gbpusd,,h4"(en la carpeta 1 tenemos cosas en h4). Y la otra es por "new chart" en el menú. Pero para ello tenemos que tener la correcta estructura de los valores... y eso se rige por los archivos symbols.raw y symgroups.raw... y tenemos que averiguar exactamente como habría que editarlos correctamente, para luego modificarlos automáticamente.

Una vez conseguido. Nos curramos un script con el susodicho fileopenhistory para pasar AUTOMÁTICAMENTE los historiales foráneos que hayamos guardado en una subcarpeta de /history/1 y listo.

Lo más fácil es bajar los historiales con el ninja; pero como pretendo automatizar también eso(para iqfeed), estoy intentando reparar el script python de https://github.com/sobotklp/pyqfeed... pero eso ya son particularidades de cada uno. IQfeed te vende la info de la api por 600$/año. Sialguien necesita info le podría pasar lo que gracias Dios, internet y mucho prueba/error he podido ir sonsacando.

Entonces... como siempre que cuelgo algo resulta que sólo me interesa a mí(nada que objetar), quizás mejor no pulir algo para el usuario final; ya que chapuceando lo própio uno puede entenderse suficientemente bien. Ustedes verán.

Dicho lo qual... si uno va a empezar a programar(o analizar en general), quizás le vaya mejor con ninjatrader... si quieres analizar muchos mercados. El metatrader podría encontrarse ya en el final de recta; pues parece que no traspasará del mundo OTC(mercados no regulados).

P.D: mediante la carpeta /templates viene definidos los diseños "por defecto" que a mí me molam. Y por /config/terminal.ini ídem con la interfaz. Pueden cambiarse(desde el própio terminal al modificarlo normalmente) y volverlo empaquetar si se quiere.

Es algo... menos da una piedra.
Uno es esclavo de sus palabras y dueño de sus silencios (José María García).
Avatar de Usuario
haiku
Mensajes: 639
Registrado: 25 Ago 2009 21:34

Re: Proyecto metatrader engine

Mensaje por haiku »

yo de python estoy comenzando aun no tengo nivel ni de lejos para ayudar pero cualquier otra cosa que no requiera programacion... si que me apuntaria.
Avatar de Usuario
cu6yu4
Mensajes: 632
Registrado: 10 Oct 2009 15:31
Ubicación: Barcelona

Re: Proyecto metatrader engine

Mensaje por cu6yu4 »

:-D Yo empezé con python hace 2 meses... vamos que te cobro por enseñarte si quieres...

Me flipé bastante... y pensé que ya puesto que me pasaba a linux, y linux de comando puro... sin mariconadas, archlinux. Total, en la parte de configurar, ya bastante mareado y habiéndome cargado el boot(lo que detecta los sistemas operativos) 20 veces, voy y reviento el disco duro del windows. Estaba en sistema nfts y lo pasé a fat32.

Vamos a ver unos libros que tenemos por ahí. El de 'python para todos' es genial, casi que te vale para entender el asunto. Otro tema es conocer las posibilididades y todo el mundillo... ahí me he pasado un mazo de horas buscando; porque es bueno conocer el panorama general para empezar; si quieres te digo algo. Básicamente para cosas científicas se usa el scipy y cosas como el http://quantlib.org para cosas más de trading puro. De paso te libras de los matlabs & cía.
http://www.megaupload.com/?d=IXDQ09ZC

Por si no lo tienes, en http://download.enthought.com/epd-7.1/ está la versión para estudiantes del paquete full de enthought... que te viene ya con casi todo integrado; y te puedes instalar todo lo de http://pypi.python.org/pypi. Otro buen paquete es el de http://www.pythonxy.com/ que te viene ya con los ide para programar. Yo uso el enthought con el ide pyscript(windows).

¿y de mql sabes algo?... ¿te interesa para algo lo propuesto?... ¿no prefieres directamente el ninjatrader?

Un trabajo de no programador que puedas hacer... ... ... ... ... ... ... ¿aprender a programar?
Te mandaría averiguar lo de los .raw(como habría que editarlos para cambiar la estructura)... que aún no lo he mirado a fondo... pero... Tu verás.

¿Pero a ti te interesa esto? :-D
Uno es esclavo de sus palabras y dueño de sus silencios (José María García).
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Proyecto metatrader engine

Mensaje por cls »

cu6yu4,
si vas a emprender un proyecto de minería de datos los más importante es la data, y a mayor granularidad más importancia (p.ej. ticks). Personalmente no elegiría metatrader para esto.

Busca un datafeed dedicado de calidad. Tarde o temprano es lo que harás si el proyecto es serio.

Con respecto a la plataforma y si sólo vas a analizar barras de tiempo (entiendo que sí porque vas a recurrir a servidores de metatrader que no te dan otra cosa) puedes usar ninjatrader como "datafeed", sólo para conectarte y bajarte los datos. Ya te ahorras un buen trabajo de programación.
Una vez los datos bajados los puedes analizar dentro de NinjaTrader con sql nativo en .NET o con tus propios algoritmos programados en #C o llamando a librerías externas, esto ya a tu gusto.
También puedes bajar la data a fichero y luego procesarlo en linux con phyton, etc.

S2
Avatar de Usuario
cu6yu4
Mensajes: 632
Registrado: 10 Oct 2009 15:31
Ubicación: Barcelona

Re: Proyecto metatrader engine

Mensaje por cu6yu4 »

No se que ha pasado con mi tochopost... y no tengo fuerzas...

Te decía, cls, que sí que para los que les guste ninjatrader es genial. Todo bien empaquetado.

De datafeeds tenemos esignal y iqfeed, de los que prefiero iqfeed... y cosas del estilo https://www.cqgdatafactory.com/ hiper-mega caras.

De ticks solo podremos trabajar con unos meses... la cosa será en 1m.

Y que sí, que la intención última es trabajar lo más pegado a la base de datos posible; pero luego quiero un graficador muy similar al metatrader. El navegar por los datos con ninjatrader no me agrada. Aparte de que el ninja y otros traen muchas cosas innecesarias y es preferible algo que te permita trabajar por algo tipo línea de comandos y aplicar cambios al por mayor(formar spreads, etc). Pero eso va a costar fabricarlo.

¿Que es mayor granulidad? Porque en mi pueblo se entiende simplemente como condición de ser granoso o sino como mayor tamaño del grano: una piedra tendría más granulidad... Vale, debe ser mayor número de gramos dado una cantidad de material... más "granulizado". Perdona, todos los detalles son importantes ;-) .

Ok; según internet sería cuestión de trabajar en granulidad fina.
Uno es esclavo de sus palabras y dueño de sus silencios (José María García).

joselopezde
Mensajes: 460
Registrado: 20 Feb 2012 11:11

Re: Proyecto metatrader engine

Mensaje por joselopezde »

parecía interesante el proyecto.. lo hiciste o se quedó aquí?
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”