Por qué este código no hace lo que quiero (ArraySort)
Publicado: 29 Oct 2019 13:17
Hola, gracias por adelantado por echarme una mano; no soy un experto ni en programación en general ni en MQL4.
Estoy escribiendo un pequeño código que lee nombres de instrumentos a partir de un fichero y obtiene el spread de cada uno de ellos. A continuación los ordena (los que tienen menos spread aparecen primero asociados a ids numéricos, ya los asociaré después a los nombres de instrumento).
Le he dado muchas vueltas pero no consigo ver por qué el código se limita a repetir la visualización de los valores sin ordenar. Alguien me podría ayudar?
int fichero,pasada,espred[99],espred_id[99,3],veces,veces2;
string instrumento[99];
int init()
{
fichero=FileOpen("listadeinstrumentos.csv",FILE_READ);
pasada=0;
while(!FileIsEnding(fichero))
{
pasada++;
instrumento[pasada]=FileReadString(fichero);
espred[pasada]=MarketInfo(instrumento[pasada],MODE_SPREAD);
Print("Instrumento ",pasada,": ",instrumento[pasada]," - su spread es ",espred[pasada]);
espred_id[pasada,1]=espred[pasada];
espred_id[pasada,2]=pasada;
}
FileClose(fichero);
ArraySort(espred_id,WHOLE_ARRAY,0,MODE_ASCEND);
for(veces=1; veces<=pasada; veces++)
{
for(veces2=1; veces2<3; veces2++)
{
Print(espred_id[veces,veces2]);
}
}
}
Estoy escribiendo un pequeño código que lee nombres de instrumentos a partir de un fichero y obtiene el spread de cada uno de ellos. A continuación los ordena (los que tienen menos spread aparecen primero asociados a ids numéricos, ya los asociaré después a los nombres de instrumento).
Le he dado muchas vueltas pero no consigo ver por qué el código se limita a repetir la visualización de los valores sin ordenar. Alguien me podría ayudar?
int fichero,pasada,espred[99],espred_id[99,3],veces,veces2;
string instrumento[99];
int init()
{
fichero=FileOpen("listadeinstrumentos.csv",FILE_READ);
pasada=0;
while(!FileIsEnding(fichero))
{
pasada++;
instrumento[pasada]=FileReadString(fichero);
espred[pasada]=MarketInfo(instrumento[pasada],MODE_SPREAD);
Print("Instrumento ",pasada,": ",instrumento[pasada]," - su spread es ",espred[pasada]);
espred_id[pasada,1]=espred[pasada];
espred_id[pasada,2]=pasada;
}
FileClose(fichero);
ArraySort(espred_id,WHOLE_ARRAY,0,MODE_ASCEND);
for(veces=1; veces<=pasada; veces++)
{
for(veces2=1; veces2<3; veces2++)
{
Print(espred_id[veces,veces2]);
}
}
}