Bibliotheken: Symbol - Seite 7

 
Aleksey Vyazmikin:

Natürlich befinden sich die Quelldaten im Terminal - Futures der vergangenen Jahre. Was bedeutet es, ein Tick-Archiv zu bilden? Im Allgemeinen würde ich mich mit der Variante zufrieden geben, OHLC auf M1 zu testen, sozusagen ohne zusätzliche Ticks.

Um ein benutzerdefiniertes Symbol zu bilden, brauchen Sie entweder seine Ticks oder seine Balken.

Und warum mag ich die letzten Preise nicht? Auch hier habe ich den Preis für die Balkenbildung nicht verstanden - Minutenbalken reichen aus, zu den Preisen des Originals. Im Allgemeinen brauche ich die gleiche Sache wie auf einem separaten Futures, und die Tatsache, dass es nicht mit dem realen bei allen Einstellungen übereinstimmen, so ist es klar - nach meinen Beobachtungen ist es notwendig, 5 Punkte in das Minus im Durchschnitt setzen, wenn die Prüfung auf alle Ticks.

Ich habe eine etwas andere Vorstellung davon, wie alles sein sollte. Ich verwende auch keine Balken und Indikatoren. Ich habe irgendwo im Forum davon erzählt.

Können Sie mir mit einem solchen Skript helfen?

Ich scheine hier einen falschen Ruf aufgebaut zu haben, da solche Fragen gestellt werden.

Was die benutzerdefinierten Symbole betrifft, so enthält dieser Thread 95% dessen, was Sie zur Lösung dieses Problems benötigen.

 
fxsaber:

Um ein benutzerdefiniertes Symbol zu bilden, benötigen Sie entweder seine Ticks oder seine Balken.

Ich habe eine etwas andere Vorstellung davon, wie die Dinge sein sollten. Ich verwende auch keine Balken und Indikatoren. Irgendwo darüber habe ich im Forum gesprochen.

Ich scheine hier einen falschen Ruf aufgebaut zu haben, da solche Fragen gestellt werden.

Was die benutzerdefinierten Symbole betrifft, so enthält dieser Thread 95% dessen, was zur Lösung dieses Problems erforderlich wäre.

Ich weiß Ihre Zeit zu schätzen, ich dachte nur, der Code würde es erlauben, dies ohne großen Zeitaufwand zu implementieren. Ich persönlich wüsste nicht, wie ich in ein benutzerdefiniertes Zeichen ein Dutzend andere nacheinander hineinkopieren und das Datum im Handumdrehen ändern könnte, damit sie sich nicht überschneiden.

 
Aleksey Vyazmikin:

Ich weiß nicht, wie ich Dutzende von anderen Symbolen nacheinander in ein benutzerdefiniertes Symbol kopieren und das Datum im laufenden Betrieb ändern kann, damit sie sich nicht überschneiden.

Ein benutzerdefiniertes Symbol ist nur eine der Möglichkeiten, Zitate zu speichern. Stellen Sie sich vor, Sie möchten eine CSV-Datei mit einer Verklebung erstellen. Das ist so ziemlich das Gleiche wie ein benutzerdefiniertes Symbol.

Erstellen Sie also eine "CSV-Datei", und die Umwandlung in eine benutzerdefinierte Datei ist eine Sache von ein paar Zeilen.

 
fxsaber:

Ein benutzerdefiniertes Symbol ist nur eine Art der Kursspeicherung. Stellen Sie sich vor, Sie brauchen eine CSV-Datei für eine Verklebung. Das ist fast dasselbe wie ein benutzerdefiniertes Symbol.

So erstellen Sie eine "CSV-Datei" und setzen sie in eine benutzerdefinierte ist eine Sache von ein paar Zeilen.

Vielen Dank! Toll, ich kann die Datei erstellen, aber wie fülle ich sie anschließend aus?

 
Aleksey Vyazmikin:

Ich danke Ihnen! Toll, ich kann eine Datei erstellen, aber wie lade ich sie hoch?

Erstellen Sie keine Datei, sondern MqlRates[] oder MqlTick[]. Ich gebe Ihnen einen Tipp.

 
fxsaber:

Erstellen Sie keine Datei, sondern MqlRates[] oder MqlTick[]. Und dann werde ich Ihnen einen Tipp geben.

Es ist einfacher für mich, alles in einer Datei zu entladen, da es notwendig sein wird, das Datum in irgendeiner Weise zu verschieben, und dann laden Sie alles in jede Art von Array getrennt, als MqlRates[] .

 
Die Bibliothek hat aufgrund bestimmter Ereignisse eine erweiterte Funktionalität. Beispiel für ihre Verwendung
// Beispiel für die Erstellung eines "Live"-Symbols.

#include <Symbol.mqh> // https://www.mql5.com/de/code/18855

const bool Init = EventSetMillisecondTimer(20); // Dies ist die Häufigkeit, mit der wir Ticks auslösen werden

void OnTimer()
{
  static bool FirstRun = true;

  static const SYMBOL Symb("CUSTOM_" + _Symbol); // Erstellt ein Symbol
  
  static MqlTick Ticks[];
  static int Pos = 0;
    
  if (FirstRun)
  {
    Symb.DeleteHistory();       // Kleine Dinge in der Geschichte wurden durchwühlt.
    Symb.Delete(true);          // Wir werden auch das Symbol festnageln, um das Vorhandensein eines Ticks in der Marktbeobachtung auszuschließen.
    Symb.Create(NULL, _Symbol); // Unverfälscht wiederauferstanden.
    
    if (Symb.IsExist() && Symb.On())   // Wenn alles in Ordnung ist
    {     
      ChartOpen(Symb.Name, PERIOD_M1); // Öffnete das Diagramm
      CopyTicksRange(_Symbol, Ticks, COPY_TICKS_INFO, (ulong)D'2019.02.01' * 1000); // Nimmt die Ticks für den Wurf.
    }
      
    FirstRun = false;
  }
  else if (Pos < ArraySize(Ticks))
    Symb += Ticks[Pos++]; // Ein Häkchen setzen
}


Mit einem solchen Symbol können Sie Indikatoren auch an Wochenenden debuggen, wenn die Notierungen stehen.

 
fxsaber:
Die Bibliothek hat aufgrund bestimmter Ereignisse eine erweiterte Funktionalität. Ein Beispiel für ihre Verwendung

Kompatibilität mit der alten Bibliothek ist nicht gebrochen? - Ich habe mehrere Arbeiten auf der alten Bibliothek Symbol.mqh , würde ich nicht wollen, zu finden, was nicht funktioniert.

 
Igor Makanu:

Kompatibilität mit der alten Bibliothek ist nicht gebrochen? - Ich habe mehrere Arbeiten auf der alten Bibliothek Symbol.mqh, ich möchte nicht zu finden, was nicht funktioniert später

Nicht gebrochen.

 

fxsaber:

void ReverseTick( MqlTick &Tick )
{
  Tick.bid = ReversePrice(Tick.bid);
  Tick.ask = ReversePrice(Tick.ask);
  Tick.last = ReversePrice(Tick.last);
}


Sollten Geld- und Briefkurs nicht getauscht werden?