Neues MetaTrader 4 Client Terminal 387 und MetaTrader 4 Data Center Build 387 - Seite 15

 
joo:

Jeder hat ein Recht auf eine persönliche Meinung, aber niemand hat das Recht, andere zu beleidigen.

In diesem Fall ist alles vollkommen transparent: Zwei Forumsmitglieder haben sich sehr negativ zu Nens Beitrag geäußert, woraufhin eine Sperre ausgesprochen wurde, und Renat hat den Grund für die Sperre klar erläutert.

+100
 
joo:

.... Das Verbot folgte, und Renat erläuterte deutlich den Grund für das Verbot.

Ich habe Sie nur um zwei Dinge gebeten:

1) um den Besucher des Profils eines Forumsmitglieds darüber zu informieren, dass dieses Forumsmitglied gesperrt ist.

2) bei Erlass des Verbots - Angabe des Grundes (nicht nach der verständlichen Erklärung, sondern zum Zeitpunkt der Bekanntgabe des Verbots).

Das ist eine rein technische Angelegenheit, die nichts mit Moral oder Bildung oder sonst etwas zu tun hat.

Ich wage es immer noch, die korrekte Art und Weise vorzuschlagen, einen Benutzer zu sperren: ein Benutzer sollte nicht aus dem Forum verbannt werden, sondern nur, um neue Themen und Beiträge zu erstellen, damit der Verbannte wenigstens eine Frage stellen kann (privat) und die Benutzerliste nicht mit neuen Nicknames übersät wird.

Es handelt sich um eine rein technische/technologische Anfrage/Vorschlag zur Verbesserung der Forum-Engine.

 
f.t.:

Ich habe Sie nur um zwei Dinge gebeten:

1) um den Besucher des Profils eines Forumsmitglieds darüber zu informieren, dass dieses Forumsmitglied gesperrt ist.

2) bei Erlass des Verbots - Angabe des Grundes (nicht nach der verständlichen Erklärung, sondern zum Zeitpunkt der Bekanntgabe des Verbots).

Das ist eine rein technische Angelegenheit, die nichts mit Moral oder Bildung oder sonst etwas zu tun hat.

Ich werde auch wagen, die richtige Art und Weise vorschlagen, um einen Benutzer zu verbieten: ein Benutzer sollte nicht aus dem Forum verboten werden, sondern nur die Schaffung neuer Threads und Beiträge. dass verboten könnte zumindest eine Frage stellen (privat) und nicht verschmutzt die Benutzerliste der neuen Nicknames.

dies ist eine rein technische/technologische Anfrage/Vorschlag zur Verbesserung der Forum-Engine.

Ich persönlich habe nichts gegen das, was Sie gesagt haben, im Gegenteil, ich unterstütze es. Es ist nur so, dass dein Beispiel mit nen unglücklich war und ich mit einem Hinweis darauf gepostet habe.
 
ANG3110:

OK, ich werde mir den Artikel, auf den Sie sich beziehen, mal ansehen.

Über die unterbelasteten Daten... Da die Zeit verstrichen ist, kann ich die Protokolle nicht mehr zitieren. Aber es sah in etwa so aus.

Bei American Broker ATC blieb EA eingeschaltet und das Terminal war geschlossen. Am nächsten Tag wurde das Terminal geöffnet, und nach dem Öffnen und dem automatischen Einloggen gab es eine Pause, in der keine Kurse angezeigt wurden. Der Expert Advisor schickte eine zusätzliche Aufforderung zur Eröffnung einer Position, und die Historie wurde ausgetauscht, und die Position wurde gemäß den Berechnungen des Vortages in dem Bereich eröffnet, in dem sie hätte geschlossen werden sollen, aber sie wurde einfach eröffnet und verlor sofort gegen den Markt, der sich in die entgegengesetzte Richtung bewegte. Die Position wurde schließlich mit einem großen Verlust geschlossen, ich weiß nicht mehr, wie viel sie verloren hat, aber sehr viel.

