Wünsche für MQL5 - Seite 90

 

Jetzt können Sie keinen Filter auf Positionen nur für ein bestimmtes Symbol setzen. Das heißt, Sie müssen alle Aufträge durchgehen.

Dies verlangsamt den EA, und wenn es viele Charts gibt, auf denen der EA arbeitet, kann er langsamer werden und die CPU belasten.

Например такой код

for( Ord = 0; Ord < OrdersTotal(); Ord++) {
   OrderSelect( Ord, SELECT_BY_POS);
   if(Symbol() == OrderSymbol() && StringFind(OrderComment(), "MA-Price") != -1) {
      IsOrdFound = true;
      break;
   }
}
А хотелось бы фунцию для установки фильтра по символу

OrderSelectSymbol(Symbol());

for( Ord = 0; Ord < OrdersTotal(); Ord++) {
   OrderSelect( Ord, SELECT_BY_POS);
   if(StringFind(OrderComment(), "My comment") != -1) {
      IsOrdFound = true;
      break;
   }
}



Или если теперь будет объектный язык, то что то типа такого варианта:

OpenedOrdGroup ordGroup = new OpenedOrdGroup(Symbol());

for( ord = 0; ord < ordGroup. count; ord++) {
  if( findSubstr( ordGroup. orders[ ord]. comment, "My comment") != -1) {
     isOrdFound = true;
     break;
  }
}
 
stringo писал(а) >>

Es ist jedoch erwähnenswert, dass benutzerdefinierte Indikatoren rein rechnerische Aufgaben erfüllen können und keinen Zugriff auf Fenster oder grafische Objekte haben.

Und... ist es möglich, einen solchen "rechnerischen" Indikator außerhalb aller Fenster zu betreiben? (z.B. um IsExpertEnabled und ähnliches zu überwachen und zu sagen, für wen es bestimmt ist).

Kann es zeichnen? Kann es eine Schleife bilden?

Kann es EAs, Skripte aufrufen/entladen, Standard- und benutzerdefinierte Indikatoren setzen/entfernen?

 
SK. писал(а) >>

Und... kann ein solcher "rechnerischer" Indikator außerhalb aller Fenster ausgeführt werden? (z. B. zur Überwachung von IsExpertEnabled und dergleichen und zur Meldung an alle, die es benötigen)

Kann es zeichnen? Kann es eine Schleife bilden?

Kann es EAs, Skripte, Standard- und benutzerdefinierte Indikatoren aufrufen/aufheben und setzen/entfernen?

Zu all diesen Fragen - leider nein.

Ich muss ein separates Chart-Fenster haben und daran einen "berechnenden" Expert Advisor anhängen. Der Expert Advisor kann mit einem Timer arbeiten, so dass er nicht in eine Schleife eingebunden werden muss.

 

Danke, das klärt einiges auf.

Gibt es eine Möglichkeit, etwas zu starten, das nicht an ein Fenster gebunden ist? (für den allgemeinen Bedarf).

Und gibt es eine Möglichkeit, aus diesem "Etwas" etwas anderes zu rufen? (z. B. ein Timer-Experte)

 
SK. писал(а) >>

Danke, das klärt einiges auf.

Gibt es eine Möglichkeit, etwas zu starten, das nicht an ein Fenster gebunden ist? (für den allgemeinen Bedarf).

Und gibt es eine Möglichkeit, aus diesem "Etwas" etwas anderes zu rufen? (z. B. ein Timer-Experte).

Es wird nichts geben, was nicht an ein Fenster gebunden ist.

Diese Frage kann noch nicht beantwortet werden.

Sie können ein benutzerdefiniertes Ereignis an ein beliebiges Diagramm senden. Der an diesem Diagramm hängende Expert Advisor kann eingehende Ereignisse verarbeiten

 
stringo писал(а) >>

Nichts, was nicht mit dem Fenster verbunden ist, wird passieren.

Diese Frage kann noch nicht beantwortet werden.

Sie können ein benutzerdefiniertes Ereignis an ein beliebiges Diagramm senden. Anhand dieses Diagramms kann der Expert Advisor eingehende Ereignisse verarbeiten

Vielen Dank für die Antwort.

Aber wir brauchen einen Expert Advisor für diesen Chart. Diese EAs werden nicht immer synchronisiert sein (ohne spezielle Funktionen - nie).

In meinem Fall handelt es sich um ein benutzerdefiniertes (Anwendungs-)Dienstprogramm. Zu den Aufgaben gehören beispielsweise die technische Analyse, die Candlestick-Analyse und benutzerdefinierte Positionsverarbeitungsalgorithmen. Wenn Sie z. B. die Taste (im Systemmenü) drücken, wird auf dem aktuellen Bildschirm die Candlestick-Analyse angezeigt. Drücken Sie eine andere Taste - es öffnet sich ein Fenster, in dem Sie SL- und TP-Einstellungen für das aktuelle Fenster vornehmen können. Drücken Sie die dritte Taste - die Stops werden für alle Positionen (wo sie nicht verfügbar sind, gut vor der Nachricht) entsprechend den Präferenzen und den aktuellen Brokereinstellungen geöffnet. Eine weitere Schaltfläche - der Korridor für den Mindestabstand wurde eingezeichnet... Und so weiter. Und alles hängt mit den verfügbaren Mitteln zusammen, mit der Erfolgswahrscheinlichkeit der Transaktion je nach den verschiedenen Finanzinstrumenten, mit ihren Präferenzen, Prioritäten, integralen Analysen usw.

