Wie man Objekte, die von XY gezeichnet werden, reibungslos ändern kann (MT4 vs MT5) - Seite 10

 
Vitaliy Kuznetsov:

Danke, eine gute Vorlage, sie wird sich als nützlich erweisen. Sehr viel und interessant, von Ihren Arbeiten zu lernen.

Dmitry, ich halte Sie nach wie vor für einen Programmierer, der seine Fähigkeiten unter Beweis stellen kann.

Und wenn es Vorschläge Code, konstruktive Gedanken, mit Freude (und nicht nur ich) würde Ihre Erfahrung zu übernehmen.

P.S. Es ist besser, den Code einmal zu sehen, als ihn 100 Mal zu hören.

Ja, aufgereiht, in einer Reihe stehend, auf Armeslänge gehalten... Code für was?

 
Nikolai Semko:

Ich bezweifle, dass das in der Freiberuflichkeit möglich ist. Diejenigen, die es können, sind bis über beide Ohren mit Arbeit überlastet, und diejenigen, die frei sind, sind wahrscheinlich nicht so gut in Kanvas wie Sie.

Deshalb mag ich keine Objekte, denn sie haben ein Eigenleben in ihren Abläufen, über das man keine Kontrolle hat. Bei Kanvas hingegen liegt alles in Ihrer Hand. Deshalb muss ich zusätzlichen Code für den Tester mit Canvas schreiben, um nicht zu verlangsamen, wenn die Berechnung von Frames bei jedem Tick mehr als 30 Mal pro Sekunde.
Auch die Arbeit mit TFs und Geschichte Laden ist sehr unvernünftig und ineffizient in MT5. Nur M1 wird geladen, und zwar in ungepackter Form, während andere nur aus M1 berechnet werden. Wenn Sie also MN1 zum ersten Mal aktivieren, werden 100 Takte mehr als 10 Sekunden zum Laden benötigen. Ich musste die Bar Load selbst schreiben und M1 in gepackte Form umwandeln und alle berechneten TFs im Speicher haben. Alle meine TFs zusammen mit dem M1 benötigen nur einen Bruchteil des Platzes im RAM als nur der reguläre M1 im MT5.

Ist das eine Buße oder ein Vergnügen?

 
Алексей Тарабанов:

Ist es Umkehr oder Entrückung?

Sehen Sie, es ist genau umgekehrt. Sie erstellen ein Programm - eine Welt, die nach Ihren Gesetzen lebt. Sie machen etwas objektorientiert: Sie bringen etwas wie eine Amöbe oder eine Kühlbox hervor, die von sich aus lebt.

 
Алексей Тарабанов:

Ist das Umkehr oder Entrückung?

Das ist ein Unsinn, der auf einem unzureichenden Ego beruht. Und sehr weit entfernt von der Realität der Arbeit im MT5.

 
Nikolai Semko:

Fixieren Sie zunächst Ihren Indikator mit Objekten nach dem Algorithmus, den ich Ihnen gegeben habe.

Nikolay, wenn es nicht schwierig ist, was denken Sie über die Tatsache, dass sich der feste Indikator im Laufe der Zeit im Tester verschiebt? Wenn Sie versuchen, die Skala mit der Maus zu ändern, ist sie fixiert.

Das Gleiche gilt für Kanvas. Entweder wird die Karte nicht verschoben oder sie wird (nach einiger Zeit) falsch verschoben, bis Sie den Maßstab der Karte manuell ändern. Die Berechnungen und Warnungen selbst sind korrekt, aber die Grafiken...

Es muss doch eine Lösung geben, die ich nicht sehen kann. Oder stimmt vielleicht etwas mit dem Prüfgerät nicht?

 
Vitaliy Kuznetsov:

Nikolai, wenn es Ihnen nichts ausmacht, was denken Sie über den korrigierten Indikator, der sich im Laufe der Zeit im Testgerät verschiebt? Wenn Sie versuchen, den Maßstab mit der Maus zu ändern, wird er korrigiert.

Das Gleiche gilt für Leinwände. Entweder wird die Karte nicht verschoben oder sie wird (nach einiger Zeit) falsch verschoben, bis Sie den Maßstab der Karte manuell ändern. Die Berechnungen und Warnungen selbst sind korrekt, aber die Grafiken...

Es muss doch eine Lösung geben, die ich nicht sehen kann. Oder gibt es vielleicht einen Fehler im Tester?

Ich füge eine Zeile in OnChartEvent hinzu

if (id == CHARTEVENT_CHART_CHANGE ) Draw (); 
Überwachung eines Chartwechsel-Ereignisses (ein neuer Balken ist auch ein Chartwechsel-Ereignis)
  • Ich füge zu OnCalculate für den Testmodus eine Zeile für das Neuzeichnen hinzu, wenn z.B. ein neuer Balken kommt, da OnChartEvent im Tester nicht funktioniert:
     if(rate_total != prev_calculated ) if (Canvas.tester) {ChartChanged (); Draw ();}
  • Wenn es in MT4 nicht funktioniert, bedeutet das, dass mit dem Ereignis CHARTEVENT_CHART_CHANGE etwas nicht stimmt. Ich kann es jetzt nicht überprüfen, es gibt noch keine Angebote.



     
    Nikolai Semko:

    Danke für den Hinweis. Ich bin noch nicht dazu gekommen, aber ich werde es heute versuchen.