Ein weiterer Fall. Ich verließ einen Expert Advisor mit einer Kanalberechnung in seinem Algorithmus, ähnlich wie bei Bollinger, der aber viele Balken benötigt, weil er einen Anpassungsalgorithmus hat. Ich habe den Zeitpunkt des Beginns des Handels nicht mitbekommen, aber ich habe ihn etwa 20 Minuten später gesehen. Es stellte sich heraus, dass Abweichungen vom angepassten Durchschnitt nicht berücksichtigt wurden und der Kanal in der Linie brach, als ob er auf dem Durchschnitt läge. Mein Expert Advisor eröffnete und schloss eine Position nach der anderen und verlor in 20 Minuten etwa 4.500 $ um 0,2-0,3 Lots. 4.500$ auf einem absolut erfolgreichen Markt. Dies könnte der Fall sein, wenn es entweder nur sehr wenige Daten gibt oder wenn bei dem oben erwähnten Muster etwas fehlt.

Jetzt schalte ich EAs nach dem Handel immer aus. Jetzt deaktiviere ich Expert Advisors immer nach dem ersten Öffnen des Terminals und warte, bis die Daten gepumpt sind, und schalte sie erst dann ein.

Aus meiner Sicht

Ein EA setzt voraus, dass Daten verfügbar sind (in der Regel alle Daten).

Denn alle Fehler werden in Fehler im Code und Fehler in den Daten unterteilt!

Das Problem wird durch die Analyse der Verfügbarkeit der Daten gelöst. Das Problem wird gelöst, indem die Verfügbarkeit der erforderlichen Daten analysiert wird

und ihre Korrektheit, bevor Sie sie verwenden!


Ein Beispiel: Vor dem Dividieren ist es elementar, zu prüfen, ob man durch Null dividieren will.

das ist in fast jeder Situation der richtige Ton, auch wenn Sie sicher sind, ... dass eine Variable ... kann nicht = 0 sein

Die Überprüfung gibt 100%ige Sicherheit, dass das Programm beim Dividieren nicht abstürzt! PRÜFEN SIE ALSO DIE DATEN!




um diese Art von Dingen zu vermeiden!

sollte der Expert Advisor genau wissen, wie viele Balken er benötigt!

einen weiteren einfachen, aber effektiven Algorithmus

Sie sollten von der aktuell arbeitenden Kerze auf dem erforderlichen Zeitrahmen oder den erforderlichen Zeitrahmen ausgehen

auf die richtige Tiefe zu laufen! s und zu sehen, ob es irgendwelche fehlenden Balken gibt - es ist nicht sehr schwierig

ich werde den Code nicht weitergeben ... es gibt hier Leute, die einen solchen Code leicht schreiben können!


Als nächstes, der Expert Advisor einfach nicht reißen oder zu schließen, bricht es!!! dass es keine FULL HISTORY!

Sie !!! berücksichtigen dies - unternehmen Sie Schritte, um die fehlenden Balken aufzufüllen!

und erst danach erlauben Sie den Handel!

--

Ihr Problem ist, dass Ihr Algorithmus keine solche Kontrolle hat!

weil es einfacher ist, als 4.500 Dollar zu verlieren ...

--

Diejenigen, die einen solchen Code nicht schreiben können, werden ihn hier für 100-200 $ schreiben.

Es kostet weniger als 4.500 Dollar!

 
YuraZ:

von der aktuellen Arbeitskerze auf dem gewünschten Zeitrahmen oder den gewünschten Zeitrahmen

laufe zur richtigen Tiefe! s und sieh nach, ob es irgendwelche fehlenden Balken gibt - es ist nicht allzu schwierig

Danke Yura für den Tipp.

