Fehler, Irrtümer, Fragen - Seite 3174

 
Andreas Hoogendoorn # :

Ich verwende die Klassen CGraphic und CCurve und etwas Seltsames passiert. Ich lasse zwei Instanzen desselben EA auf verschiedenen Währungspaaren laufen. Wenn ich einen Chart scrolle, ist der andere Chart für einen Moment sichtbar. Es scheint, dass der Speicher zwischen den beiden Charts durcheinander gebracht wird. Ein Neustart des Terminals macht keinen Unterschied. (Das Bild ist ein animiertes Gif)


Können Sie ein minimales Beispiel posten? Und geben Sie bitte die Daten des Terminals und des Betriebssystems an, etwa so:

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Sehr störungsanfälliger MetaTrader

Vladimir Karputov, 2021.03.16 04:20

Wenn Sie eine Frage haben, sollten Sie zunächst die ersten drei Zeilen aus der Registerkarte 'Journal' anzeigen


(markieren Sie diese Zeilen, kopieren Sie sie in die Zwischenablage und fügen Sie sie über die Schaltfläche Code in die Nachricht ein). Sie sollten wie folgt aussehen:

2021.03.16 05:13:07.133 Terminal        MetaTrader 5 x64 build 3003 started for MetaQuotes Software Corp.
2021.03.16 05:13:07.134 Terminal        Windows 10 build 19042, Intel Core i7-9750 H  @ 2.60 GHz, 26 / 31 Gb memory, 842 / 947 Gb disk, IE 11, UAC, GMT+2
2021.03.16 05:13:07.134 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

 
Andreas Hoogendoorn #:

Ich verwende die Klassen CGraphic und CCurve und etwas Seltsames passiert. Ich lasse zwei Instanzen desselben EA auf verschiedenen Währungspaaren laufen. Wenn ich einen Chart scrolle, ist der andere Chart für einen Moment sichtbar. Es scheint, dass der Speicher zwischen den beiden Charts durcheinander gebracht wird. Ein Neustart des Terminals macht keinen Unterschied. (Das Bild ist ein animiertes Gif)


Ok, ich habe das Problem gelöst, obwohl es immer noch ein Bug ist!!!

Wenn man die CGraphic-Klasse verwendet, ist man verpflichtet, einen eindeutigen Namen zu verwenden, wenn man eine grafische Ressource erstellt.

Die Ressourcen sind nicht isoliert, wie es eigentlich sein sollte. Ein EA von einem Chart kann auf die Ressource eines anderen Charts zugreifen.


2022.04.17 12:44:13.049 Terminal        MetaTrader 5 x64 build 3260 started for MetaQuotes Software Corp.
2022.04.17 12:44:13.050 Terminal        Windows 10 build 19044, 4 x Intel Core i5  750 @ 2.67 GHz, 4 / 11 Gb memory, 4 / 124 Gb disk, UAC, GMT-3
2022.04.17 12:44:13.050 Terminal        C:\Users\andre\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

#include <Graphics\Graphic.mqh>
CGraphic          graphic;

graphic.Create(0, "test", 0, 0, 0, 1200, 400);

Dieses Beispiel schlägt fehl.

graphic.Create(0, (string) MathRand(), 0, 0, 0, 1200, 400);
Dieses Beispiel ist in Ordnung.
 

Ich habe bereits darüber geschrieben . Aber es ist wirklich ärgerlich.
Liebe Entwickler des Backends dieser Website, bitte beheben Sie das Problem:
Ich erhalte ständig Benachrichtigungen über neue Versionen von kostenpflichtigen Produkten, die ich nie gekauft habe, manchmal mehrmals am Tag:

Ich klicke auf diesen Link:

 
Andreas Hoogendoorn #:

Ich verwende die Klassen CGraphic und CCurve und es passiert etwas Seltsames. Ich lasse zwei Instanzen desselben EA auf verschiedenen Währungspaaren laufen. Wenn ich durch ein Diagramm blättere, wird das andere Diagramm für einen Moment sichtbar. Der Speicher scheint zwischen den beiden Diagrammen durcheinander zu geraten. Ein Neustart des Terminals ändert nichts daran. (Das Bild ist ein animiertes Gif.)


