Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 142
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
Dennoch benötige ich die Variable "st" nicht nur in Alert, sondern auch für Berechnungen, und beim Kompilieren kommt die Warnung "möglicher Datenverlust durch Typkonvertierung".
Ich nehme an, das liegt daran, dass es sich um eine 10-stellige Zahl handelt, während der Höchstwert in int 2 147 483 647 beträgt, habe ich derzeit 1 380 758 400. Vielleicht ist es sinnvoll, lange zu verwenden, und wahrscheinlich der Expert Advisor wird eine Menge von Ressourcen in diesem Teil verbrauchen?
Verstehen Sie nicht das Prinzip der Typumwandlung? So einfach ist das:
Ich möchte auf Leinwand malen. Um ein Bild auf der Leinwand in OnInit, OnTimer, OnTick und in onChartEvent neu zu zeichnen. Ich deklariere CCanvas canvas in globalen Variablen und rufe canvas.methods überall auf, wo ich will. Aber der Compiler beschwert sich über nicht aufgelöste statische Variable 'CCanvas::m_default_colors' (was hat das mit Farben zu tun?)
Der Code sieht folgendermaßen aus
#include <Canvas.mqh>
CCanvas-Leinwand;
int OnInit()
{
//CCanvas canvas; wenn ich es hier deklariere, wird es gezeichnet, aber wie kann ich es dann in OnTick neu zeichnen?
canvas.CreateBitmapLabel("ProbeGraph", 0, 0, width ,heigth, COLOR_FORMAT_ARGB_RAW);
canvas.Circle(Xcentr,Ycentr,Rmin,ColorToARGB(clrBlue, 115)); canvas.Update();
}
void OnTick()
Wie kann ich mit dem Compiler verhandeln? Gibt es ein Beispiel mit Canvas in Expert?{
canvas.Circle(Xcentr,Ycentr,Rmin,ColorToARGB(clrBlue, 115)); canvas.Update();
}
Ich möchte in Expert Advisor auf der Leinwand zeichnen. Ich möchte, dass das Bild auf der Leinwand in OnInit, OnTimer, OnTick und in onChartEvent neu gezeichnet wird. Ich deklariere CCanvas canvas in globalen Variablen und rufe canvas.methods überall auf, wo ich will. Aber der Compiler beschwert sich über nicht aufgelöste globale Deklarationen
...
Wie verhandeln Sie mit dem Compiler? Gibt es ein Beispiel mit Leinwand in EA?Nun, Sie sind kein Anfänger! Veröffentlichen Sie den Code korrekt!
Nun, Sie sind kein Anfänger! Veröffentlichen Sie den Code korrekt!
Der Code ist hier zu finden. Aber es ist viel schlimmer, wenn man sich damit beschäftigt. Und es funktioniert auch nicht. Fehler nicht aufgelöste statische Variable 'CCanvas::m_default_colors' ProbeGraph.mq5 21 9
Und ein Haufen Haftbefehle wegen sich überschneidender Höhen- und Breitenvariablen. Soweit ich verstehe, will der Compiler nicht CCanvas Klasse Konstruktor in globalen Variablen aufrufen, sondern will den Konstruktor bei OnInit aufrufen. Und wie man dann auf eine Instanz der Klasse außerhalb von OnInit verweist, verstehe ich nicht.
Außerdem befand sich vorher der Körper der Draw-Funktion innerhalb von onInit, aber die Draw-Funktion selbst war es nicht. Alles funktionierte, aber innerhalb von OnInit. Ich habe bereits begonnen, hier zu verdrehen, versuchen, einen Verweis auf eine Instanz der Klasse in der Draw-Funktion übergeben, weil globale Variablen nicht funktionieren.
Im Allgemeinen wird der Code geschrieben, das Problem mit der Erstellung einer globalen Instanz der CCanvas-Klasse.
Eines verstehe ich nicht: Wenn der Compiler flucht, warum werden die Fehler nicht korrigiert? А?
Eines verstehe ich nicht: Wenn der Compiler flucht, warum werden die Fehler nicht korrigiert? А?
Der vorgeschlagene Code wurde vollständig kopiert. Der Fehler ist derselbe wie bei der nicht aufgelösten statischen Variable 'CCanvas::m_default_colors' prob1.mq5 21 9
Ich habe keine Fehler. Der Build ist der neueste.
Kopieren Sie den vorgeschlagenen Code vollständig. Der Fehler ist derselbe wie bei der nicht aufgelösten statischen Variable 'CCanvas::m_default_colors' prob1.mq5 21 9