He intentado corregir varios errores, pero sigue apareciendo uno más... si el objetivo era facilitar la vida a los principiantes, esto se está poniendo difícil y me estoy volviendo loco...
Gran artículo! Tuve que cambiar dos cosas para que funcione.
En el archivo "TableOrders.mqh" en esta función bool CTableOrders::Add(ulong Ticket,double stop_loss,double take_profit) línea 89, la variable m_type debe ser reemplazado por:
He intentado corregir varios errores, pero sigue apareciendo uno más... si el objetivo era facilitar la vida a los principiantes, esto se está poniendo difícil y me estoy volviendo loco...
¡Ayuda por favor!
Airton este articulo es muy avanzado para principiantes, primero debes entender el concepto de desarrollo de aplicaciones Orientadas a Objetos, jerarquias, polimorfismo, herencia, metodos virtuales, es decir, necesitas saber programacion avanzada, los errores encontrados en estos ejemplos sin embargo estan relacionados con las declaraciones de clases, a las cuales en algunas de ellas les falta la palabra clave public que debes insertar a mano, tal vez la version anterior de MQL no necesitaba estas palabras clave para compilar, pero esta version requiere esta correccion.
'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
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());
}
Después de borrar el nodo en el índice 5, iteras el índice 6, pero el siguiente elemento sigue siendo el índice 5.
Es una mejor idea usar GetFirstNode / GetNextNode
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();
}
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Gracias, este es un gran artículo y un buen marco. Exactamente lo que estaba buscando.
Tengo la intención de utilizarlo con dinero real, ¿es la última versión?
Gracias
Buenas tardes.
He intentado corregir varios errores, pero sigue apareciendo uno más... si el objetivo era facilitar la vida a los principiantes, esto se está poniendo difícil y me estoy volviendo loco...
¡Ayuda por favor!
Gran artículo!
Tuve que cambiar dos cosas para que funcione.
En el archivo "TableOrders.mqh" en esta función bool CTableOrders::Add(ulong Ticket,double stop_loss,double take_profit) línea 89, la variable m_type debe ser reemplazado por:
De:
m_type=order_info.Type();
Por:
m_type=order_info.OrderType();
La segunda también en la "TablaOrdenes.mqh":
De:
class CTableOrders : CObject
To:
class CTableOrders : public CObject
Saludos,
A. HUPP
Buenas tardes.
He intentado corregir varios errores, pero sigue apareciendo uno más... si el objetivo era facilitar la vida a los principiantes, esto se está poniendo difícil y me estoy volviendo loco...
¡Ayuda por favor!
Airton este articulo es muy avanzado para principiantes, primero debes entender el concepto de desarrollo de aplicaciones Orientadas a Objetos, jerarquias, polimorfismo, herencia, metodos virtuales, es decir, necesitas saber programacion avanzada, los errores encontrados en estos ejemplos sin embargo estan relacionados con las declaraciones de clases, a las cuales en algunas de ellas les falta la palabra clave public que debes insertar a mano, tal vez la version anterior de MQL no necesitaba estas palabras clave para compilar, pero esta version requiere esta correccion.
para compilar el archivo simple_model.mq5 tuve que añadir "public
class CModel: public CObject en la línea 12
al compilar MACD_MA_model.mq5 me sigue apareciendo este error
MODE_OPEN' - enumerator identifier already defined stdlib.mqh 13 4
no puedo evitar este error que se refiere a la biblioteca subyacente.
Gracias por su artículo y por el esfuerzo de crear un marco general para las pruebas.
para compilar el archivo simple_model.mq5 tuve que añadir "public":
class CModel: public CObject en la línea 12
al compilar MACD_MA_model.mq5 me sigue apareciendo este error:
MODE_OPEN' - enumerator identifier already defined stdlib.mqh 13 4
no puedo evitar este error que se refiere a la biblioteca subyacente.
Gracias por su artículo y el esfuerzo para construir un marco general para las pruebas.
https://www.mql5.com/en/forum/244512
Intenté descompilar, me dio errores
¿Algún plan para arreglar el código?
min_risk = punto * valor_tic * symbol_info_.LotsStep();
debe utilizar el recuento de ticks en lugar del recuento de puntos.
tick_count = MathAbs(precio_abierto - stop_loss) / symbol_info_.TickSize();
porque en algunos símbolos, tick size != punto
por ejemplo:
Futuros\Materias primas agrícolas\#Coffee_H21:
No debes borrar nodos cuando iteras la lista.
Por ejemplo:
Después de borrar el nodo en el índice 5, iteras el índice 6, pero el siguiente elemento sigue siendo el índice 5.
Es una mejor idea usar GetFirstNode / GetNextNode
¡Gracias por tu contribución!