Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 112
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je peux voir le code ?
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[]){
...//функция заносит в массив названия торговых инструментов, здесь ошибок нету (проверено)
}
La première chose que je ferais est d'ajouter #property strict, de corriger les erreurs/alertes (le cas échéant) et de remplacer init() et start() par OnInit() et OnTick().
J'ai obtenu 5 erreurs et 83 avertissements ))))
Merci !
5 erreurs et 83 avertissements sont sortis ))))
Essayez d'écrire dans une "nouvelle" langue et il y aura moins de fautes difficiles à trouver.
start() // Специальная функция start()
{
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы
RefreshRates(); // Обновление данных
//......................Здесь указывается основной код программы
Sleep(5); // Небольшая пауза
}
return; // Управление возвращается терминалу
}
//--------------------------------------------------------------------
Je suis tombé sur une telle construction dans le tutoriel MQL4 :
start() // Специальная функция start()
{
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы
RefreshRates(); // Обновление данных
//......................Здесь указывается основной код программы
Sleep(5); // Небольшая пауза
}
return; // Управление возвращается терминалу
}
//--------------------------------------------------------------------
C'est dans le scénario ou dans l'expert ?
dans l'examinateur.
Hum... alors cela dépend de ce qui se passe dans le code principal. Si envoyer une commande est mauvais !
Oui, la commande est en cours d'envoi. Il n'est pas clair pour moi si les cotations doivent être mises à jour de manière forcée dans le cas où l'EA est lancé dans la fenêtre d'un symbole mais envoie un ordre pour un autre symbole. Si, par exemple, les cours de l'EURUSD ne sont pas mis à jour et qu'au même moment, les nouveaux cours du GBPUSD sont reçus. Et si mon conseiller expert est exécuté sur EURUSD, et que je n'exécute pasRefreshRates(), alors le conseiller expert n'enverra pas d'ordre sur GBPUSD, jusqu'à ce que les cotations sur EURUSD soient mises à jour ?
Il existe plusieurs façons d'obtenir les prix actuels :
1. Pour n'importe quel symbole : si vous voulez obtenir les prix courants garantis, appelez SymbolInfoDouble() avec les identifiants corrects avant de les utiliser.
2. Pour le symbole actuel, vous pouvez également obtenir les prix actuels grâce aux variables prédéfinies Bid et Ask. Ils peuvent devenir obsolètes, donc si la fonction OnTick() s'exécute pendant une longue période, vous devez les rafraîchir en utilisant RefreshRates().