Geschichte ankreuzen - Seite 5

 

Auch. Wenn ich versuche, die Historie von heute an abzurufen, erhalte ich ein seltsames Ergebnis. Hier ist das Drehbuch:

         MqlTick array[];
         MqlDateTime sTime;
         TimeToStruct( TimeCurrent(), sTime );
         sTime.hour = 0;
         sTime.min = 0;
         sTime.sec = 0;
         datetime start = StructToTime( sTime );
         Print( "Начало текущего дня: ",start );
         int num = CopyTicks( _Symbol, array, COPY_TICKS_ALL, start, 1000000 );
         
         int size = ArraySize( array );
         Print( __FUNCTION__,": num = ",num,", arraySize = ",size );
         for( int i = 0; i < size; i++ )
                {
                 if( i == 0 )
                        {
                         Print( __FUNCTION__,": Время прихода первого доступного тика: ",array[ i ].time );
                        }
                 else if( i == size-1 )
                        {
                         Print( __FUNCTION__,": Время прихода последнего доступного тика: ",array[ i ].time );
                        }
                }

Hier ist das Ergebnis:

HQ 0 18:38:20.974 test_CopyTicks_1178 (EURUSD,M1) Aktueller Tagesbeginn: 2015.10.15 00:00:00

JM 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) OnStart: num = 1000000, arraySize = 1000000

CF 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) OnStart: Erster verfügbarer Tick Ankunftszeit: 2011.12.19 00:00:08

RD 0 18:38:22.204 test_CopyTicks_1178 (EURUSD,M1) OnStart: Letzte verfügbare Tick-Ankunftszeit: 2012.01.06 18:41:26

Offensichtlich kann es nicht so geschrieben werden:CopyTicks( _Symbol, array, COPY_TICKS_ALL, start, 1000000 );

 
Tapochun:

Wahrscheinlich habe ich ihn selbst geschrieben. Wie wird hier ein zuvor belegter Speicherplatz wieder frei?

Das MqlTick-Array selbst mit 20.000.000 Elementen benötigt etwa 800 MB Speicherplatz. Außerdem wird das gleiche ursprüngliche Array im Terminal gespeichert, wo die Informationen akkumuliert und ausgegeben werden.

Wenn Sie also mit großen Datenmengen arbeiten wollen, gibt es nur einen Ausweg: 64-Bit-Versionen und 8 GB Speicher. Zum Glück kostet das heutzutage lächerlich viel Geld.

 
Karputov Vladimir:
Tick-Sammler sind jetzt nicht mehr nötig - der Tick-Verlauf ist im Terminal verfügbar.

Hängt die Verfügbarkeit vom Wohlwollen des DC ab oder ist das Speichern von Ticks auf der Serverseite fest verdrahtet?

 
Renat Fatkhullin:

Das MqlTick-Array selbst mit 20 000 000 Elementen benötigt etwa 800 MB Speicherplatz. Hinzu kommt die Speicherung desselben Ausgangsfeldes im Terminal, wo die Informationen akkumuliert und ausgegeben werden.

Wenn Sie also mit großen Datenmengen arbeiten wollen, gibt es nur einen Ausweg: 64-Bit-Versionen und 8 GB Speicher. Zum Glück kostet das heutzutage lächerlich viel Geld.

Was ist, wenn Sie es in kleinen Chargen anfordern? Sagen wir 1 Million Zecken pro Stück? Das sollte doch kein Problem sein, oder? Ich meine, Abfrage - Bearbeitung - nächste Abfrage.

Oder werden sich Daten ansammeln und der Arbeitsspeicher wird leer sein?

 
Alexey Volchanskiy:

Hängt die Verfügbarkeit von der Kulanz der Maklerunternehmen ab oder ist die Speicherung der Zeckenhistorie fest mit dem Server verbunden?

Die MT5-Server haben von Anfang an die Tick-Historie gesammelt und gespeichert.

Sie kann in Client-Terminals nicht deaktiviert werden.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Zeckengeschichte

Tapochun, 2015.10.15 15:08

Ja, es wäre gut, CopyTicks() Überladungen hinzuzufügen, genau wie andere Copy... Funktionen. Um von Datum zu Datum zu gelangen. So kann man zum Beispiel nicht die Ticks vom Beginn des aktuellen Tages bis zum aktuellen Zeitpunkt abrufen.
Kann sie umgesetzt werden?
 
Tapochun:
Kann dies umgesetzt werden?
Können wir es schaffen?
 
Renat Fatkhullin:
Können Sie
Vielen Dank, sehr hilfreich. Es ist im Moment etwas schwierig, die Zecken zu "navigieren".
 

Die Zecken werden Monat für Monat in Dateien gestapelt, richtig? Hier ist ein Bildschirmfoto:

Dateien ankreuzen

Und wie liest man diese Dateien? Oder nur durch einen Strategietester?

 
Karputov Vladimir:

Die Zecken werden Monat für Monat in Dateien gestapelt, richtig? Hier ist ein Bildschirmfoto:

Und wie liest man diese Dateien? Oder nur durch einen Strategietester?

Ich konnte sie nicht mit dem Notizblock lesen.