Wenn Sie ein grafisches Objekt erstellen, müssen Sie den Namen eingeben, z. B. die Diagramm-ID, auf der das Objekt gezeichnet werden soll:

   CGraphic graphic;

   graphic.Create(0,"G"+(string)ChartId(),0,30,30,780,380);


Andernfalls ist der Name der grafischen Ressource in beiden Diagrammen derselbe, und da grafische Ressourcen für das Terminal global sind, arbeiten beide Programme mit derselben Ressource (d. h. sie zeichnen auf dieselbe Leinwand).

 

Fehler : OrderCalcMargin gibt falschen Wert zurück


OrderCalcMargin() gibt manchmal einen falschen Wert der erforderlichen Marge zurück.

Zum Beispiel funktioniert es richtig auf viele wichtige Forex-Paare und auf viele andere CFDs, usw., es gibt den richtigen Wert zurück.


Aber, USDPLN oder PLATINUM, oder bei einigen anderen, gibt es absolutelly falschen Wert der erforderlichen Marge zurück.

Der angeforderte ENUM_SYMBOL_CALC_MODE für EURUSD und USDPLN ist derselbe(SYMBOL_CALC_MODE_FOREX), aber wenn die Funktion für EURUSD den korrekten Wert der erforderlichen Margin zurückgibt, ist er für USDPLN falsch.

Warum ist das so?

 

Hallo zusammen, ich hoffe, dass ich an die richtige Stelle schreibe (aber wenn nicht, schlagen Sie eine relevantere Stelle vor).

Ich spreche über das Verschwinden von Allerts in MT5 (Version 5.00 build 3260, Just2Trade).

Die Quintessenz: Wenn ich alle Zuweisungen hinzufüge (oder ändere) und den Computer neu starte, ohne das Fenster zu schließen (Start-Stop-Reboot),
verschwinden alle Änderungen in allen Zuweisungen. Und um sie zu speichern, müssen Sie daran denken, das Terminalfenster mit dem Kreuz zu schließen.

Dies ist ein ziemlich grausamer Fehler, der behoben werden muss.

 
Lazar Buga #: Warum das?

Ihr Makler hat Mist gebaut. Sprechen Sie mit ihnen.

 
Ilyas #:

Bei der Erstellung eines grafischen Objekts müssen Sie den Namen eingeben, z. B. die ID des Diagramms, auf dem es gezeichnet werden soll:


Andernfalls ist der Name der grafischen Ressource auf beiden Diagrammen derselbe, und da grafische Ressourcen für das Terminal global sind, arbeiten beide Programme mit derselben Ressource (d. h. sie zeichnen auf dieselbe Leinwand).

Der Name der grafischen Objektressource darf nicht länger als 63 Zeichen sein. Fügt man dem Namen einen Kartenbezeichner hinzu, bleibt leider nicht mehr viel Platz für einen vernünftig lesbaren Namen.

 
a18 #:

Hallo zusammen, ich hoffe, dass ich an die richtige Stelle schreibe (aber wenn nicht, schlagen Sie eine relevantere Stelle vor).

Ich spreche über das Verschwinden von Allerts in MT5 (Version 5.00 build 3260, Just2Trade).

Die Quintessenz: Wenn ich alle Zuordnungen hinzufüge (oder ändere) und den Computer neu starte, ohne das Fenster zu schließen (Start Shutdown-Reboot),
verschwinden alle Änderungen in allen Zuordnungen. Und um sie zu speichern, müssen Sie daran denken, das Terminalfenster mit dem Kreuz zu schließen.

Es ist ein ziemlich grausamer Fehler, der behoben werden muss.

Behoben, wird in der Beta-Version sein.

 
Kompilierungsfehler:
template<typename T>
struct A {
    T *t;
};
void OnStart()
{
    A<void> a; //Error: 'void' - expression of 'void' type is illegal
}