Fehler, Irrtümer, Fragen - Seite 1145

 
Renat:

Wenn Sie also Ihre Zahlen angeben, achten Sie darauf, dass Sie mit Nullzählern beginnen, z.B. 5 Minuten auf EURUSD messen und beide Programme gleichzeitig starten.

ps: die tatsache, dass sie den zähler in der inite ablesen, ist eine gute möglichkeit, sich selbst zu betrügen, wenn sie schlampig sind. beginnen sie den zähler bei null, wenn sie ein sauberes experiment machen wollen.

Hmmm... Danke. Ich habe mir den EURUSD im DC angesehen - alles ist in Ordnung. Ich zähle gleichmäßig von Null an.

Ich kann dieses Experiment jetzt nicht wiederholen (die Moskauer Börse ist geschlossen), aber es war tagsüber auf dem aktiven Markt so:

ExpCount (Si-6.14,M1) OnTick_count=697
TicksCount (Si-6.14,M1) OnCalculateCount=1326

Buchstäblich ein paar Minuten. Stimmt etwas mit dem Makler nicht?

 
Fry:

Ähm ... Ich danke Ihnen. Ich habe mir den EURUSD im DC angesehen - alles ist in Ordnung. Ich zähle von Null an, gleichmäßig.

Ich kann dieses Experiment jetzt nicht wiederholen (die Moskauer Börse ist geschlossen), aber es war tagsüber auf dem aktiven Markt so:

ExpCount (Si-6.14,M1) OnTick_count=697
TicksCount (Si-6.14,M1) OnCalculateCount=1326

Buchstäblich ein paar Minuten. Stimmt etwas mit dem Makler nicht?

Nein, das hängt nicht vom Makler ab. Das Terminal empfängt einen Strom von Ticks, der sowohl an Indikatoren als auch an Expert Advisors weitergegeben wird.

Dies bedeutet in der Regel, dass der Indikator schnell arbeitet und alle Ticks erhält. Es ist jedoch wahrscheinlich, dass der Experte seine Berechnungen verzögert und den Handler nicht verlassen kann, bevor der nächste Tick eintrifft. Sie haben einen einfachen Code als Beispiel angeführt, aber in Wirklichkeit haben Sie Ticks mit einem funktionierenden Expert Advisor berechnet, der viele Berechnungen durchgeführt hat. Zumindest war es nicht so leer wie in dem Beispiel.

Infolgedessen überspringt der Expert Advisor Ticks, die schneller eintreffen als sein Handler. Wenn Sie in diesem Fall die Zecken nicht auslassen, können Sie den Experten in der harten Vergangenheit leicht zur Arbeit bringen. Beispielsweise erhält der Expert Advisor aufgrund seiner Kosten für mehrere Sekunden/Minuten veraltete Kurse aus der Tick-Queue und liest ein völlig veraltetes Marktprofil.

 
Renat:

Nein.

Dies bedeutet in der Regel, dass der Indikator schnell arbeitet und alle Ticks erhält. Der Expert Advisor hingegen ist höchstwahrscheinlich langsam in seinen Berechnungen und hat keine Zeit, den Handler zu verlassen, bevor der nächste Tick eintrifft.

Infolgedessen überspringt der Experte die Ticks, die schneller kommen als sein Betreuer. Wenn Sie in diesem Fall keine Zecken auslassen, können Sie den Experten in der rauen Vergangenheit leicht zur Arbeit bringen. Beispielsweise erhält der Expert Advisor aufgrund seiner Kosten für mehrere Sekunden/Minuten veraltete Kurse aus der Tick-Queue und liest ein völlig veraltetes Marktprofil.

Ich danke Ihnen. Ich hab's. Das habe ich aufgrund der Warteschlange vermutet. Ich konnte einfach nicht glauben, dass diese leere Warteschlange sich so sehr verlangsamt, während fast die Hälfte des Stroms vorbeifliegt.
 
Renat:

Wir haben keinen Fehler.

Sie haben versucht, von Ihrem Browser aus eine undokumentierte URL in die Clip-Seite einzufügen, anstatt die tatsächlich dokumentierte und unterstützte Einfügungs-URL. Wir können nicht jede kleine Änderung an der YouTube-Seiten-Engine verfolgen und die freizugebende URL auf der Grundlage der Seiten-URL heraushacken.

Können Sie erklären, warum https://www.youtube.com/watch?v=XXXXXX als "dokumentiert" und https://www.youtube.com/watch?v=XXXXXX als "undokumentiert" gilt?

Dies ist die reguläre Zeile, die zu überprüfen ist: ^https?:\/\/(www\.)?youtube\.com\/watch\?v=\S+$

 
Roffild:

Können Sie erklären, warum https://www.youtube.com/watch?v=XXXXXX "dokumentiert" und https://www.youtube.com/watch?v=XXXXXX "undokumentiert" ist?

