Você pode me dizer como medir a taxa mínima de amostragem, uma iteração de um loop de tempo? Tentando este código, mas não tenho certeza se estou medindo corretamente.
voidOnStart()
{
ulong time[];
ulong t = 0;
int i = 0;
ArrayResize(time, 30);
ulong startTime=GetTickCount64();
uint iterations=0;
while(i < 30 && !_StopFlag )
{
//t = GetMicrosecondCount();
//t = GetMicrosecondCount() - t;
iterations++;
ArrayFill(time, i, 1, t);
i++;
}
if (iterations) {
ulong endTime=GetTickCount64();
ulong avgTime=(startTime-endTime)/iterations; // среднее время 1-й итерации
}
ArrayPrint(time);
}
Ah, entendi o ponto. Eu o escrevi um pouco diferente.
Acontece que é de 0 ou 1 microssegundo. Abaixo de microssegundos, é impossível verificar.
É melhor contar o número de iterações. É claro que será menos de um microssegundo com as freqüências atuais da CPU. Por exemplo, entre carrapatos)
voidOnStart() // Спец. функция OnStart()
{
int i, Count; // Объявление переменныхfor (i=1; i<=5; i++) // Покажем для 5 тиков
{
Count=0; // Сброс счётчикаwhile(RefreshRates()==false) // До тех пор, пока..
{ //..придёт новый тик
Count = Count+1; // Счётчик итераций
}
Alert("Тик ",i,", циклов ",Count); // После каждого тика
}
return; // Выход из start()
}
//--------------------------------------------------------------------
É melhor contar o número de iterações. É claro que será menos de um microssegundo com as freqüências atuais da CPU. Por exemplo, entre carrapatos)
Provavelmente é melhor, mas não é essa a questão. Temos que descer para nanossegundos, então acho que devemos escrever um dll com suas próprias funções de verificação de tempo. Estou apenas curioso sobre a discrição do laço.
Como posso determinar qual foi o último pedido fechado?
Ou qual foi o lucro das últimas 5 encomendas fechadas?
OrderHistoryTotal()-1 - retorna a posição do pedido na história com o bilhete máximo.
Se uma negociação com o bilhete 100 fechou, e uma hora depois, uma negociação com o bilhete 99 fechou, entãoa OrderHistoryTotal()-1 apontará para #100, mas como podemos obter informações sobre o pedido #99?
---
A coisa mais estúpida que me vem à mente - salvar a história para uma matriz, classificá-la por pouco tempo e ler o que eu preciso da matriz. Mas isso é super sub-ótimo.
Provavelmente é melhor, mas não é essa a questão. Se precisarmos descer para nanossegundos, acho que precisamos escrever uma dll com suas próprias funções de verificação de tempo. Estou apenas curioso sobre a taxa de amostragem em que o loop cicla.
com a freqüência de um núcleo livre multiplicada pelo número de núcleos livres. 2 - 10 gigahertz devem estar em algum lugar, se não há outras tarefas e o laço só conta. A velocidade depende da carga de CPU e memória, prioridade de ações externas no momento da execução do loop, bem como de ações internas em loop. Além disso, as operações de adição e atribuição são mais rápidas do que ler e escrever de/para array, tanto quanto eu entendo.
com a freqüência de um núcleo livre multiplicada pelo número de núcleos livres. 2 - 10 gigahertz em algum lugar, se não há outras tarefas e o laço só conta. Além disso, as operações de adição e atribuição são mais rápidas do que a leitura ou escrita de/para a matriz.
Você pode me dizer como medir a taxa mínima de amostragem, uma iteração de um loop de tempo?
Tentando este código, mas não tenho certeza se estou medindo corretamente.
Ah, entendi o ponto.
Eu o escrevi um pouco diferente.
Acontece que é de 0 ou 1 microssegundo.
Abaixo de microssegundos, não pode ser verificado.
Ah, entendi o ponto.
Eu o escrevi um pouco diferente.
Acontece que é de 0 ou 1 microssegundo.
Abaixo de microssegundos, é impossível verificar.
É melhor contar o número de iterações. É claro que será menos de um microssegundo com as freqüências atuais da CPU. Por exemplo, entre carrapatos)
É melhor contar o número de iterações. É claro que será menos de um microssegundo com as freqüências atuais da CPU. Por exemplo, entre carrapatos)
Provavelmente é melhor, mas não é essa a questão.
Temos que descer para nanossegundos, então acho que devemos escrever um dll com suas próprias funções de verificação de tempo.
Estou apenas curioso sobre a discrição do laço.
Como posso determinar qual foi o último pedido fechado?
Ou qual foi o lucro das últimas 5 encomendas fechadas?
OrderHistoryTotal()-1 - retorna a posição do pedido na história com o bilhete máximo.
Se uma negociação com o bilhete 100 fechou, e uma hora depois, uma negociação com o bilhete 99 fechou, entãoa OrderHistoryTotal()-1 apontará para #100, mas como podemos obter informações sobre o pedido #99?
---
A coisa mais estúpida que me vem à mente - salvar a história para uma matriz, classificá-la por pouco tempo e ler o que eu preciso da matriz. Mas isso é super sub-ótimo.
Provavelmente é melhor, mas não é essa a questão.
Se precisarmos descer para nanossegundos, acho que precisamos escrever uma dll com suas próprias funções de verificação de tempo.
Estou apenas curioso sobre a taxa de amostragem em que o loop cicla.
com a freqüência de um núcleo livre multiplicada pelo número de núcleos livres. 2 - 10 gigahertz devem estar em algum lugar, se não há outras tarefas e o laço só conta. A velocidade depende da carga de CPU e memória, prioridade de ações externas no momento da execução do loop, bem como de ações internas em loop. Além disso, as operações de adição e atribuição são mais rápidas do que ler e escrever de/para array, tanto quanto eu entendo.
com a freqüência de um núcleo livre multiplicada pelo número de núcleos livres. 2 - 10 gigahertz em algum lugar, se não há outras tarefas e o laço só conta. Além disso, as operações de adição e atribuição são mais rápidas do que a leitura ou escrita de/para a matriz.
Obrigado. Entendi.
Quem pode ajudar a escrever um robô comercial?
desses robôs, tantos já foram escritos - não acredito que não haja um que você queira.
Bom dia a todos!
Pergunta: qual é a maneira mais fácil de determinar os tempos altos e baixos de um bar?
Otempo de abertura/fecho do bar não é interessante.
No MT4.
Obrigado!