Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
ATUALIZAÇÃO: Rashid postou um arquivo de biblioteca acima, que resolveu meu problema. É triste que a biblioteca padrão tenha um erro. Agora vou estudar a comparação para ver se é possível fazer algumas alterações diretamente no EA sem substituir a biblioteca, para que tudo funcione
Essas edições já estão na biblioteca padrão. Decidi responder àqueles que lerão o artigo somente agora.
Bom, de fato, um bom negócio.
Bom dia a todos!
Continuo estudando a linguagem de programação MQL5. Pesquisei quase todo o site em busca de informações úteis para mim. A maioria das informações encontradas no site é destinada a pessoas que já têm um conhecimento básico de programação.
E aqui! Encontrei outro ótimo artigo, que me ajudou a entender e refinar meu Expert Advisor! É uma pena que o autor não tenha continuado a escrever essa série de artigos e tenha se limitado apenas a 2012. Mas, mesmo assim, expresso grande respeito a esse homem e digo a ele o mesmo GRANDE OBRIGADO em nome de todos os iniciantes!
Com todo o respeito, Vladimir.
Olá, obrigado por essa postagem muito útil e, por favor, ajude-me a resolver esse problema. Sou novo no MT5 e estou aprendendo a criar EAs, então copiei o código de exemplo para executar o Ctrade.Buy, mas o backtest falhou. Aqui estão mais informações:
1) Conta: É uma conta real com a moeda base como NZD
2) Configurações do MetaEditor para o backtest:
3) Código: Copiado de https://www.mql5.com/pt/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 erros (observe que estou testando apenas em EUR/USD):
GJ 0 19:36:44.410 127.0.0.1 login (build 1730)
HH 0 19:36:44.420 Rede 38520 bytes de informações da conta carregadas
JO 0 19:36:44.420 Rede 1482 bytes de parâmetros do testador carregados
QE 0 19:36:44.420 Rede 188 bytes de parâmetros de entrada carregados
FR 0 19:36:44.421 Rede 443 bytes de lista de símbolos carregados
IF 0 19:36:44.421 Arquivo de especialista do testador adicionado: Experts\demo.ex5. 46684 bytes carregados
QH 0 19:36:44.433 Depósito inicial do testador 10000.00 NZD, alavancagem 1:100
JN 0 19:36:44.437 Testador inicializado com sucesso
ES 0 19:36:44.437 Rede 46 Kb de dados totais de inicialização recebidos
PP 0 19:36:44.437 Testador Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Símbolos EURUSD: símbolo a ser sincronizado
HR 0 19:36:44.800 Símbolos EURUSD: símbolo sincronizado, 3624 bytes de informações de símbolo recebidas
NJ 0 19:36:44.800 Histórico EURUSD: sincronização do histórico iniciada
GO 0 19:36:44.856 Histórico EURUSD: carregar 27 bytes de dados do histórico para sincronizar em 0:00:00.000
RQ 0 19:36:44.856 Histórico EURUSD: histórico sincronizado de 2012.01.01 a 2017.11.15
EF 0 19:36:44.993 Histórico EURUSD,Daily: cache do histórico alocado para 1010 barras e contém 312 barras de 2014.01.01 00:00 a 2014.12.31 00:00
ND 0 19:36:44.993 Histórico EURUSD,Diário: histórico começa a partir de 2014.01.01 00:00
OL 0 19:36:44.996 Testador EURUSD,Daily (HalifaxPlus-Live): geração de cada tick
GN 0 19:36:44.996 Testador EURUSD,Daily: teste de Experts\demo.ex5 de 2015.01.01 00:00 a 2017.11.15 00:00 iniciado
CK 0 19:36:56.288 Symbols NZDUSD: símbolo a ser sincronizado
IS 0 19:36:56.288 Símbolos NZDUSD: símbolo sincronizado, 3624 bytes de informação de símbolo recebidos
JL 0 19:36:56.288 Histórico NZDUSD: sincronização do histórico iniciada
HJ 0 19:36:56.575 Histórico NZDUSD: carregar 14 Kb de dados do histórico para sincronizar em 0:00:00.078
LS 0 19:36:56.575 Histórico NZDUSD: histórico sincronizado de 2013.01.01 a 2017.11.15
CO 0 19:36:56.579 Símbolos EURNZD: símbolo a ser sincronizado
OJ 0 19:36:56.580 Símbolos EURNZD: símbolo sincronizado, 3624 bytes de informação de símbolo recebidos
DL 0 19:36:56.580 Histórico EURNZD: sincronização do histórico iniciada
MK 0 19:36:56.656 Histórico EURNZD: carregar 27 bytes de dados do histórico para sincronizar em 0:00:00.000
OD 0 19:36:56.656 Histórico EURNZD: histórico sincronizado de 2013.01.01 a 2017.11.15
IN 0 19:36:56.665 Trade 2015.01.02 03:00:00 market buy 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 Trades 2015.01.02 03:00:00 deal #2 buy 0.10 EURUSD at 1.20549 done(based on order #2)
FH 0 19:36:56.666 Negociação 2015.01.02 03:00:00 negócio realizado [#2 comprar 0.10 EURUSD a 1.20549]
OG 0 19:36:56.666 Trade 2015.01.02 03:00:00 ordem executada comprar 0.10 em 1.20549 [#2 comprar 0.10 EURUSD em 1.20549]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Buy() method executed successfully. Código de retorno=10009 (realizado em 1.20549)
NM 2 19:37:15.823 Histórico NZDUSD 2016.09.21 23:01:00: histórico corrompido detectado (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 Histórico NZDUSD 2016.09.21, contêiner ruim encontrado, deve ser ressincronizado
LQ 2 19:37:16.106 Erro 9 no histórico do testador em uma função indefinida
OH 2 19:37:16.106 O testador parou em 0% do intervalo de teste com o erro '20 NZDUSD'
Por favor, diga-me o que está errado e como posso resolver isso?
Olá, obrigado por essa postagem muito útil e, por favor, ajude-me a resolver esse problema. Sou novo no MT5 e estou aprendendo a criar EAs, então copiei o código de exemplo para executar o Ctrade.Buy, mas o backtest falhou. Aqui estão mais informações:
1) Conta: É uma conta real com a moeda base como NZD
2) Configurações do MetaEditor para o backtest:
3) Código: Copiado de https://www.mql5.com/pt/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 erros (observe que estou testando apenas em EUR/USD):
GJ 0 19:36:44.410 127.0.0.1 login (build 1730)
HH 0 19:36:44.420 Rede 38520 bytes de informações da conta carregadas
JO 0 19:36:44.420 Rede 1482 bytes de parâmetros do testador carregados
QE 0 19:36:44.420 Rede 188 bytes de parâmetros de entrada carregados
FR 0 19:36:44.421 Rede 443 bytes de lista de símbolos carregados
IF 0 19:36:44.421 Arquivo de especialista do testador adicionado: Experts\demo.ex5. 46684 bytes carregados
QH 0 19:36:44.433 Depósito inicial do testador 10000.00 NZD, alavancagem 1:100
JN 0 19:36:44.437 Testador inicializado com sucesso
ES 0 19:36:44.437 Rede 46 Kb de dados totais de inicialização recebidos
PP 0 19:36:44.437 Testador Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Símbolos EURUSD: símbolo a ser sincronizado
HR 0 19:36:44.800 Símbolos EURUSD: símbolo sincronizado, 3624 bytes de informações de símbolo recebidas
NJ 0 19:36:44.800 Histórico EURUSD: sincronização do histórico iniciada
GO 0 19:36:44.856 Histórico EURUSD: carregar 27 bytes de dados do histórico para sincronizar em 0:00:00.000
RQ 0 19:36:44.856 Histórico EURUSD: histórico sincronizado de 2012.01.01 a 2017.11.15
EF 0 19:36:44.993 Histórico EURUSD,Daily: cache de histórico alocado para 1010 barras e contém 312 barras de 2014.01.01 00:00 a 2014.12.31 00:00
ND 0 19:36:44.993 Histórico EURUSD,Diário: histórico começa a partir de 2014.01.01 00:00
OL 0 19:36:44.996 Testador EURUSD,Daily (HalifaxPlus-Live): geração de cada tick
GN 0 19:36:44.996 Testador EURUSD,Daily: teste de Experts\demo.ex5 de 2015.01.01 00:00 a 2017.11.15 00:00 iniciado
CK 0 19:36:56.288 Symbols NZDUSD: símbolo a ser sincronizado
IS 0 19:36:56.288 Símbolos NZDUSD: símbolo sincronizado, 3624 bytes de informação de símbolo recebidos
JL 0 19:36:56.288 Histórico NZDUSD: sincronização do histórico iniciada
HJ 0 19:36:56.575 Histórico NZDUSD: carregar 14 Kb de dados do histórico para sincronizar em 0:00:00.078
LS 0 19:36:56.575 Histórico NZDUSD: histórico sincronizado de 2013.01.01 a 2017.11.15
CO 0 19:36:56.579 Símbolos EURNZD: símbolo a ser sincronizado
OJ 0 19:36:56.580 Símbolos EURNZD: símbolo sincronizado, 3624 bytes de informação de símbolo recebidos
DL 0 19:36:56.580 Histórico EURNZD: sincronização do histórico iniciada
MK 0 19:36:56.656 Histórico EURNZD: carregar 27 bytes de dados do histórico para sincronizar em 0:00:00.000
OD 0 19:36:56.656 Histórico EURNZD: histórico sincronizado de 2013.01.01 a 2017.11.15
IN 0 19:36:56.665 Trade 2015.01.02 03:00:00 market buy 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 Trades 2015.01.02 03:00:00 deal #2 buy 0.10 EURUSD at 1.20549 done(based on order #2)
FH 0 19:36:56.666 Negociação 2015.01.02 03:00:00 negócio realizado [#2 comprar 0.10 EURUSD a 1.20549]
OG 0 19:36:56.666 Trade 2015.01.02 03:00:00 ordem executada comprar 0.10 em 1.20549 [#2 comprar 0.10 EURUSD em 1.20549]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Buy() method executed successfully. Código de retorno=10009 (realizado em 1.20549)
NM 2 19:37:15.823 Histórico NZDUSD 2016.09.21 23:01:00: histórico corrompido detectado (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 Histórico NZDUSD 2016.09.21, contêiner ruim encontrado, deve ser ressincronizado
LQ 2 19:37:16.106 Erro 9 no histórico do testador em uma função indefinida
OH 2 19:37:16.106 O testador parou em 0% do intervalo de teste com o erro '20 NZDUSD'
Por favor, diga-me o que está errado e como posso resolver isso?
No artigo, ao abrir ordens de limite e de parada em qualquer lugar
Será que aqueles que escrevem que o artigo os ajudou a inserir o código do artigo?