Dies ist die reguläre Zeile, die zu überprüfen ist: https?:\/\/(www\.)?youtube\.com\/watch\?v=\S+.

Wenn es um die Erkennung von Hintergrund-URLs im Nachrichtentext geht, dann geht es nicht um Regelmäßigkeit, sondern nur darum, nicht durch HTTPS-Ressourcen zu klettern und nach strukturierten Daten zu suchen.

Wenn wir über die reguläre Funktion zum Einbetten von YouTube-Clips sprechen, die sich im Editor-Panel befindet, werden immer noch HTTP-Links von YouTube für Sharer wie http://youtu.be/ZI67sr0RXzU erzeugt, selbst wenn Sie über HTTPS gehen.


Wenn ich von einer dokumentierten URL spreche, meine ich nur das, was in der speziellen "Video"-Schaltfläche eingefügt wird, wo wir nur spezielle URLs akzeptieren, die für die YouTube-Verankerung ausgegeben werden. Wenn Sie jedoch Links im Text eines Beitrags verwenden, versuchen wir, strukturierte Daten innerhalb dieser Seite zu erkennen, um eine Vorschau zu erstellen.

So sehen die strukturierten Daten für das Video aus:

        <meta property="og:site_name" content="YouTube">
    <meta property="og:url" content="https://www.youtube.com/watch?v=ZI67sr0RXzU">
    <meta property="og:title" content="MetaTrader 5 Strategy Tester 3D Visualization">
    <meta property="og:image" content="http://i1.ytimg.com/vi/ZI67sr0RXzU/maxresdefault.jpg">

      <meta property="og:description" content="MetaTrader 5 Strategy Tester 3D Visualization">

      <meta property="og:type" content="video">
          <meta property="og:video" content="https://www.youtube.com/v/ZI67sr0RXzU?version=3&amp;amp;autohide=1">
        <meta property="og:video:type" content="application/x-shockwave-flash">
        <meta property="og:video:width" content="960">
        <meta property="og:video:height" content="720">
und so wird es angezeigt:
MetaTrader 5 Strategy Tester 3D Visualization
MetaTrader 5 Strategy Tester 3D Visualization
  • www.youtube.com
MetaTrader 5 Strategy Tester 3D Visualization
 

Grüße, meine Herren Entwickler. Wie wäre es, die Möglichkeit zu schaffen, statische Konstanten direkt im Struktur-/Klassenkörper zu initialisieren, so wie es in C++ implementiert ist:

struct TStruct {   static const int a = 10; };

Dies ist in der Regel viel bequemer und übersichtlicher, als die Initialisierung außerhalb der Klasse zu entfernen, wodurch zusätzliche Codezeilen verschwendet werden.

Jetzt erzeugt der Compiler einen Fehler: '=' - unzulässige Verwendung einer Zuweisung

 
Fry:
Ich danke Ihnen. Ich hab's. Ich vermutete, dass es die Warteschlange war. Ich konnte einfach nicht glauben, wie langsam das Ding war, denn fast die Hälfte des Stroms floss vorbei.
Vielleicht sind es nicht die Bremsen, sondern der Fluss der Ticks vom Handelsserver. Wenn die Ticks vom Server "im Paket" kommen, dann wird OnTick() des Expert Advisors einmal pro "Paket" aufgerufen und nicht für jeden Tick darin.
 
meat:

Grüße, meine Herren Entwickler. Wie wäre es, die Möglichkeit zu schaffen, statische Konstanten direkt im Struktur-/Klassenkörper zu initialisieren, so wie es in C++ implementiert ist:

Dies ist in der Regel viel bequemer und übersichtlicher, als die Initialisierung außerhalb der Klasse zu entfernen, wodurch zusätzliche Codezeilen verschwendet werden.

Jetzt erzeugt der Compiler einen Fehler: '=' - unzulässige Verwendung einer Zuweisung

Zu diesem Zweck gibt es Konstrukteure, die auch für Strukturen funktionieren.
 
Renat:
Hierfür gibt es Konstruktoren, die auch für Strukturen funktionieren.

Konstruktoren sind dazu gedacht, lokale Mitglieder eines Objekts zu initialisieren. Und wir sprechen hier von statischen Klassenvariablen. Sie werden entweder außerhalb des Klassenkörpers oder im Klassenkörper an der Deklarationsstelle initialisiert (wenn sie Konstanten sind) - dies ist der zweite Fall, über den ich spreche, es funktioniert in C++, und in MQL produziert es einen Fehler.

 
meat:

Grüße, meine Herren Entwickler. Wie wäre es, wenn es möglich wäre, statische Konstanten direkt im Struktur-/Klassenkörper zu initialisieren, wie es in C++ implementiert ist:

Eigentlich nur in Plus wird die Initialisierung von statischen Mitgliedern außerhalb der Klasse vorgenommen. Nur Konstanten von ganzzahligen Typen können intern initialisiert werden.
Grund der Beschwerde: