[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 323

 
Diubakin:
Also... WIE FUNKTIONIERT DAS? wenn es kein Geheimnis ist...
Es gibt einen Weg, aber sagen Sie es nicht weiter. Dies ist ein schreckliches Geheimnis.
Führen Sie eine Google-Suche auf der Website - Handel auf Nicht-Standard-TF site:mql4.com und Varianten wie "Berater auf equi (Stand-alone) Chart, etc.".
Oder warte, bis Junko es nicht mehr aushält und es dir persönlich erklären wird :))
 
Diubakin:
Also... WIE IST ES ZU MACHEN?

Das ist kein Geheimnis. Es wird viel darüber geschrieben. Dabei spielt es keine Rolle, welches Werkzeug zur Erstellung der Geschichte verwendet wurde. Es geht darum, den Chart so zu aktualisieren, dass der Expert Advisor darauf funktioniert.

Dies kann mit Hilfe der WinAPI geschehen. Es wurde hier schon oft beschrieben. Ich habe eine Bibliothek geschrieben. Ich habe es hier veröffentlicht.

Es enthält Funktionen zur Steuerung der autonomen Aktualisierung des Diagramms. Es ist kein Skript oder Experte erforderlich. Aber sie ist nicht für jeden geeignet. Es gibt auch Funktionen, die allen zur Verfügung stehen, um den Chart von einem Expert Advisor, einem Skript oder einem Indikator aus zu aktualisieren. Es ist schwieriger, sie zu verwenden. Denn Sie müssen sich überlegen, welche Ihrer Programme die Tabelle aktualisieren sollen. Die Beispiele sind im Testskript enthalten.

 

Liebe Programmierer.

Können Sie mir sagen, wie ich die Werte der gleitenden Durchschnittswerte konfigurieren kann, die auf dem aktuellen Balken angezeigt werden?

Ich meine nicht den Wert des gleitenden Durchschnitts selbst, sondern die Werte seiner Niveaus (Abweichungen von ihm nach oben und unten, die auf der Registerkarte "Niveaus" des Menüs "МА" eingestellt werden).

Diese Werte folgen den MA-Stufen und ändern sich von selbst.

Die Abbildung ist eine der möglichen Varianten.

Vielen Dank im Voraus.



 
Diubakin:


Das mit dem Geheimnis habe ich schon verstanden). Ich habe die Artikel gelesen, das Forum durchforstet und die Suche durchsucht. Ich kann die Beschreibung der Verwendung von Nicht-Standard-Charts im Strategy Tester nicht finden, aber ich habe auch kein Beispiel gefunden , was ich tun muss, damit der Expert Advisor in Echtzeit auf einem solchen Chart arbeiten kann.

WinAPI ist für mich ein dunkler Wald. Gibt es eine Möglichkeit, etwas in mql4 innerhalb des Builders oder seines Expert Advisors zu tun, oder den Builder und den Expert Advisor zu kombinieren?

Ich habe keine Ahnung, wie ich ihn in Zukunft als Expert Advisor verwenden kann.

Wenn ich von Geheimnis sprach, meinte ich das große Geheimnis der Suche. Sie liegt darin, dass Sie das Material, das Ihnen gezeigt wird, LESEN müssen. Ich habe Angst, Ihnen die Links zu geben, also gebe ich Ihnen nur den Text, wie er ist.

nickbilac 03.09.2007.

...Damit ein Expert Advisor auf einem autonomen Diagramm arbeiten kann, müssen Sie etwas hinzufügen:

zu Beginn des Starts:

int MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message"); //eingehendes Tick für EAs

nach der ersten PostMessageA

PostMessageA(hwnd,MT4InternalMsg,2,1); //inkommender Tick für EAs

und in WinUser32.mqh in den Funktionsbeschreibungen von user32.dll:

int RegisterWindowMessageA(string lpString);

(diese Lösung wurde von Slava im englischen Forum vorgeschlagen)

 
Aus der Korrespondenz mit dem Broker - "Die Charts werden verwendet, um einen Eindruck vom Markt zu vermitteln. Er kann ..... nicht für die Aktualisierungen verantwortlich machen, da diese bei allen Brokern, die die MT4-Plattform verwenden, standardmäßig eingestellt sind. Um welche MT4-Funktion handelt es sich? In welchen Fällen kann der aktuell im Chart und in der Marktübersicht angezeigte Kurs nicht gleichzeitig Markt und ausführbar sein? Bitte helfen Sie mir, das Wesentliche dieser Aussage zu verstehen. Ich stelle die Links zur OrderSend-Funktion voran und zitiere den Code von MTS, der für die Eröffnung eines Handels verwendet wird:

RefreshRates();

ticket=OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble(Bid,Digits),0,NormalizeDouble(Ask+15*Point,Digits),0, "test",8,0, red);

Ich wäre sehr dankbar für Kommentare von Entwicklern.
 

granit77:
Когда я говорил о тайне, то имел в виду великую тайну поиска. Она заключается в том. что надо ПРОЧИТАТЬ материалы, на которые он покажет. Ссылки уже боюсь давать, привожу готовый текст.

nickbilac 03.09.2007

... damit die Experten nach einem eigenständigen Zeitplan arbeiten können, müssen Sie hinzufügen:

zu Beginn des Starts:

int MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message"); //eingehendes Tick für EAs

nach der ersten PostMessageA

PostMessageA(hwnd,MT4InternalMsg,2,1); //inkommender Tick für EAs

Und in WinUser32.mqh in den Funktionsbeschreibungen user32.dll hinzufügen:

int RegisterWindowMessageA(string lpString);

In meiner Bibliothek gibt es eine Funktion anstelle dieses Codes.
 
Würde RefreshRates();; vor einem Tick helfen, die Requotes auch nur ein wenig zu reduzieren?
 
Shniperson:
Wird RefreshRates(); vor dem Ticket helfen, die Requotes etwas zu reduzieren?


Das hängt von der jeweiligen Situation ab. Wenn Sie zwei Aufträge hintereinander haben, ist es sinnvoll, RefreshRates() aufzurufen, bevor Sie den zweiten Auftrag setzen. Sehen Sie, Sie senden einen Auftrag an den Server, um einen Auftrag zu eröffnen. Es wird eine gewisse Zeit vergehen, bis der Server reagiert. Während dieser Zeit können sich die Kurse ändern. Sobald der Server geantwortet hat, müssen wir RefreshRates() aufrufen, wodurch die Daten im Terminal aktualisiert werden. Jetzt können wir einen Auftrag zur Eröffnung des nächsten Auftrags erteilen. Wenn wir einfach auf ein Signal prüfen und sofort einen Auftrag erteilen, gibt es keinen Grund, RefreshRates() aufzurufen. Der Grund dafür ist, dass die Startfunktion beim Eintreffen eines neuen Ticks aufgerufen wird und wir die Zeit vernachlässigen können, bis der EA nach dem Signal sucht.

Was hat das Ticket damit zu tun? Das Ticket ist die Bestellnummer auf dem Server...

 
Nun, ich meinte ticket=OrderSend(......)
 
Shniperson:
Nun, ich meinte ticket=OrderSend(......)

Und was haben sie dir gesagt? ...