Aber was soll ich tun, wenn ich das Terminal gerade geöffnet habe und der Null-Balken noch alt ist, z.B. vom Vortag. Natürlich können wir bis zu einer gewissen Tiefe davon laufen, indem wir die fehlenden Balken zählen, aber das wird ein Fehler sein. Woher weiß der EA, ob dies der letzte Takt ist oder nicht? Ich sagte bereits, dass man im Prinzip TimeLocal() und TimeCurrent() vergleichen kann, indem man die Zeitdifferenz berücksichtigt und ein kleines Delta hinzufügt, denn manchmal gibt es 3-5 Minuten lang keine Notierung, insbesondere bei CAD-Paaren, und wahrscheinlich kann dies als Fehler angesehen werden. Vielleicht reicht es aus, dies während der Eingabe und der anschließenden Korrektur der verpassten Takte zu tun, z. B. wenn die Kommunikation für mehrere Minuten unterbrochen ist, und wahrscheinlich ist es nicht notwendig, jeden Takt neu zu berechnen, da dies zu viel Zeit zum Zählen benötigen würde. Der Expert Advisor, über dessen Verluste ich geschrieben habe, benötigt bis zu 20 Tausend Balken für die statistische Erstanpassung. Bei einer solchen Zahl wäre es mühsam, für jeden Balken einen Zyklus zu fahren, und wahrscheinlich ist es auch nicht nötig. Das ist natürlich nicht der beste Weg und hängt zusätzlich von der Computeruhr ab. Vielleicht fällt Ihnen ja etwas Besseres ein? Allerdings, wie ich in letzter Zeit beobachtet habe, wenn IsConected() Funktion ausgelöst, Null-Bar erscheint in der Regel fast sofort.

 
ANG3110:

Danke, Yura, für den Tipp.

Aber was soll ich tun, wenn das Terminal gerade erst geöffnet wurde und der Nullbalken noch alt ist - sagen wir vom Vortag. Natürlich können wir bis zu einer gewissen Tiefe davon laufen, indem wir die fehlenden Balken zählen, aber das wird ein Fehler sein. Woher weiß der EA, ob dies der letzte Takt ist oder nicht? Ich sagte bereits, dass man im Prinzip TimeLocal() und TimeCurrent() vergleichen kann, indem man die Zeitdifferenz berücksichtigt und ein kleines Delta hinzufügt, denn manchmal gibt es 3-5 Minuten lang keine Notierung, insbesondere bei CAD-Paaren, und wahrscheinlich kann dies als Fehler angesehen werden. Vielleicht reicht es aus, dies während der Eingabe und der anschließenden Korrektur der verpassten Takte zu tun, z. B. wenn die Kommunikation für mehrere Minuten unterbrochen ist, und wahrscheinlich ist es nicht notwendig, bei jedem Takt eine Neuberechnung vorzunehmen, da dies zu viel Zeit in Anspruch nehmen würde. Der Expert Advisor, über dessen Verluste ich geschrieben habe, benötigt bis zu 20 Tausend Balken für die statistische Erstanpassung. Bei einer solchen Zahl wäre es mühsam, für jeden Balken einen Zyklus zu fahren, und wahrscheinlich ist es auch nicht nötig. Das ist natürlich nicht der beste Weg und hängt zusätzlich von der Computeruhr ab. Vielleicht fällt Ihnen ja etwas Besseres ein? Wie ich jedoch in letzter Zeit beobachtet habe, erscheint der Null-Balken in der Regel fast sofort, wenn die Funktion IsConected() ausgelöst wird.

Nun, mir scheint alles ganz einfach zu sein... Die Prozedur int start() wird nur bei einem neuen Tick aufgerufen, und das bedeutet zu 100%, dass die Funktion TimeCurrent() (gibt die letzte bekannte Serverzeit zurück (Zeitpunkt der letzten Kursankunft)) unabhängig von der Verfügbarkeit von Balken bereits aktuell ist...

Ich denke, danach ist alles klar...

 
Renat:

Leider haben Sie keine Ausgangsdaten, Testparameter oder Protokolle angegeben.

Darüber hinaus beziehen Sie sich auf Bibliotheken (DLL), die nicht nur viele Installationen erfordern, sondern auch nicht funktionieren, weil zusätzliche Bibliotheken fehlen (das liegt am Autor der Bibliotheken, der zusätzliche DLL-Dateien vergessen hat).

Wenden Sie sich für Informationen an den Autor dieser Bibliotheken.


Wenn Sie dem von mir zur Verfügung gestellten Link folgen würden, würden Sie sehen, dass nur ein Eingabeparameter einen Wert hat und dieser wie beschrieben eingestellt ist: StopLoss=100...1 000 step 10; x=1...1 000 000 step 1. Außerdem habe ich Ihnen gesagt, dass der vorherige Build diesen Fehler nicht erzeugt hat, also liegt der Fehler bei Ihnen. Alles funktioniert tatsächlich. Es gibt nur diese seltsame Meldung aus. Es kann also sein, dass diese Meldung nur bei mir auftritt und bei jemand anderem wegen der Folgen dieses Fehlers nicht funktioniert.
 
