Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
UPD: Rashid publicó un archivo de biblioteca arriba, resolvió mi problema. Es triste que la biblioteca estándar tenga un error. Ahora voy a estudiar la comparación para ver si es posible hacer algunos cambios directamente en EA sin reemplazar la biblioteca, para que todo funcione
Estas modificaciones ya están en la biblioteca estándar. Decidí responder a los que van a leer el artículo sólo ahora.
Bueno, uno agradable de hecho ..
¡Buenos días a todos!
Continúo estudiando el lenguaje de programación MQL5. He recorrido casi todo el sitio en busca de información que me sea útil. La mayor parte de la información encontrada en el sitio está destinada a personas que ya tienen conocimientos básicos de programación.
Y aquí Encontré otro GRAN artículo, que me ayudó a entender muchas cosas y a refinar mi EA. Es una lástima que el autor no continuó escribiendo esta serie de artículos y se limitó a 2012 solamente. Pero de todos modos, expreso un GRAN respeto a este hombre y le digo lo mismo ¡GRACIAS en nombre de todos los principiantes!
Con respeto, Vladimir.
Hola, Gracias por este post muy útil y por favor me ayude a resolver esto. Soy nuevo en MT5 y estoy aprendiendo a crear EAs así que copié el código de ejemplo para ejecutar Ctrade.Buy pero el backtest falló. Aquí hay más información:
1) Cuenta: Es una cuenta real con la moneda base como NZD
2) MetaEditor ajustes para backtest:
3) Código: Copiado de https://www.mql5.com/es/articles/481:
//+------------------------------------------------------------------+
//| demo.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include<Trade\Trade.mqh>
//--- object for performing trade operations
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- set MagicNumber for your orders identification
int MagicNumber=123456;
trade.SetExpertMagicNumber(MagicNumber);
//--- set available slippage in points when buying/selling
int deviation=10;
trade.SetDeviationInPoints(deviation);
//--- order execution mode
trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
trade.LogLevel(1);
//--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
trade.SetAsyncMode(true);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
BuySample1();
}
//--- Buy sample
//+------------------------------------------------------------------+
//| Buying a specified volume at the current symbol |
//+------------------------------------------------------------------+
void BuySample1()
{
//--- 1. example of buying at the current symbol
if(!trade.Buy(0.1))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
4) Registro de errores (Tenga en cuenta que estoy probando sólo en EUR / USD):
GJ 0 19:36:44.410 127.0.0.1 login (build 1730)
HH 0 19:36:44.420 Red 38520 bytes de información de cuenta cargada
JO 0 19:36:44.420 Red 1482 bytes de parámetros de comprobador cargados
QE 0 19:36:44.420 Red 188 bytes de parámetros de entrada cargados
FR 0 19:36:44.421 Red 443 bytes de lista de símbolos cargada
IF 0 19:36:44.421 Archivo experto de comprobador añadido: Experts\demo.ex5. 46684 bytes cargados
QH 0 19:36:44.433 Probador depósito inicial 10000,00 NZD, apalancamiento 1:100
JN 0 19:36:44.437 Probador inicializado con éxito
ES 0 19:36:44.437 Red 46 Kb de datos de inicialización totales recibidos
PP 0 19:36:44.437 Probador Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Símbolos EURUSD: símbolo a sincronizar
HR 0 19:36:44.800 Símbolos EURUSD: símbolo sincronizado, 3624 bytes de información de símbolo recibidos
NJ 0 19:36:44.800 Histórico EURUSD: sincronización de histórico iniciada
GO 0 19:36:44.856 Histórico EURUSD: carga 27 bytes de datos históricos para sincronizar en 0:00:00.000
RQ 0 19:36:44.856 Historia EURUSD: historia sincronizado desde 2012.01.01 a 2017.11.15
EF 0 19:36:44.993 Historial EURUSD,Diario: caché de historial asignada para 1010 compases y contiene 312 compases desde 2014.01.01 00:00 hasta 2014.12.31 00:00
ND 0 19:36:44.993 Historia EURUSD,Diario: la historia comienza a partir de 2014.01.01 00:00
OL 0 19:36:44.996 Probador EURUSD,Diario (HalifaxPlus-Live): se genera cada tick
GN 0 19:36:44.996 Tester EURUSD,Diario: pruebas de Experts\demo.ex5 de 2015.01.01 00:00 a 2017.11.15 00:00 iniciado
CK 0 19:36:56.288 Símbolos NZDUSD: símbolo a sincronizar
IS 0 19:36:56.288 Símbolos NZDUSD: símbolo sincronizado, 3624 bytes de información de símbolo recibidos
JL 0 19:36:56.288 Historial NZDUSD: sincronización de historial iniciada
HJ 0 19:36:56.575 Historial NZDUSD: carga 14 Kb de datos de historial para sincronizar en 0:00:00.078
LS 0 19:36:56.575 Historia NZDUSD: historia sincronizado desde 2013.01.01 a 2017.11.15
CO 0 19:36:56.579 Símbolos EURNZD: símbolo a sincronizar
OJ 0 19:36:56.580 Símbolos EURNZD: símbolo sincronizado, 3624 bytes de información de símbolo recibidos
DL 0 19:36:56.580 Historia EURNZD: sincronización de historia iniciada
MK 0 19:36:56.656 Historia EURNZD: carga 27 bytes de datos de historia para sincronizar en 0:00:00.000
OD 0 19:36:56.656 Historia EURNZD: historial sincronizado desde 2013.01.01 hasta 2017.11.15
IN 0 19:36:56.665 Comercio 2015.01.02 03:00:00 mercado comprar 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 Operaciones 2015.01.02 03:00:00 trato #2 comprar 0.10 EURUSD a 1.20549 hecho(basado en la orden #2)
FH 0 19:36:56.666 Comercio 2015.01.02 03:00:00 trato realizado [#2 comprar 0.10 EURUSD a 1.20549]
OG 0 19:36:56.666 Comercio 2015.01.02 03:00:00 orden realizada comprar 0.10 a 1.20549 [#2 comprar 0.10 EURUSD a 1.20549]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Buy() método ejecutado con éxito. Código de retorno=10009 (realizado a 1.20549)
NM 2 19:37:15.823 Historial NZDUSD 2016.09.21 23:01:00: historial corrupto detectado (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 Historial NZDUSD 2016.09.21, se ha encontrado un contenedor defectuoso, debe resincronizarse
LQ 2 19:37:16.106 Error 9 del historial del comprobador en una función indefinida
OH 2 19:37:16.106 El comprobador se ha detenido en el 0% del intervalo de comprobación con el error '20 NZDUSD'.
Por favor, dígame cuál es el problema y cómo puedo resolverlo.
Hola, Gracias por este post muy útil y por favor me ayude a resolver esto. Soy nuevo en MT5 y estoy aprendiendo a crear EAs así que copié el código de ejemplo para ejecutar Ctrade.Buy pero el backtest falló. Aquí hay más información:
1) Cuenta: Es una cuenta real con la moneda base como NZD
2) MetaEditor ajustes para backtest:
3) Código: Copiado de https://www.mql5.com/es/articles/481:
//+------------------------------------------------------------------+
//| demo.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include<Trade\Trade.mqh>
//--- object for performing trade operations
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- set MagicNumber for your orders identification
int MagicNumber=123456;
trade.SetExpertMagicNumber(MagicNumber);
//--- set available slippage in points when buying/selling
int deviation=10;
trade.SetDeviationInPoints(deviation);
//--- order execution mode
trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
trade.LogLevel(1);
//--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
trade.SetAsyncMode(true);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
BuySample1();
}
//--- Buy sample
//+------------------------------------------------------------------+
//| Buying a specified volume at the current symbol |
//+------------------------------------------------------------------+
void BuySample1()
{
//--- 1. example of buying at the current symbol
if(!trade.Buy(0.1))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
4) Registro de errores (Tenga en cuenta que estoy probando sólo en EUR / USD):
GJ 0 19:36:44.410 127.0.0.1 login (build 1730)
HH 0 19:36:44.420 Red 38520 bytes de información de cuenta cargada
JO 0 19:36:44.420 Red 1482 bytes de parámetros de comprobador cargados
QE 0 19:36:44.420 Red 188 bytes de parámetros de entrada cargados
FR 0 19:36:44.421 Red 443 bytes de lista de símbolos cargada
IF 0 19:36:44.421 Archivo experto de comprobador añadido: Experts\demo.ex5. 46684 bytes cargados
QH 0 19:36:44.433 Probador depósito inicial 10000,00 NZD, apalancamiento 1:100
JN 0 19:36:44.437 Probador inicializado con éxito
ES 0 19:36:44.437 Red 46 Kb de datos de inicialización totales recibidos
PP 0 19:36:44.437 Probador Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Símbolos EURUSD: símbolo a sincronizar
HR 0 19:36:44.800 Símbolos EURUSD: símbolo sincronizado, 3624 bytes de información de símbolo recibidos
NJ 0 19:36:44.800 Histórico EURUSD: sincronización de histórico iniciada
GO 0 19:36:44.856 Histórico EURUSD: carga 27 bytes de datos históricos para sincronizar en 0:00:00.000
RQ 0 19:36:44.856 Historia EURUSD: historia sincronizado desde 2012.01.01 a 2017.11.15
EF 0 19:36:44.993 Historial EURUSD,Diario: caché de historial asignada para 1010 compases y contiene 312 compases desde 2014.01.01 00:00 hasta 2014.12.31 00:00
ND 0 19:36:44.993 Historia EURUSD,Diario: la historia comienza a partir de 2014.01.01 00:00
OL 0 19:36:44.996 Probador EURUSD,Diario (HalifaxPlus-Live): se genera cada tick
GN 0 19:36:44.996 Tester EURUSD,Diario: pruebas de Experts\demo.ex5 de 2015.01.01 00:00 a 2017.11.15 00:00 iniciado
CK 0 19:36:56.288 Símbolos NZDUSD: símbolo a sincronizar
IS 0 19:36:56.288 Símbolos NZDUSD: símbolo sincronizado, 3624 bytes de información de símbolo recibidos
JL 0 19:36:56.288 Historial NZDUSD: sincronización de historial iniciada
HJ 0 19:36:56.575 Historial NZDUSD: carga 14 Kb de datos de historial para sincronizar en 0:00:00.078
LS 0 19:36:56.575 Historia NZDUSD: historia sincronizado desde 2013.01.01 a 2017.11.15
CO 0 19:36:56.579 Símbolos EURNZD: símbolo a sincronizar
OJ 0 19:36:56.580 Símbolos EURNZD: símbolo sincronizado, 3624 bytes de información de símbolo recibidos
DL 0 19:36:56.580 Historia EURNZD: sincronización de historia iniciada
MK 0 19:36:56.656 Historia EURNZD: carga 27 bytes de datos de historia para sincronizar en 0:00:00.000
OD 0 19:36:56.656 Historia EURNZD: historial sincronizado desde 2013.01.01 hasta 2017.11.15
IN 0 19:36:56.665 Comercio 2015.01.02 03:00:00 mercado comprar 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 Operaciones 2015.01.02 03:00:00 trato #2 comprar 0.10 EURUSD a 1.20549 hecho(basado en la orden #2)
FH 0 19:36:56.666 Comercio 2015.01.02 03:00:00 trato realizado [#2 comprar 0.10 EURUSD a 1.20549]
OG 0 19:36:56.666 Comercio 2015.01.02 03:00:00 orden realizada comprar 0.10 a 1.20549 [#2 comprar 0.10 EURUSD a 1.20549]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Buy() método ejecutado con éxito. Código de retorno=10009 (realizado a 1.20549)
NM 2 19:37:15.823 Historial NZDUSD 2016.09.21 23:01:00: historial corrupto detectado (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 Historial NZDUSD 2016.09.21, se ha encontrado un contenedor defectuoso, debe resincronizarse
LQ 2 19:37:16.106 Error 9 del historial del comprobador en una función indefinida
OH 2 19:37:16.106 El comprobador se ha detenido en el 0% del intervalo de comprobación con el error '20 NZDUSD'.
Por favor, dime qué está mal y cómo puedo resolver esto?
En el artículo al abrir órdenes limitadas y stop en todas partes
Me pregunto si los que escriben que el artículo les ayudó a insertar el código del artículo?