Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 112
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Kann ich den Code sehen?
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[]){
...//функция заносит в массив названия торговых инструментов, здесь ошибок нету (проверено)
}
Das erste, was ich tun würde, ist #property strict hinzuzufügen, alle Fehler/Warnungen (falls vorhanden) zu korrigieren und init() und start() durch OnInit() und OnTick() zu ersetzen.
Es gibt 5 Fehler und 83 Warnungen ))))
Ich danke Ihnen!
5 Fehler und 83 Warnungen kamen heraus ))))
Versuchen Sie, in einer "neuen" Sprache zu schreiben, und Sie werden weniger schwer zu findende Fehler finden.
start() // Специальная функция start()
{
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы
RefreshRates(); // Обновление данных
//......................Здесь указывается основной код программы
Sleep(5); // Небольшая пауза
}
return; // Управление возвращается терминалу
}
//--------------------------------------------------------------------
Ich bin im MQL4-Tutorial auf eine solche Konstruktion gestoßen:
start() // Специальная функция start()
{
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы
RefreshRates(); // Обновление данных
//......................Здесь указывается основной код программы
Sleep(5); // Небольшая пауза
}
return; // Управление возвращается терминалу
}
//--------------------------------------------------------------------
Steht es im Drehbuch oder im Experten?
im Prüfer.
Ähm ... dann hängt es davon ab, was im Hauptcode vor sich geht. Wenn das Senden einer Bestellung schlecht ist!
Ja, das Absenden der Bestellung erfolgt. Es ist mir nicht klar, ob die Kurse zwingend aktualisiert werden sollten, wenn der EA im Fenster eines Symbols gestartet wird, aber ein Auftrag für ein anderes Symbol gesendet wird. Wenn z. B. die Kurse für EURUSD nicht aktualisiert werden und gleichzeitig die neuen Kurse für GBPUSD eingehen. Und wenn mein Expert Advisor auf EURUSD ausgeführt wird und ichRefreshRates() nicht ausführe, dann wird der Expert Advisor keine Order auf GBPUSD senden, bis die Kurse auf EURUSD aktualisiert sind?
Es gibt mehrere Möglichkeiten, aktuelle Preise zu erhalten:
1. Für jedes Symbol: Wenn Sie garantierte aktuelle Preise erhalten möchten, rufen Sie SymbolInfoDouble() mit den korrekten Bezeichnern auf, bevor Sie sie verwenden.
2. Für das aktuelle Symbol können Sie auch die aktuellen Preise über die vordefinierten Variablen Bid und Ask abrufen. Diese können veraltet sein. Wenn die Funktion OnTick() lange läuft, sollten Sie sie mit RefreshRates() aktualisieren.