Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 355

 
entitie:

Ein sehr wertvoller und informativer Antwortkommentar, ich schlage vor, Sie nutzen ihn auch...

In der Tat gibt es keinen einfachen Befehl, der den Standard-Trailing-Stop nach Eröffnung eines Auftrags überlagert, oder?

Dies ist kein einfacher Befehl, es gibt eine Menge kostenloser Trailing-Stop-Lösungen im Client-Terminal, legen Sie den EA in einem separaten Fenster des Terminals und es wird automatisch Trail alle Aufträge.

https://www.mql5.com/ru/search#!keyword=%D1%82%D1%80%D0%B5%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3

https://www.mql5.com/ru/search#!keyword=%D1%82%D1%80%D0%B5%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3&module=mql5_module_codebase

 
Kino:

Es gibt keinen einfachen Befehl, es gibt eine Menge fertiger Trailing-Lösungen in der Kotbase, setzen Sie einen EA in ein separates Terminal-Fenster, um alle Aufträge zu verfolgen und Sie werden automatisch Trailing bekommen.

https://www.mql5.com/ru/search#!keyword=%D1%82%D1%80%D0%B5%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3

https://www.mql5.com/ru/search#!keyword=%D1%82%D1%80%D0%B5%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3&module=mql5_module_codebase

Danke für die Antwort, jetzt weiß ich es wenigstens, denn es ist sinnlos, die Dokumentation zu durchsuchen. Die Suchmaschinen verweisen nur auf Expert Advisors.
 
alph:
Können Sie mir sagen, ob dies eine realistische Testerfigur ist? Und ist das ein gutes oder schlechtes Ergebnis für ein Jahr mit einer Einlage von 3.000 Dollar?


Nicht wirklich. Der Drawdown ist zu groß und es gibt eine Menge davon :)
 
720105831:
Könnten Sie mir sagen, liebe Kolleginnen und Kollegen, ob es möglich ist, mehr als ein Signal auf einem Konto zu unterzeichnen?
Und warum? Besser individuell, ein Portfolio erstellen. Ein Beispiel: Sie haben 5.000 Dollar und verteilen 1.000 auf jedes Konto. Diese beträgt 20 % Ihrer Kaution für jeden Anbieter. Denken Sie daran, wie praktisch das ist :)
Und abonnieren Sie mein Signal :))
 
alexey frolov:
Können Sie mir sagen, Genossinnen und Genossen, ob es möglich ist, mehr als ein Signal auf einem Konto zu unterzeichnen?
Nein, nur 1 Signal pro Konto. Sie können es umgehen, indem Sie Kopierer verwenden.
 

Hallo. Ich schreibe einen Indikator, der einen eingebauten RSI-Indikator verwendet, ich bin auf dieses Problem gestoßen...

Wenn ich den Zeitrahmen ändere, wird das Feld verlassen. Ich habe herausgefunden, dass das Problem auftritt, weil beim Wechsel des Zeitrahmens ein Fehler in der Funktion CopyBuffer auftritt, der die Elemente des Indikator-Handles nicht kopiert. Hier ist ein Teil des Codes, der sich in der benutzerdefinierten Funktion befindet:

int h_rsi = iRSI(symbol, period_trade, period, PRICE_CLOSE);  //возвращаем хэндл индикатора RSI
   if(CopyBuffer(h_rsi, 0, 0, bars, m_rsi)<bars)                 //заполняем массив с данными индикатора RSI
     {
      Print("Не удалось скопировать буфер индикатора!");
     }
   for(int i=0;i<=bars;i++) //цикл по барам
     {
      double rsi = m_rsi[i];
.....

In der ersten Zeile der Schleife tritt ein Fehler auf: Array overrun. Bei der Ausführung der Funktion CopyBuffer (nach der Änderung des Zeitrahmens) tritt ein Fehler auf; der Code lautet 4806. Ich habe überprüft, ob die Daten in der Historie vorhanden sind, ich habe die Zeitverzögerung (Sleep()) eingestellt, nachdem ich den Zeitrahmen geändert und den Indikator-Handle erhalten habe, das Ergebnis ist das gleiche. Interessant ist, dass im Moment des Auftretens des Fehlers, wenn ich zum Compiler gehe und die Datei neu kompiliere, der Indikator funktioniert (bis zum nächsten Zeitrahmenwechsel).

 
ALEKSANDR TELEGUZ:

Hallo. Ich schreibe einen Indikator, der den eingebauten RSI-Indikator verwendet, ich bin auf dieses Problem gestoßen...

Wenn ich den Zeitrahmen ändere, wird das Feld verlassen. Ich habe herausgefunden, dass das Problem auftritt, weil beim Wechsel des Zeitrahmens ein Fehler in der Funktion CopyBuffer auftritt, der die Elemente des Indikator-Handles nicht kopiert. Hier ist ein Teil des Codes, der sich in der benutzerdefinierten Funktion befindet:

In der ersten Zeile der Schleife tritt ein Fehler auf: Array overrun. Bei der Ausführung der Funktion CopyBuffer (nach der Änderung des Zeitrahmens) tritt ein Fehler auf; der Code lautet 4806. Ich habe überprüft, ob die Daten in der Historie vorhanden sind, ich habe die Zeitverzögerung (Sleep()) eingestellt, nachdem ich den Zeitrahmen geändert und den Indikator-Handle erhalten habe, das Ergebnis ist das gleiche. Interessant ist, dass im Moment des Auftretens des Fehlers, wenn ich zum Compiler gehe und die Datei neu kompiliere, der Indikator funktioniert (bis zum nächsten Zeitrahmenwechsel).

Und wie erhalten Sie den Wert der Variablen "bars", "symbol" und "period_trade"?
 
Karputov Vladimir:
Wie erhalten Sie den Wert der Variablen "bars", "symbol" und "period_trade"?
input int Analyze_Bars= 300; //сколько баров в истории анализировать

ENUM_TIMEFRAMES Period_Trade; //Период графика
string Trade_Symbol;          //Символ

int OnInit()
  {
   Trade_Symbol=Symbol();
   Period_Trade=Period();

Ich verstehe, dass es schwierig ist, mit Codeschnipseln zu helfen. Ich bereite einen Artikel über den Aufbau von Widerstands- und Unterstützungsniveaus vor. Ich habe eine vorläufige Vereinbarung mit dem Administratorvon Rashid Umarov getroffen, er sagte, es wäre besser, den Code in mql5 zu schreiben (ich programmiere in mql4 und der Indikator wurde ursprünglich in dieser Sprache geschrieben). Interessant ist, dass der Indikator bei der ersten Ausführung hier gut funktioniert:

Das Ergebnis des Indikators

Aber wenn ich den Zeitrahmen ändere, tritt ein Fehler auf. Ich möchte dem Artikel keinen unfertigen Indikator anhängen, aber das Wichtigste ist sein Funktionsprinzip.

Ich kann Ihnen den gesamten Code schicken, wenn Sie möchten. Ich wäre Ihnen dankbar, wenn Sie mir helfen und mir den Fehler mitteilen könnten.

 
ALEKSANDR TELEGUZ:

Ich verstehe, dass es schwierig ist, mit Codeschnipseln zu helfen. Ich bereite einen Artikel über den Aufbau von Widerstands- und Unterstützungsniveaus vor. Ich habe eine vorläufige Vereinbarung mit dem Administratorvon Rashid Umarov getroffen, er sagte, es wäre besser, den Code in mql5 zu schreiben (ich programmiere in mql4 und der Indikator wurde ursprünglich in dieser Sprache geschrieben). Interessanterweise geht hier alles gut, wenn ich den Indikator zum ersten Mal ausführe:

Aber wenn ich den Zeitrahmen ändere, tritt ein Fehler auf. Ich möchte dem Artikel keinen unfertigen Indikator anhängen, aber das Wichtigste ist sein Funktionsprinzip.

Ich kann Ihnen den gesamten Code schicken, wenn Sie möchten. Ich wäre Ihnen dankbar, wenn Sie mir helfen und den Fehler aufzeigen könnten.

Schicken Sie es mir zu.
 
Karputov Vladimir:
Wie erhalten Sie den Wert der Variablen "bars", "symbol" und "period_trade"?
Ich erhalte den Indikator-Handle von der benutzerdefinierten Funktion aus einem Grund, ich schrieb eine Multicurrency EA basiert auf es in mql4 und es geht durch die Symbole in der OnTick() Funktion. Ich denke, es wird für die Leser bequemer sein, wenn sie auch EAs für den Handel mit verschiedenen Währungen auf der Grundlage des Indikators erstellen. Ich habe versucht, ein Handle in der OnInit()-Funktion zu erhalten, aber das führte zu demselben Fehler.
Grund der Beschwerde: