CustomTicksReplace

Ersetzt die komplette Preishistorie eines benutzerdefinierten Symbols im angegebenen Zeitintervall durch die Daten aus einem Array vom Typ MqlTick.

int  CustomTicksReplace(
   const string     symbol,            // Symbolname
   long             from_msc,          // von welchem Tag
   long             to_msc,            // bis zu welchem Tag
   const MqlTick&   ticks[],           // Array mit den Tickdaten, die man an das benutzerdefiniertes Symbol anwenden muss
   uint             count=WHOLE_ARRAY  // Anzahl der zu verwendenden Elemente des Arrays ticks[]
   );

Parameter

symbol

[in]  Name des benutzerdefinierten Symbols.

from_msc

[in]  Zeit des ersten Ticks in der Preishistorie aus dem angegebenen Intervall, der gelöscht werden muss. Zeit in Millisekunden ab dem 01.01.1970.

to_msc

[in]  Zeit des letzten Ticks in der Preishistorie aus dem angegebenen Intervall, der gelöscht werden muss. Zeit in Millisekunden ab dem 01.01.1970.

ticks[]

[in]   Array mit den Tickdaten vom Typ MqlTick, die nach Zeit aufsteigend geordnet wurden.

count=WHOLE_ARRAY

[in]  Anzahl der zu verwendenden Elemente des Arrays ticks[], die für das Ersetzen im angegebenen Zeitintervall verwendet werden. WHOLE_ARRAY bedeutet, es werden alle Elemente des Arrays ticks[] hinzugefügt.

Rückgabewert

Anzahl der aktualisierten Balken oder -1 im Fehlerfall.

Hinweis

Da gleichzeitig mehrere Ticks im Kurs-Feed eine und dieselbe Zeit bis auf Millisekunden haben können (die genaue Zeit eines Ticks wird im Feldtime_msc der Struktur MqlTick gespeichert), sortiert die Funktion CustomTicksReplace die Elemente des Array ticks[] nicht automatisch nach Zeit. Aus diesem Grund muss das Tick-Array zuerst aufsteigend nach Zeit geordnet werden.

Die Ersetzung von Ticks erfolgt konsequent von Tag zu Tag bis dem in to_msc angegebenen Zeitpunkt oder bis zum Auftreten eines Fehlers. Zuerst wird der erste Tag aus dem angegebenen Intervall verarbeitet, dann der nächste und so weiter.  Sobald es festgestellt wird, dass die Zeit ein eines Ticks nicht der aufsteigenden (nicht absteigenden) Folge entspricht, wird der Vorgang sofort am aktuellen Tag abgebrochen. Dabei werden die Ticks der vorherigen Tage erfolgreich ersetzt, und der aktuelle Tag (im Moment des Eintreffens des falschen Ticks) sowie alle restlichen Tage im angegebenen Intervall bleiben unverändert.

Wenn im Array ticks[] Tickdaten für einen Tag fehlen (gilt auch für jedes Intervall mit beliebiger Länge), entsteht nach der Anwendung von Tick-Daten aus ticks[] eine Lücke, die den ausgelassenen Tagen entspricht. Mit anderen Worten ist der Aufruf von CustomTicksReplace mit gelöschten Ticks für ein konkretes Intervall gleich dem Löschen einen Teils der Tick-Historie, als ob CustomTicksDelete mit dem Intervall "Lücke" aufgerufen wird.

Wenn es keine Daten für den angegebenen Zeitraum in der Datenbank von Ticks gibt, fügt CustomTicksReplace der Datenbank Ticks aus dem Array ticks[] hinzu.

Die Funktion CustomTicksReplace arbeitet direkt mit der Datenbank von Ticks.

 

Siehe auch

CustomRatesDelete, CustomRatesUpdate, CustomTicksDelete, CopyTicks, CopyTicksRange