Ich habe versucht, mehrere Fehler zu korrigieren, aber ein weiterer taucht immer wieder auf... wenn es das Ziel war, Anfängern das Leben zu erleichtern, wird es so schwierig und ich verliere hier den Verstand...
Toller Artikel! Ich musste zwei Dinge ändern, damit es funktioniert.
In der Datei "TableOrders.mqh" in der Funktion bool CTableOrders::Add(ulong Ticket,double stop_loss,double take_profit) Zeile 89, sollte die Variable m_type durch ersetzt werden:
Ich habe versucht, mehrere Fehler zu korrigieren, aber ein weiterer taucht immer wieder auf... wenn es das Ziel war, Anfängern das Leben zu erleichtern, wird es so schwierig und ich verliere hier den Verstand...
Bitte um Hilfe!
Airton dieser Artikel ist für Anfänger sehr fortgeschritten, Sie müssen zunächst das Konzept der objektorientierten Anwendungsentwicklung, Hierarchien, Polymorphismus, Vererbung, virtuelle Methoden verstehen, d.h. Sie müssen fortgeschrittene Programmierkenntnisse haben, die Fehler, die in diesen Beispielen gefunden wurden, beziehen sich jedoch auf die Klassendeklarationen, bei denen in einigen von ihnen das Schlüsselwort public fehlt, das Sie von Hand einfügen müssen, vielleicht brauchte die vorherige Version von MQL diese Schlüsselwörter nicht, um zu kompilieren, aber diese Version erfordert diese Korrektur.
Ich habe versucht, den Code zu entkompilieren, und erhielt Fehler.
'MACD_MA model.mq5' MACD_MA model.mq5 11'Trade.mqh' Trade.mqh 11'Object.mqh' Object.mqh 11'StdLibErr.mqh' StdLibErr.mqh 11'SymbolInfo.mqh' SymbolInfo.mqh 11'OrderInfo.mqh' OrderInfo.mqh 11'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 11'PositionInfo.mqh' PositionInfo.mqh 11'DealInfo.mqh' DealInfo.mqh 11'AccountInfo.mqh' AccountInfo.mqh 11'model_macd.mqh' model_macd.mqh 11'Model.mqh' Model.mqh 11'List.mqh' List.mqh 11'TableOrders.mqh' TableOrders.mqh 11'Time.mqh' Time.mqh 11'mm.mqh' mm.mqh 11'stdlib.mqh' stdlib.mqh 11'model_ma.mqh' model_ma.mqh 11'model_bollinger.mqh' model_bollinger.mqh 11returnvalue of 'OrderSelect' should be checked TableOrders.mqh 1204implicitenum conversion TableOrders.mqh 5044'new_message' - conversion is not accessible because of inheritance access Time.mqh 18521
possible use of uninitialized variable 'lot_limit' mm.mqh 12910't' - conversion is not accessible because of inheritance access Model.mqh 25227
declaration of 'trade' hides global variable Model.mqh 28216
see previous declaration of 'trade' MACD_MA model.mq5 188
declaration of 'i' hides local variable Model.mqh 31015
see previous declaration of 'i' Model.mqh 30712
possible loss of data due to type conversion Model.mqh 42847
possible loss of data due to type conversion model_macd.mqh 8611
possible loss of data due to type conversion model_macd.mqh 9014
possible loss of data due to type conversion model_macd.mqh 9114
possible loss of data due to type conversion model_macd.mqh 9216
expression not boolean model_macd.mqh 22811
expression not boolean model_macd.mqh 25411
possible loss of data due to type conversion model_ma.mqh 8511
possible loss of data due to type conversion model_ma.mqh 898
possible loss of data due to type conversion model_ma.mqh 9019
expression not boolean model_ma.mqh 21911
expression not boolean model_ma.mqh 24211
declaration of 'k_ATR' hides global variable model_bollinger.mqh 97110
see previous declaration of 'k_ATR' MACD_MA model.mq5 2516
possible loss of data due to type conversion model_bollinger.mqh 9922
possible loss of data due to type conversion model_bollinger.mqh 10422
possible loss of data due to type conversion model_bollinger.mqh 10722
variable 'rezult' not used model_bollinger.mqh 1709
variable 'rezult' not used model_bollinger.mqh 1959
expression not boolean model_bollinger.mqh 23811
expression not boolean model_bollinger.mqh 263112 errors, 25 warnings 326
Sie sollten keine Knoten löschen, wenn Sie die Liste iterieren.
zum Beispiel:
class Test : public CObject {
public:
int i_;
Test(int i) {
i_ = i;
};
int get_i() {
return i_;
};
};
CList *list = new CList();
for (int i = 0; i < 10; i++) {
Test *t = new Test(i);
list.Add(t);
}
for (int i = 0; i < list.Total(); i++) {
Test *t = list.GetNodeAtIndex(i);
if (i == 5) {
list.DeleteCurrent();
}
if (CheckPointer(t) == POINTER_INVALID) {
continue;
}
Print(t.get_i());
}
Nachdem Sie den Knoten bei Index 5 gelöscht haben, iterieren Sie Index 6, aber das nächste Element ist immer noch Index 5.
Es ist eine bessere Idee, GetFirstNode / GetNextNode zu verwenden.
for (Test *t = list.GetFirstNode(); t != NULL;) {
t_current = t;
if (t.get_i() == 5) {
list.DeleteCurrent();
t = list.GetCurrentNode();
if (t == t_current) {break;}
continue;
}
Print(t.get_i());
t = list.GetNextNode();
}
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Vielen Dank, das ist ein toller Artikel und ein guter Rahmen. Genau das, wonach ich gesucht habe.
Ich plane, es mit echtem Geld zu verwenden, ist es die neueste Version?
Danke
Guten Tag!
Ich habe versucht, mehrere Fehler zu korrigieren, aber ein weiterer taucht immer wieder auf... wenn es das Ziel war, Anfängern das Leben zu erleichtern, wird es so schwierig und ich verliere hier den Verstand...
Bitte um Hilfe!
Toller Artikel!
Ich musste zwei Dinge ändern, damit es funktioniert.
In der Datei "TableOrders.mqh" in der Funktion bool CTableOrders::Add(ulong Ticket,double stop_loss,double take_profit) Zeile 89, sollte die Variable m_type durch ersetzt werden:
From:
m_type=order_info.Type();
To:
m_type=order_info.OrderType();
Die zweite auch in der "TableOrders.mqh":
From:
class CTableOrders : CObject
To:
class CTableOrders : public CObject
Regards,
A. HUPP
Guten Tag!
Ich habe versucht, mehrere Fehler zu korrigieren, aber ein weiterer taucht immer wieder auf... wenn es das Ziel war, Anfängern das Leben zu erleichtern, wird es so schwierig und ich verliere hier den Verstand...
Bitte um Hilfe!
Airton dieser Artikel ist für Anfänger sehr fortgeschritten, Sie müssen zunächst das Konzept der objektorientierten Anwendungsentwicklung, Hierarchien, Polymorphismus, Vererbung, virtuelle Methoden verstehen, d.h. Sie müssen fortgeschrittene Programmierkenntnisse haben, die Fehler, die in diesen Beispielen gefunden wurden, beziehen sich jedoch auf die Klassendeklarationen, bei denen in einigen von ihnen das Schlüsselwort public fehlt, das Sie von Hand einfügen müssen, vielleicht brauchte die vorherige Version von MQL diese Schlüsselwörter nicht, um zu kompilieren, aber diese Version erfordert diese Korrektur.
um die Datei simple_model.mq5 zu kompilieren, musste ich "public" hinzufügen:
class CModel: public CObject in Zeile 12
Beim Kompilieren von MACD_MA_model.mq5 erhalte ich ständig diesen Fehler:
'MODE_OPEN' - enumerator identifier already defined stdlib.mqh 13 4
Ich kann diesen Fehler, der sich auf die zugrunde liegende Bibliothek bezieht, nicht umgehen.
Vielen Dank für Ihren Artikel und die Bemühungen, einen allgemeinen Rahmen für das Testen zu schaffen.
Um die Datei simple_model.mq5 zu kompilieren, musste ich "public" hinzufügen:
class CModel: public CObject in Zeile 12
beim Kompilieren von MACD_MA_model.mq5 erhalte ich immer wieder diesen Fehler:
'MODE_OPEN' - enumerator identifier already defined stdlib.mqh 13 4
Ich kann diesen Fehler, der sich auf die zugrunde liegende Bibliothek bezieht, nicht umgehen.
Vielen Dank für Ihren Artikel und die Bemühungen, einen allgemeinen Rahmen für das Testen zu schaffen.
https://www.mql5.com/en/forum/244512
Ich habe versucht, den Code zu entkompilieren, und erhielt Fehler.
Gibt es Pläne, den Code zu korrigieren?
min_risk = Punkt * tick_value * symbol_info_.LotsStep();
Sie sollten die Tickanzahl anstelle der Punktanzahl verwenden.
tick_count = MathAbs(open_price - stop_loss) / symbol_info_.TickSize();
denn bei einigen Symbolen ist Tick Size != Point
zum Beispiel:
Futures\Agricultural Commodities\#Coffee_H21:
Sie sollten keine Knoten löschen, wenn Sie die Liste iterieren.
zum Beispiel:
Nachdem Sie den Knoten bei Index 5 gelöscht haben, iterieren Sie Index 6, aber das nächste Element ist immer noch Index 5.
Es ist eine bessere Idee, GetFirstNode / GetNextNode zu verwenden.
Vielen Dank für Ihren Beitrag!