Diese Aufgabe als Ganzes erfordert nicht viele Kopien eines Expert Advisors in allen Fenstern. Ein solches Programm könnte lauten: "Einer für alle, wir zahlen den Preis". Das könnte sein. Im Moment kenne ich die Möglichkeiten von MT5 einfach nicht.

 
Die Interaktion mit der MySql-Datenbank herstellen
 
stringo писал(а) >>

Nichts, was nicht mit dem Fenster verbunden ist, wird passieren.

Diese Frage kann noch nicht beantwortet werden.

Sie können ein benutzerdefiniertes Ereignis an ein beliebiges Diagramm senden. Der an diesem Diagramm hängende Expert Advisor kann eingehende Ereignisse verarbeiten

1. Schade eigentlich. // Über das ungebundene Prog.

Als einigermaßen (imha) billiger Kompromiss in Bezug auf die Implementierung: vielleicht sollte man eine Art "Null"-Graphen erstellen,

an denen man Taschenrechner aufhängen kann? Und vorzugsweise eine unbegrenzte Anzahl solcher Diagramme, da ich an dieser Stelle die Vererbung von MT vermute.

weil ich hier die Vererbung der MT4-Beschränkung "ein Diagramm - ein Expert Advisor" vermute... :)

2. Über Veranstaltungen. Benutzerdefinierte Ereignisse - das ist großartig. Ich danke Ihnen sehr dafür. :)

Ich war froh, Tetris mit OnTimer-Ereignis und im Allgemeinen das Auftreten von ereignisgesteuerten Organisation des Starts zu sehen

Funktionen. Und hier möchte ich langsamer und ausführlicher werden :)

Welche anderen geplanten "Standard"-Ereignisse (Plattform-Ereignisse) sollen an die Anwendungen der Benutzer gesendet werden?

Ich würde zum Beispiel gerne etwas wie OnPositionIsClosed(int ticket) haben - um nicht alle Stapel von

offene Aufträge auf der Suche nach Aufträgen, die gerade durch einen Stopp geschlossen wurden. Ich denke, dass auch in 4

neben dem Standard Init()-Deinit()-Start() ist es sehr einfach, OrderStopped() hinzuzufügen - auf jeden Fall verfolgt das Terminal

Das Terminal überwacht weiterhin den Abschluss von Aufträgen und zeigt Änderungen der Situation in seinen Fenstern an. Warum können die Anwenderprogramme nicht

sie informieren? Und Sie würden eine Menge Dankbarkeit von den Nutzern erhalten... - Das garantiere ich. :)

Idealerweise wäre es großartig, (in MT5) einen plattformweiten Event-Manager zu haben, mit der Möglichkeit für

um Nachrichten über ein Ereignis zu abonnieren, und auch

und auch um allgemeine Ereignisse auszulösen, die per Broadcast an alle abonnierten Anwendungen gesendet werden.

 

Liebe Entwickler!

Wir müssen nur eine Option für einen Auftrag hinzufügen, wenn wir MODE_HISTORY anzeigen - wie der Auftrag z.B. abgeschlossen wird:

- StopLoss;

-Gewinnmitnahme;

- Nach Markt usw.

Einige Banken, die die MQ4-Plattform nutzen, schließen alle Aufträge und eröffnen neue, wenn sie über 0 gehen (dies ist an sich nichts Neues).

Aber in diesem Fall muss sich der Expert Advisor sehr anstrengen, um im Programm herauszufinden, wie eine Order geschlossen wurde, und das Wichtigste ist eine Menge unnötiger Code.

Je mehr Code, desto weniger zuverlässig ist er!

.

P.S. Möglicherweise wurde dies bereits diskutiert, aber ich habe es nicht gesehen und beschlossen, meine Bedenken mitzuteilen.

 
VBAG писал(а) >>

Einige Banken, die die MQ4-Plattform nutzen, schließen alle Aufträge und eröffnen neue, wenn sie durch 0 gehen (dies ist an sich nichts Neues).

Aber in diesem Fall muss sich der Expert Advisor sehr anstrengen, um herauszufinden, wie der Auftrag im Programm geschlossen wurde, und vor allem erscheint eine Menge unnötiger Code.

Und, was noch wichtiger ist, es gibt eine Menge unnötigen Code.

Und was noch schlimmer ist, es gibt keine eindeutige STATE-Methode zur Identifizierung von Aufträgen in dieser Situation. In diesem Fall weist die Maklerfirma zum Beispiel ohne nachzudenken neue Tickets zu, die in keiner Weise mit den ursprünglichen verbunden sind.

mit anfänglichen, nur nach einer Liste :) Wir müssen sehr viel Aufwand betreiben, um den Verlauf jeder Bestellung zu verfolgen.

Aber im MT5 scheint die Arbeit mit Aufträgen radikal verändert zu sein (siehe MetaTrader 5 Client Terminal),

und wie genau - scheint entweder ein schreckliches Geheimnis oder eine große Überraschung zu sein, nach der man nicht so recht fragen darf - es ist einfacher, auf das neue Terminal zu warten, als verständliche Antworten zu bekommen

von den Entwicklern. :) In diesem Thema geht es jedoch um Vorschläge, und ich hoffe, dass die Entwickler das Problem an der Wurzel packen und nicht nur einen formalen Weg zur Umsetzung des Handels suchen.

Ich stimme mit ihnen in jeder Hinsicht überein - sie brauchen einen guten Service für Programmierer, die mit offenen Stellen arbeiten - pausiert.