Publi
Primero, enhorabuena por la iniciativa de hacer tus propias pruebas
Siempre trato de que quede claro que lo que digo (o lo que dice cualquiera que trata de enseñar algo) no es una verdad absoluta, y que cualquiera que desee aprender, aprende mejor si hace sus propias pruebas, y si "pone en duda" TODO lo que le han dicho, tratando de probar por sus propios medios lo que le han dicho, o incluso al reves, tratando de probar que lo que le han dicho es falso.
De hecho, ya he podido ver algunas incorrecciones en el webinario que di el pasado sabado... Espero me sepais disculpar por ello.

Vamos a tus dudas.

Cita Iniciado por Andrew Ryan Ver mensaje
Tengo un problema con MQL yokinfx

El problema es el siguiente:

Si creo una variable externa de tipo string para el símbolo o si, directamente, escribo el símbolo como argumento de la función MarketInfo tal que:

MarketInfo("EURUSD", MODE_ASK);

me devuelve 0,0 (uso la función Comment para monitorizarlo)

En cambio, si

MarketInfo(Symbol(), MODE_ASK);

no me da ningún problema. El valor se guarda y escribe sin problemas en el CVS.
Puede pasar varias cosas
  1. Tu símbolo EURUSD no es "EURUSD", sino "EURUSD.lmax". Por ejemplo, con LMAX, los símbolos son de ese estilo. Prueba a hacer un Print(Symbol()) y así sabrás qué símbolo tiene tu plataforma.
  2. Si estás en backtest sólo puedes acceder a los datos históricos del par sobre el que estás haciendo backtest. Si estás en forward test (con el programa añadido a un gráfico), entonces sí que tienes accesibles los datos de otros pares.
  3. MarketInfo(Symbol(),MODE_ASK) devuelve un double. Si quieres chequear el resultado, mediante Print, Comment, Alert, o similar, deberás convertirlo a una cadena de caracteres. Puedes hacerlo con la función DoubleToStr(numero, precision)


Cita Iniciado por Andrew Ryan Ver mensaje
Y última cuestión: ¿cómo hago para que separe los datos en vez de sobrescribirlos?

Introduje el código:

Handle=FileOpen("Datos.csv", FILE_CSV | FILE_WRITE, ",");

Que entiendo debería escribir una coma para cada tick y así permitir separar los datos. Pero no lo hace. Simplemente sobrescribe.

PD: he probado con ";" (que he visto que así lo tienen otros EAs) y tampoco funciona
Estás abriendo el fichero como CSV, y en modo de escritura. Este modo sobreescribe los contenidos. Necesitas abrirlo en modo lectura-escritura, así:
FILE_CSV | FILE_READ | FILE_WRITE
también puedes optar por abrir el fichero en modo lectura / escritura de modo NO EXCLUSIVO, pues los nuevos terminales, por defecto, abren el fichero y LO BLOQUEAN, para que no pueda ser abierto por otra aplicación. Para permitir su uso compartido, debes anexar las opciones de
FILE_SHARE_READ | FILE_SHARE_WRITE
según corresponda.
Te he escrito esto de memoria, así que me puedo haber confundido en algo de la sintaxis.
Foro de Forex Trading United