Obrigado, mas penso que ainda não faz sentido tal precisão, especialmente porque o tempo não será "não real", mas aproximado e dependerá de muitos factores. Para ser exacto, precisamos da possibilidade de obter a hora do servidor, isto é, se eu definir SymbolInfoDouble( _Symbol, SYMBOL_SESSION_TIME_INTEREST ), então posso obter a hora imediatamente, por exemplo com SymbolInfoInteger( _Symbol, SYMBOL_SESSION_TIME_INTEREST ) (com precisão de milissegundos). Ficará bem então!
fxsaber: Poderia ser mais exacto. Por exemplo, poderia percorrer todos os símbolos consultando SymbolInfoTick (+ CopyTicks). A partir daí, riscar o tempo em milissegundos. Só não compreendo que utilidade prática poderia ter.
É simples - o timing! É tudo uma questão! Há muitos dados disponíveis agora: carraças, sentimento, vidro. O tempo de milissegundo está SOMENTE disponível para carraças! E quanto à hora de chegada do resto dos dados? O vidro não o tem. O sentimento também não o tem! Por conseguinte, se recolhermos todos os dados em conjunto - não conseguiremos sincronizá-los! Não é possível fazer uma análise complexa! Não compreendo porque é que os criadores não lhe prestam a devida atenção. Eles têm os dados, mas é impossível trabalhar com eles adequadamente! Portanto, temos de fazer alguma coisa, mas mesmo "muletas", como se verificou, nem sempre funcionam correctamente.
Erro de compilação: nenhuma função pode ser definida mais tarde, mesmo que seja declarada antes
int f(); //объявление staticint i1 = f(); //Error: 'f' - function must have a body int g() { staticint i2 = f(); //нормально //даже если нет объявления return i2; } voidOnStart() { g(); } int f() { return0; }
Erro de compilação: não se pode definir uma função mais tarde, mesmo que haja uma declaração antes
int f(); //объявление staticint i1 = f(); //Error: 'f' - function must have a body int g() { staticint i2 = f(); //нормально //даже если нет объявления return i2; } voidOnStart() { g(); } int f() { return0; }
Faz sentido para mim.
Mas o porquê de não haver aqui nenhum erro não é claro.
int f(); //объявление staticint i1 = f(); //Error: 'f' - function must have a body int g() { staticint i2 = f(); //нормально //даже если нет объявления return i2; }
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Não verificou.
{
static ulong PrevStartTime = GetMicrosecondCount();
static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
const ulong NowTime = GetMicrosecondCount();
if (PrevTimeCurrent < NewTimeCurrent)
{
PrevTimeCurrent = NewTimeCurrent;
PrevStartTime = NowTime;
}
return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
Poderia ser mais exacto. Por exemplo, poderia percorrer todos os símbolos consultando SymbolInfoTick (+ CopyTicks). A partir daí, riscar o tempo em milissegundos. Só não compreendo que utilidade prática poderia ter.
É simples - o timing! É tudo uma questão! Há muitos dados disponíveis agora: carraças, sentimento, vidro. O tempo de milissegundo está SOMENTE disponível para carraças! E quanto à hora de chegada do resto dos dados? O vidro não o tem. O sentimento também não o tem! Por conseguinte, se recolhermos todos os dados em conjunto - não conseguiremos sincronizá-los! Não é possível fazer uma análise complexa! Não compreendo porque é que os criadores não lhe prestam a devida atenção. Eles têm os dados, mas é impossível trabalhar com eles adequadamente! Portanto, temos de fazer alguma coisa, mas mesmo "muletas", como se verificou, nem sempre funcionam correctamente.
Um análogo de milissegundos de TimeCurrent há muito esperado, com o seu reflexo na GUI.
O bug TimeCurrent() foi corrigido, disseram que hoje estaria no MQ-Demo.
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Nova versão da plataforma MetaTrader 5 construída 1545: Mudança rápida entre janelas e alterações de preços com o rato
fxsaber, 2017.02.16 10:16
Poderia, em futuros anúncios, fornecer mais números SR para os quais tenham sido feitas correcções?Seria bom fazer disso uma regra
Erro de compilação: nenhuma função pode ser definida mais tarde, mesmo que seja declarada antes
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
return i2;
}
void OnStart()
{
g();
}
int f() { return 0; }
Erro de compilação: não se pode definir uma função mais tarde, mesmo que haja uma declaração antes
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
return i2;
}
void OnStart()
{
g();
}
int f() { return 0; }
Faz sentido para mim.
Mas o porquê de não haver aqui nenhum erro não é claro.
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
return i2;
}
class A
{
public:
A() { f(); }
};
A a;
void OnStart()
{
g();
}
int f() { return 0; }
Parece-me lógico.
Mas a razão pela qual não há aqui nenhum erro não é clara.
Um erro só é lógico se houver algum tipo de colisão. Se tudo for feito correctamente - erros desnecessários tiram flexibilidade
Compilado na versão 1531. Ao arrancar, consegui:
2017.02.16 18:55:19.101 MQL5 'TradePanel.ex5' tem uma versão mais recente não suportada, por favor actualize o seu terminal de cliente
Ainda bem que não está numa conta real.