Wie kann man Indikatorressourcen freigeben? Indikator von EA aufgerufen
Ergebnis 1 bis 7 von 7

Thema: Wie kann man Indikatorressourcen freigeben? Indikator von EA aufgerufen

  1. #1
    Mit
    http://docs.mql4.com/indiors/icustomIch rufe einen Indikator an.
    Es wird langsam, aber nicht das Problem.

    Bei EA gibt es ein Häkchen und jedes Mal, wenn es es anruft und nicht mehr reagiert und einen Test nicht beenden kann (keine Optimierung)
    Ich frage mich, wie ich etwas umsetzen sollte, um die Ressourcen aus dem Indikator zu befreien?

    Mein Indikator verwendet zusätzliche Puffer für die Signalfilterung und es hat Folgendes:
    Eingefügter Code int OnInit () {//---- 4 zusätzliche Puffer werden zum Zählen verwendet. Indikatorpuffer (4 4);
    Ich vermute, dass zumindest diese 4 nicht gelöscht werden.

    Irgendeine Hilfe?

  2. #2
    Aus meiner persönlichen Erfahrung ist eine Sache, die iCustom extrem verlangsamt, ist die Weitergabe von Parametern, je mehr Eingabeparameter Ihr Indikator hat, desto langsamer wird iCustom sein, um dies zu umgehen, am besten würde ich iCustom ohne Parameter aufrufen und die Standardeinstellungen verwenden des Indikators

  3. #3
    Hallo, ich bin nicht auf einen Mechanismus gestoßen, um Ressourcen von einem Indikator freizugeben, sobald Sie included enthaltenin einem EA (oder einem anderen Indikator) über iCustom () aufgerufen haben. Ich habe auch keine Erfahrung vergleichbar mit der Erfahrung von Iwjw - aber interessant !!! Eine Reihe von Dingen könnte helfen, Ihr Problem zu lösen: 1. Prüfen Sie detailliert, was in Ihren Indikatoren und dann in Ihrem EA passiert, und prüfen Sie, wie lange die verschiedenen Teile Ihrer Berechnungen dauern: Sie können t0 = GetTickCount () ... tun SchleifeBerechnungen .... t1 = GetTickCount () und dann mit einigen zusätzlichen Informationen drucken, um die Analyse zu ermöglichen 2. Müssen Sie wirklich Ihren Indikator mit jedem Tick berechnen? Erfordert Ihre Strategie Wissen über alles, was Ihr Indikator bei jedem Tick berechnet, oder könnten Sie einfach auf die Informationen von Ihrem Indikator am Anfang eines neuen Balkens zugreifen und dann Trade-Eingabe am Anfang des neuen Balkens zulassen, wenn die Bedingungen korrekt sind. Wenn Letzteres wahr ist ... können Sie einfach den Zugriff auf Ihre Indi in einer Konstruktion wie: if (NEWBAR) {.... access icustom (indi) .... machen Sie Ihr Ding basierend auf calcs} 3. if Der Zugriff auf das INDI ist bei jedem Tick erforderlich, und wenn die Lösung von iwjw auch nicht hilft, weil Sie diese Parameter variieren müssenkönnen, können Sie möglicherweise die Logik und die Berechnungen von Ihrem Indikator auf Ihren EA übertragen. Der Hauptunterschied zwischen Indikator und EA-Code (für Ihre Frage) besteht darin, dass Sie in einem EA keinen Zugriff auf Puffer haben. Abhängig von der Struktur des Codes im Indikator und davon, wie die Informationen aus den Puffern früherer BalkenAufrufe den Wert der Puffer auf dem aktuellen Balken beeinflussen, könnten Sie eine Implementierung Ihres Indikators ohne Puffer in Betracht ziehen Bei NEWBAR können Sie dendie vorherigen Wert (e) relevanter Variablen in einem kurzen Array oder sogar einzelnen Variablen speichern, bevor Sie die Werte für Ihren aktuellen Balken berechnen. Der Nachteil ist, dass Sie selbst einige Daten manipulieren müssen (und das müssen Sie herausfinden - und unerwartete Konsequenzen in Betracht ziehen), aber die Vorteile sind enorm, denn es vermeidet den Aufruf von iCustom (Indikator) .Hoff, dass einige davon helfen. Aber: Wenn Ihr Terminal aufgrund des Aufrufs von iCustom (Indikator) einfriert, kann es sein, dass in Ihrem Indikator etwas anderes falsch ist. Es sei denn, Ihr Indikator macht eine Menge Berechnungen. Ich habe eine Vielzahl von EAs mit Zugang zu sehr komplexen zeitaufwendigen Indikatoren eingeführt. In solchen Fällen hat sich das Terminal verlangsamt, und in solchen Fällen druckt das Terminal Anweisungen in der Protokolldatei aus, die wie folgt lauten: ”Schreiben Sie Ihren Indikator neu, da die Berechnung zu lange dauert”. Der Einstieg in das Fleischdetail des Indikators löst das Problem. Cheerio, John

  4. #4
    Jemand gab mir einen Tipp, da nicht die Schuld der Indie, sondern der EA, weil ich meine bestehenden Bestellungen überprüfe und so weiter. Ich habe fast alles von EA entfernt und lasse nur einen 2 Anruf tätigen. Eingefügter Code doppelt ExtBufUpValue = iCustom (Symbol (), PERIOD_CURRENT, myIndi, My12ParForIndi, 0, 1); if (ExtBufUpValue gt; 0) {//Langes Signal: Der gesamte Code wurde zum Testen aus EA entfernt.} else {double ExtBufDownValue = iCustom (Symbol (), PERIOD_CURRENT, myIndi, My12ParForIndi 1, 1); if (ExtBufDownValue gt; 0) {//Kurzes Signal: Der gesamte Code wurde für den Test aus EA entfernt}} Dieser Teil des Codes ist EXPONENTIALLY SLOWING DOWN. Ich möchte genau das tauschen, was die Indi zeigt. Wenn ich alle Logik von Indi nach EA nehme, dann wird es nicht exponentiell langsam sein, nur langsam, so wie ich es bei MT4 verwende. BTW: das indi hat: Code, der Code eingefügt wird, den tiefsten eingefügten Code iHighest und eingefügter Code IMAOnArray, um seine Sachen zu tun. In der normalen Chartansicht sehe ich, dass es ein klares Problem mit ihm ist und es ist sehr langsam bei Zeitfenstern (Laden und Entladen) und Klischeen verschiedener Zeitrahmen hilft nicht: es wird langsamer, aber es kann nur 6-7 Mal sein .

  5. #5
    Da ist das Problem:
    https://www.tradingintuitive.com/tra...t-trading.htmlEingefügter Code iMAOnArray hat ein Leck, MT4.0 Build 840, 12 Jun2015 - das neueste bei meinem Broker

  6. #6
    1 Anhang (e)
    Metaquotes bestätigten den Fehler und antworten: 1. Sie sollten das Demo-Konto auf dem MetaQuotes-Demo-Server öffnen und sich anmelden. Konten Ein Konto eröffnen klicken Sie auf neuen Broker hinzufügen ... demo.metaquotes.net eingeben klicken Scannen Wählen Sie demo.metaquotes.net klicken Sie auf Weiter . 2. Starten Sie das Terminal neu. 3. Warten Sie, bis der beendete LiveUpdate-Datensatz auf der Registerkarte ”Journal” angezeigt wird. 4. Starten Sie das Terminal erneut. 5. Überprüfen Sie den Aufbau des Terminals.

  7. #7
    Prost ... nicht sehr nett ... überhaupt ... aber zumindest wurde es gelöst? Cheerio, John

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Die tradingintuitive Webseite verwendet Cookies
Wir nutzen Cookies, um Ihnen das Webseitenerlebnis bestmöglich anbieten zu können. Durch weitere Nutzung der Webseite erlauben Sie die Nutzung von Cookies. Für weitere Details und wie Sie ggf. diese Einstellungen verändern können, lesen Sie bitte unsere Datenschutzbestimmung. Lesen Sie mehr