Erros, bugs, perguntas - página 805

 
ilunga:
Assim, existe um código na página anterior onde existe um conjunto de 3 elementos. Quando o produz com impressões, obtém-se aquele Bid = 1.29709 enquanto bar_info[n-1] armazena 1.29220

O que pensa sobre isto?

//----------------------------------------------------------------------------//
//Work variables
int ResCopy = -1; //Result of copying the data into an array

datetime bar_info[5];

bool Result = true; //Returned importance
//----------------------------------------------------------------------------//

ResetLastError();

//Checking the signal to stopping the trading system
  if(IsStopped()) return(false);
ZeroMemory(CheckResult);
//Copying the data into an array
ResCopy = CopyTime(symbol,period,0,ArraySize(bar_info),bar_info);

  if(ResCopy==-1)return(false); 
//
  for(int f=0;f<ResCopy;f++)
  {
  Print("f=",f,"-",TimeToString(bar_info[f]));
  }
//Checking for presence of the errors
  if(_LastError!=0){Result = false;}
 
Interesting:

O que pensa disto?

Se isto for executado a partir de um init, então

HS      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=0-2011.12.26 00:00
PD      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=1-2011.12.27 00:00
LN      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=2-2011.12.28 00:00
DG      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=3-2011.12.29 00:00
II      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=4-2011.12.30 00:00

Se da OnTick, então

DJ      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=0-2011.12.27 00:00
JL      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=1-2011.12.28 00:00
PE      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=2-2011.12.29 00:00
OO      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=3-2011.12.30 00:00
FP      0       test4 (GBPUSD,H1)       14:57:13        2012.01.02 09:00:00   f=4-2012.01.02 00:00

Tenho neste momento uma lacuna nos dados (ver imagem). Ainda assim, tenho a sensação de que ao testar noutro par, recebo uma actualização de dados assíncrona


 

E é.

Acrescentar mais uma linha após a Impressão:

Print("Время последней котировки:" + TimeToString(SymbolInfoInteger("EURUSD", SYMBOL_TIME)));


Ao executar o código no OnTick obtemos:

RK      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=0-2011.12.27 00:00
LR      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=1-2011.12.28 00:00
FD      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=2-2011.12.29 00:00
EO      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=3-2011.12.30 00:00
PQ      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   f=4-2012.01.02 00:00
OI      0       test4 (GBPUSD,H1)       15:06:31        2012.01.02 09:00:00   Время последней котировки:2011.12.30 20:59

Ou seja, o bar para Copiar...() já existe, mas ainda não há nenhuma citação nele.



Podemos fazer outra adição. Insira a sua função com a minha adição no OnTick:

if (TimeCurrent() < D'2012.01.10 15:00') return;

Teste realizado a partir de 2012.01.01.01

obtemos:

RO      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=0-2012.01.04 00:00
JQ      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=1-2012.01.05 00:00
RH      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=2-2012.01.06 00:00
LR      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=3-2012.01.09 00:00
QE      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   f=4-2012.01.10 00:00
ON      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:00   Время последней котировки:2011.12.30 20:59
LS      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=0-2012.01.04 00:00
DE      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=1-2012.01.05 00:00
LL      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=2-2012.01.06 00:00
RF      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=3-2012.01.09 00:00
KI      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   f=4-2012.01.10 00:00
FR      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:20   Время последней котировки:2012.01.10 15:00
FG      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=0-2012.01.04 00:00
NN      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=1-2012.01.05 00:00
FP      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=2-2012.01.06 00:00
HK      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=3-2012.01.09 00:00
EM      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   f=4-2012.01.10 00:00
LE      0       test4 (GBPUSD,H1)       15:20:13        2012.01.10 15:00:40   Время последней котировки:2012.01.10 15:00


Ou seja, a primeira citação é falha, o resto está correcto

 
ilunga:

Se este for executado a partir de um inite, então

HS      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=0-2011.12.26 00:00
PD      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=1-2011.12.27 00:00
LN      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=2-2011.12.28 00:00
DG      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=3-2011.12.29 00:00
II      0       test4 (GBPUSD,H1)       14:56:20        2012.01.01 00:00:00   f=4-2011.12.30 00:00

A última barra (mais próxima da data actual) terá, neste caso, o índice máximo.

 
ilunga:
Por isso, a primeira citação é falha, as outras estão correctas.
Obrigado. (risos) Encontrámos o erro, vamos corrigi-lo.
 

Pode dizer-me o que significam os zeros antes da vírgula na coluna do passe?


 
O meu segundo dígito desapareceu agora, apenas zeros.
 
tol64:

Pode dizer-me o que significam os zeros antes da vírgula na coluna do passe?


Este é o número de geração genética. Não só existem zeros, como depois dos zeros chegarem 1, 2, etc.
 
marketeer:
Este é o número de geração da genética. Não há apenas zeros, depois dos zeros chegarem 1, 2, etc.

O meu significa que não é reprodução? )))

As gerações estão a chegar, mas a coluna ainda está cheia de zeros.

 

Estas adições são possíveis no MT5?

Na estrutura MqlTradeResult adicionar o tempo de execução da ordem no lado do servidor.

E acrescentar a possibilidade de definir o momento em que uma ordem pendente se torna activa para a execução do servidor.

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5
Razão: