Kos: Não encontrei qualquer descrição dos códigos de resposta (Retcode) para MqlTradeCheckResult estrutura dos resultados do pedido comercial na documentação. Haverá algum?
Tnew[1] - fora do array, o array é descrito como Tnew[1], pelo que os seus elementos só podem ser acedidos como Tnew[0], porque o índice começa em zero.
Qual é o resultado? Neste caso, Tnew[1]é uma expressão incorrecta, mas será válida? Será Tnew[0] , Tnew[] uma expressão válida, ou algo mais? O resultado do Expert Advisor não parece mudar quando Tnew[1], Tnew[0], Tnew[] são utilizados.
Renat, se o entendi correctamente, os códigos de retorno ENUM_TRADE_RETURN_CODES para a estrutura MqlTradeResult também se aplicam à estrutura MqlTradeCheckResult
ias: Qual é o resultado? Tnew[1]é uma expressão incorrecta neste caso, mas é válida? Tnew[0] , Tnew[] é uma expressão válida ou algo mais? O resultado do perito não parece mudar ao utilizar Tnew[1],Tnew[0],Tnew[].
O resultado não pode ser o mesmo, pelo menos não se os dados forem lidos a partir da matriz por um índice que não existe. O que pensa que está em Tnew[1]?
Não tenho tanta certeza sobre o que está a ser escrito, quando a EA deixa o intervalo, pode comunicar um erro e seguir em frente. Mas o que estará em Tnew[0] neste caso?
Kos: Renat, se o entendi correctamente, os códigos de retorno ENUM_TRADE_RETURN_CODES para a estrutura MqlTradeResult também se aplicam à estrutura MqlTradeCheckResult
Sim, a base dos códigos de erros comerciais é a mesma para todo o espaço de funções comerciais.
As descrições de novas funções serão corrigidas - apenas não tivemos tempo de o fazer de imediato.
O resultado não pode ser o mesmo, pelo menos não se os dados forem lidos a partir da matriz por um índice que não existe. O que pensa que está em Tnew[1]?
Não estou tão certo de escrever, o Conselheiro Especialista pode reportar um erro e seguir em frente quando sair do intervalo, mas o que estará em Tnew[0] neste caso?
O resultado do trabalho do perito não muda quando se usa a datatime Tnew[1];Tnew[0];Tnew[];.será que na Exp_TEMA.mq5 do artigo "Criando um Perito Consultor que negoceia em símbolos diferentes" o , a função
//+X================================================================X+//| IsNewBar() function |//+X================================================================X+bool IsNewBar(int Number, string symbol, ENUM_TIMEFRAMES timeframe)
{
//----+staticdatetime Told[];
datetime Tnew[1];
//----+ Объвление переменной для хранения размеров массивов переменныхstaticint Size_ = 0;
//----+ Изменение размеров массивов переменныхif (Number + 1 > Size_)
{
uint size = Number + 1;
//----if (ArrayResize(Told, size) == -1)
{
string word = "";
StringConcatenate(word, "IsNewBar( ", Number,
" ): Ошибка!!! Не удалось изменить размеры массивов переменных!!!");
Print(word);
//---- int error = GetLastError();
ResetLastError();
if (error > 4000)
{
StringConcatenate(word, "IsNewBar( ", Number, " ): Код ошибки ", error);
Print(word);
}
//----
Size_ = -2;
return(false);
}
}
CopyTime(symbol, timeframe, 0, 1, Tnew);
if (Tnew[0] != Told[Number])
{
Told[Number] = Tnew[0];
return(true);
}
//----+return(false);
}
//+X================================================================X+
não funciona?
O que pensa que é Tnew[1]?
Depois de CopyTime(símbolo, prazo, 0, 1, Tnew); o endereço Tnew[1] deve conter a hora de início da barra anterior.
O resultado do trabalho dos peritos não se altera quando se utiliza a datatime Tnew[1];Tnew[0];Tnew[];.Deverá seguir-se que existe um Expert Advisor Exp_TEMA.mq5 do artigo "Criar um Expert Advisor para negociar em símbolos diferentes"? , a função
não funciona?
O que pensa que é Tnew[1]?
Depois de CopyTime(símbolo, prazo, 0, 1, Tnew); o endereço Tnew[1] deve conter a hora de início da barra anterior.
Vamos analisar em ordem
Estas duas cordas declaram arrays, uma das quais é dinâmica, enquanto a segunda (Tnew) contém apenas um registo.
staticdatetime Told[];
datetime Tnew[1];
Esta é uma tentativa de alterar o tamanho da matriz dinâmica. Assume-se que o número de registos na matriz será igual ao tamanho.
if (ArrayResize(Told, size) == -1)
Esta linha copia um registo (data de barra) a partir do número de barra 0 para o Tnew array. Esta data torna-se então disponível como Tnew[0] (porque a matriz é numerada com ZERO).
CopyTime(symbol, timeframe, 0, 1, Tnew);
Aqui, o único registo de matriz Tnew é comparado ao registo numerado Número-1 numa célula de matriz Told (lembre-se, a matriz é numerada a partir de 0).
Se estas datas não coincidirem, escrevemos o valor de Tnew array para a célula de Told array.
if (Tnew[0] != Told[Number])
{
Told[Number] = Tnew[0];
return(true);
}
Kos: Não encontrei qualquer descrição dos códigos de resposta (Retcode) para a estrutura do MqlTradeCheckResult trade request check na documentação. Estarão eles disponíveis?
Em MetaTrader 5\MQL5 Incluíndo Descrição Descrição.mqh
Não encontrei qualquer descrição dos códigos de resposta (Retcode) para MqlTradeCheckResult estrutura dos resultados do pedido comercial na documentação. Haverá algum?
Todas as descrições estão na documentação.
Veja a função OrderSend, estrutura MqlTradeResult e lista de códigos de resposta comercial.
Dito - matriz vazia sem tamanho
Tnew[1] - fora do array, o array é descrito como Tnew[1], pelo que os seus elementos só podem ser acedidos como Tnew[0], porque o índice começa em zero.
Todas as descrições estão na documentação.
Veja a função OrderSend, estrutura MqlTradeResult e lista de códigos de resposta comercial.
Qual é o resultado? Tnew[1]é uma expressão incorrecta neste caso, mas é válida? Tnew[0] , Tnew[] é uma expressão válida ou algo mais? O resultado do perito não parece mudar ao utilizar Tnew[1],Tnew[0],Tnew[].
O resultado não pode ser o mesmo, pelo menos não se os dados forem lidos a partir da matriz por um índice que não existe. O que pensa que está em Tnew[1]?
Não tenho tanta certeza sobre o que está a ser escrito, quando a EA deixa o intervalo, pode comunicar um erro e seguir em frente. Mas o que estará em Tnew[0] neste caso?
Renat, se o entendi correctamente, os códigos de retorno ENUM_TRADE_RETURN_CODES para a estrutura MqlTradeResult também se aplicam à estrutura MqlTradeCheckResult
Sim, a base dos códigos de erros comerciais é a mesma para todo o espaço de funções comerciais.
As descrições de novas funções serão corrigidas - apenas não tivemos tempo de o fazer de imediato.
O resultado não pode ser o mesmo, pelo menos não se os dados forem lidos a partir da matriz por um índice que não existe. O que pensa que está em Tnew[1]?
Não estou tão certo de escrever, o Conselheiro Especialista pode reportar um erro e seguir em frente quando sair do intervalo, mas o que estará em Tnew[0] neste caso?
O resultado do trabalho do perito não muda quando se usa a datatime Tnew[1];Tnew[0];Tnew[];.será que na Exp_TEMA.mq5 do artigo "Criando um Perito Consultor que negoceia em símbolos diferentes" o , a função
não funciona?
O que pensa que é Tnew[1]?
Depois de CopyTime(símbolo, prazo, 0, 1, Tnew); o endereço Tnew[1] deve conter a hora de início da barra anterior.
O resultado do trabalho dos peritos não se altera quando se utiliza a datatime Tnew[1];Tnew[0];Tnew[];.Deverá seguir-se que existe um Expert Advisor Exp_TEMA.mq5 do artigo "Criar um Expert Advisor para negociar em símbolos diferentes"? , a função
não funciona?
O que pensa que é Tnew[1]?
Depois de CopyTime(símbolo, prazo, 0, 1, Tnew); o endereço Tnew[1] deve conter a hora de início da barra anterior.
Vamos analisar em ordem
Estas duas cordas declaram arrays, uma das quais é dinâmica, enquanto a segunda ( Tnew) contém apenas um registo.
Esta é uma tentativa de alterar o tamanho da matriz dinâmica. Assume-se que o número de registos na matriz será igual ao tamanho.
Esta linha copia um registo (data de barra) a partir do número de barra 0 para o Tnew array. Esta data torna-se então disponível como Tnew[0] (porque a matriz é numerada com ZERO).
Aqui, o único registo de matriz Tnew é comparado ao registo numerado Número-1 numa célula de matriz Told (lembre-se, a matriz é numerada a partir de 0).
Se estas datas não coincidirem, escrevemos o valor de Tnew array para a célula de Told array.
Não encontrei qualquer descrição dos códigos de resposta (Retcode) para a estrutura do MqlTradeCheckResult trade request check na documentação. Estarão eles disponíveis?
No ficheiro MetaTrader 5\MQL5Incluir Descrição
Tenho uma pergunta a fazer. Não está a considerar um gráfico sem buracos? https://www.mql5.com/ru/forum/100491
Muito difícil de sincronizar tudo, parece que tentei dar conta de tudo no indicador, mas estes buracos são muito difíceis de lidar
2010.07.19 02:20:12 Verificação de buracos (EURUSD,M1) Número de buracos na história 260 desde a data 2010.07.09 21:35:00
2010.07.19 02:20:12 Verificação de buracos (EURUSD,M1) GBPUSD buraco 2010.07.19 00:20:00
2010.07.19 02:20:12 Verificar furos (EURUSD,M1) Buraco USDJPY 2010.07.19 00:15:00
2010.07.19 02:20:12 Verificar furos (EURUSD,M1) Buraco EURGBP 2010.07.16 22:43:00
2010.07.19 02:20:12 Verificar furos (EURUSD,M1) GBPUSD Hole 2010.07.16 22:43:00
2010.07.19 02:20:12 Verificar furos (EURUSD,M1) GBPUSD Hole 2010.07.16 22:38:00
2010.07.19 02:20:12 Verificar furos (EURUSD,M1) Buraco AUDUSD 2010.07.16 22:21:00
etc.....
e segunda pergunta: existem outras armadilhas neste indicador multimoedas que eu não tenha verificado?