ANG3110:

Danke, Yura, für den Tipp.

Aber was soll ich tun, wenn das Terminal gerade erst geöffnet wurde und der Nullbalken noch alt ist - sagen wir vom Vortag. Natürlich können wir bis zu einer gewissen Tiefe davon laufen, indem wir die fehlenden Balken zählen, aber das wird ein Fehler sein. Woher weiß der EA, ob dies der letzte Takt ist oder nicht? Ich sagte bereits, dass man im Prinzip TimeLocal() und TimeCurrent() vergleichen kann, indem man die Zeitdifferenz berücksichtigt und ein kleines Delta hinzufügt, denn manchmal gibt es 3-5 Minuten lang keine Notierung, insbesondere bei CAD-Paaren, und wahrscheinlich kann dies als Fehler angesehen werden. Vielleicht reicht es aus, dies während der Eingabe und der anschließenden Korrektur der verpassten Takte zu tun, z. B. wenn die Kommunikation für mehrere Minuten unterbrochen ist, und wahrscheinlich ist es nicht notwendig, jeden Takt neu zu berechnen, da dies zu viel Zeit zum Zählen benötigen würde. Der Expert Advisor, über dessen Verluste ich geschrieben habe, benötigt bis zu 20 Tausend Balken für die statistische Erstanpassung. Bei einer solchen Zahl wäre es mühsam, für jeden Balken einen Zyklus zu fahren, und wahrscheinlich ist es auch nicht nötig. Das ist natürlich nicht der beste Weg und hängt zusätzlich von der Computeruhr ab. Vielleicht fällt Ihnen ja etwas Besseres ein? Obwohl, wie ich in letzter Zeit beobachtet habe, wenn die Funktion IsConected() ausgelöst wird, erscheint der Null-Balken in der Regel fast sofort.

Hallo!


dies kann auch logisch überprüft werden!

Zuerst holt man sich ein paar Ticks und die Zeit TimeCurrent() und wenn sie weit von den Balken entfernt ist, lädt man sie - aber man muss auch das Wochenende berücksichtigen.

am Montag müssen Sie die Startzeit bei Ihrem Broker kennen, und am Freitag die Endzeit (bei kleinen ff gibt es einen kleinen Fehler von ein paar Balken

( die Startzeit am Montag und die Endzeit am Freitag können automatisch durch die Mittelungsmethode für einen größeren Zeitraum berechnet werden )

Beispiel für Logik

// простой пример контроля истори, просто логика 
 
int ФЛАГпроверкиИСТОРИ =0; // 0-история не проверена или не загружена

void init()
{
    ФЛАГпроверкиИСТОРИ   =0; // ставим флаг
}


void start()
{
     // читаем историю на предмет пропущеных баров
    if ( ФЛАГпроверкиИСТОРИ   == 0)
    {
// проверяем а вся ли нужна история есть и если нет то она загружается
      // загружаем
       если загружена ФЛАГпроверкиИСТОРИ=1;
       return;
    }
}


 
Akkarin:

Wenn Sie dem von mir angegebenen Link folgen würden, würden Sie sehen, dass nur ein Eingabeparameter einen Wert hat und so eingestellt wurde, wie es in der Beschreibung steht: StopLoss=100..1 000 step 10; x=1..1 000 000 step 1. Außerdem habe ich gesagt, dass der vorherige Build diesen Fehler nicht erzeugt hat, also liegt der Fehler bei Ihnen. Alles funktioniert tatsächlich. Es gibt nur diese seltsame Meldung aus. Es kann also sein, dass ich nur diese Meldung erhalte, während jemand anderes wegen der Folgen dieses Fehlers überhaupt nicht arbeiten kann.


Ich habe fleißig alles aussortiert, alles gelesen, die Logik verstanden, aber stieß auf genau das, was er sagte - nicht genug Drittanbieter-dll-Bibliothek, die der Autor der Bibliothek gesetzt hat nicht ausgelegt (obwohl auch das Installationsprogramm gemacht).

Offenbar eine triviale Vergesslichkeit. Aber ich kann nicht das Internet nach irgendwelchen dll-Dateien durchforsten.

Grund der Beschwerde: