Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 112
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Puedo ver el código?
extern string SYMBOLS ="EURUSD,GBPUSD,EURGBP,EURJPY,USDJPY";
string symbolsArray[1];
...
void init(){
StringToArray(SYMBOLS, symbolsArray);
...
}
int start(){
Comment(symbolsArray[0]+"|"+symbolsArray[1]+"|"+symbolsArray[2]+"|"+symbolsArray[3]+"|"+symbolsArray[4]);
//при запуске советника комментарий выводит правильную информацию, но через время один из элементов массива становится равным совсем другому значению
...
return(0);
}
void StringToArray (string stringOfSymbols, string &arrayOfSymbols[]){
...//функция заносит в массив названия торговых инструментов, здесь ошибок нету (проверено)
}
extern string SYMBOLS ="EURUSD,GBPUSD,EURGBP,EURJPY,USDJPY";
string symbolsArray[1];
...
void init(){
StringToArray(SYMBOLS, symbolsArray);
...
}
int start(){
Comment(symbolsArray[0]+"|"+symbolsArray[1]+"|"+symbolsArray[2]+"|"+symbolsArray[3]+"|"+symbolsArray[4]);
//при запуске советника комментарий выводит правильную информацию, но через время один из элементов массива становится равным совсем другому значению
...
return(0);
}
void StringToArray (string stringOfSymbols, string &arrayOfSymbols[]){
...//функция заносит в массив названия торговых инструментов, здесь ошибок нету (проверено)
}
Lo primero que haría es añadir #property strict, corregir los errores/advertencias (si los hay) y sustituir init() y start() por OnInit() y OnTick().
Tengo 5 errores y 83 advertencias ))))
Gracias.
5 errores y 83 advertencias salieron de ))))
Intente escribir en un idioma "nuevo" y habrá menos errores difíciles de encontrar.
start() // Специальная функция start()
{
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы
RefreshRates(); // Обновление данных
//......................Здесь указывается основной код программы
Sleep(5); // Небольшая пауза
}
return; // Управление возвращается терминалу
}
//--------------------------------------------------------------------
Me encontré con una construcción de este tipo en el tutorial de MQL4:
start() // Специальная функция start()
{
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы
RefreshRates(); // Обновление данных
//......................Здесь указывается основной код программы
Sleep(5); // Небольшая пауза
}
return; // Управление возвращается терминалу
}
//--------------------------------------------------------------------
¿Está en el guión o en el experto?
en el examinador.
Um... entonces depende de lo que ocurra en el código principal. Si el envío de un pedido es malo
Sí, el pedido se está enviando. No me queda claro si las cotizaciones deben actualizarse obligatoriamente en caso de que el EA se lance en la ventana de un símbolo pero se envíe una orden para otro símbolo. Si, por ejemplo, las cotizaciones del EURUSD no se actualizan y, al mismo tiempo, se reciben las nuevas cotizaciones del GBPUSD. ¿Y si mi Asesor Experto se ejecuta en EURUSD, y no realizoRefreshRates(), entonces el Asesor Experto no enviará una orden en GBPUSD, hasta que se actualicen las cotizaciones en EURUSD?
Hay varias formas de obtener los precios actuales:
1. Para cualquier símbolo: si quiere obtener precios actuales garantizados, llame a SymbolInfoDouble() con los identificadores correctos antes de utilizarlos.
2. Para el símbolo actual, también puede obtener los precios actuales a través de las variables predefinidas Bid y Ask. Estos pueden quedar desfasados, por lo que si la función OnTick() se ejecuta durante mucho tiempo, debería refrescarlos utilizando RefreshRates().