Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es ist gar nicht so schwer, das hier nachzubessern.
https://www.mql5.com/ru/code/470
Danke! :-)
Es ist das Richtige, das zu tun.
Wenn man es noch einmal macht, beginnt man zu verstehen.
An den Indikatoren gibt es nichts auszusetzen. Es ist möglich, die Anzahl und die Indikatoren auf dem Diagramm zu sehen, einen Indikator hinzuzufügen oder einen Indikator aus dem Diagramm zu löschen.
Für Expert Advisors und Skripte ist dies jedoch nicht implementiert, sondern nur für das Beenden der Arbeit des Expert Advisors durch Aufruf von ExpertRemove() aus dem EA selbst.
Es sieht so aus, als gäbe es wirklich nur fnctional auf Indizes (obwohl ich es nicht bis zum Ende überprüft habe).
Ich habe in MQL4 nachgesehen, es gibt dort eine Funktion.
string WindowExpertName() Возвращает имя выполняющегося эксперта, скрипта, пользовательского индикатора или библиотеки, в зависимости от того, из какой MQL4-программы вызвана данная функция.
Ich schlug den Entwicklern vor, die notwendigen Funktionen zu den Diagramminformationen hinzuzufügen, und zwar so, dass es möglich wäre, die ifna aus jedem Diagramm abzurufen.Da nur ein EA in einem Diagramm arbeiten kann, ist diese Information wahrscheinlich nicht für die Bestimmung von Indikatoren erstellt worden.
Aber es ist durchaus möglich, Informationen aus anderen Karten zu erhalten, wenn jemand sie braucht.
Da nur ein EA in einem Diagramm arbeiten kann, wurde diese Information wahrscheinlich nicht nur zur Bestimmung von Indikatoren erstellt.
Aber es ist durchaus möglich, Informationen aus anderen Karten zu erhalten, wenn jemand sie braucht.
Ich habe herausgefunden, dass der Indikator seinen Kurznamen von sich selbst erhalten kann, aber sein Handle nicht, und das ist wahrscheinlich auf etwas zurückzuführen.
Wenn Sie daher alle Diagramme und Indikatorfenster im Indikator durchlaufen, gelangen Sie zu "selbst" und bleiben stecken, wenn Sie keine Abhilfe finden.
Natürlich kann man das in einem Skript oder in einem Expert Advisor machen, aber ich musste es in einem Indikator machen.
Aber das ist nicht die Hauptsache, es ist mir nur wieder eingefallen:
- es wäre gut, einen speziellen leeren "Chart" im Terminal ohne Symbol und Periode und andere Umgebung zu haben, auf den aber auch ein Indikator/Skript/Experte geworfen werden kann.
Eine Art Platine für verschiedene Tafeln und andere Steuerungen/Steuerungen für andere konventionelle Karten und Programme.
Aber das ist nicht der Hauptpunkt, nur ein weiterer Gedanke:
- Es wäre gut, einen speziellen leeren "Chart" im Terminal zu haben, ohne Symbol und Punkt und andere Umgebung, aber auf den ein Indikator/Skript/Experte auch geworfen werden kann.
Eine Art Platine für die verschiedenen Tafeln und sonstigen Bedienelemente/Steuerungen anderer herkömmlicher Karten und Programme.
Möge Allah dich erhören, Renat.
Ich denke, diese (keineswegs neue) Idee sollte aktiv gefördert werden, und zwar in einem viel breiteren Kontext:
Leider bin ich mir darüber im Klaren, dass dies im MT5 (mit 99,9%iger Sicherheit) nicht umgesetzt wird. Die Architektur des Terminals in seiner Grundstruktur lässt keine einfachen Upgrades oder gar Erweiterungen in diesem Bereich zu. Aber die Entwicklung des Systems wird nicht mit MT5 enden, und bis zum MT6 gefunden werden (und vielleicht ist der Prozess bereits im Gange), müssen wir die Entwickler architektonisch genau dieses Schema zu implementieren, anstatt die üblichen stromlinienförmigen erben ("ein Chart - ein Expert Advisor", "jede Registerkarte des Hauptfensters = Chart", etc.)
Es gibt private Schwierigkeiten bei der Umsetzung einer solchen Architektur, aber sie sind nicht grundlegend und unüberwindbar. Aber die Benutzerfreundlichkeit wird um Größenordnungen besser sein. Letztendlich erhalten die Bauherren auch einen gewissen Komfort - so können beispielsweise bestimmte Fenstertypen schrittweise und allmählich eingeführt werden, ohne dass es zu großen Belastungen auf architektonischer Ebene kommt.
Amen.
Möge Allah dich erhören, Renat.
Ich glaube, dass diese (keineswegs neue) Idee aktiv gefördert werden sollte, und zwar in einem viel breiteren Kontext:
Leider bin ich mir darüber im Klaren, dass dies im MT5 (mit 99,9%iger Sicherheit) nicht umgesetzt wird. Die Architektur des Terminals in seiner Grundstruktur lässt keine einfachen Upgrades oder gar Erweiterungen in diesem Bereich zu. Aber die Entwicklung des Systems wird nicht mit MT5 enden, und bis zum MT6 gefunden werden (und vielleicht ist der Prozess bereits im Gange), müssen wir die Entwickler architektonisch genau dieses Schema zu implementieren, anstatt die üblichen stromlinienförmigen erben ("ein Chart - ein Expert Advisor", "jede Registerkarte des Hauptfensters = Chart", etc.)
Es gibt private Schwierigkeiten bei der Umsetzung einer solchen Architektur, aber sie sind nicht grundlegend und unüberwindbar. Aber die Benutzerfreundlichkeit wird um Größenordnungen besser sein. Letztendlich erhalten die Bauherren auch einen gewissen Komfort - so können beispielsweise bestimmte Fenstertypen schrittweise und allmählich eingeführt werden, ohne dass es zu großen Belastungen auf architektonischer Ebene kommt.
Amen.
Was ist daran so traurig?
Man erstellt eine falsche Tabelle und voilà, aus Bächen werden elegante Shorts oder Longs :) Sorry für das Wortspiel.
Was ist daran so traurig?
Es wird eine gefälschte Tabelle erstellt und voilà, die Brooks verwandeln sich in elegante Shorts oder Longs :) sorry für das Wortspiel.
Was ist mit dem Code falsch? Warum erscheint immer wieder die Fehlermeldung"failed cancel order #0 buy 0.00 at market [Invalid request]"?
MqlTradeRequest order_remove_mql_trade_request = {0};
order_remove_mql_trade_request.action = TRADE_ACTION_REMOVE;
i = OrdersTotal();
if(i > 0){
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
for(i2 = 0;i2 <= i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
for(i2 = 0;i2 <= i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}