Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1214

 
Artyom Trishkin:

Para manter os dados históricos atualizados "quentes", você precisa acessar esses dados a cada dois minutos usando qualquer uma das funções CopyXXX, iXXX, por exemplo, CopyTime(), iTime(), etc...

Não sei que volumes você não recebe no testador. Há volumes reais e de carrapatos. Sem o código não é possível responder à substância.

O código é o mesmo que eu baixei anteriormente (ligeiramente modificado). Cópia de carrapatos:

 MqlTick tick_array[];
      uint start = GetTickCount();
      int received = CopyTicks(_Symbol, tick_array, COPY_TICKS_TRADE, periodStartTime*1000, ticksSizeToCopy);
            if(received != -1) {
               PrintFormat("%s: received %d ticks in %d ms", _Symbol, received, GetTickCount() - start);
               if(GetLastError() != 0) 
                  PrintFormat("%s: таймер Ticks are not synchronized yet, %d ticks received for %d ms. Error=%d",
                              _Symbol, received, GetTickCount() - start, _LastError);
            }

Em seguida, há um pedido de volumes. Por exemplo (simplificado):

int ticks = ArraySize(tick_array);
for (int i = 0; i < ticks; i ++) {
         if((tick_array[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) {
               if(tick_array[i].volume > max) max = tick_array[i].volume;
        }
}

Se você simplesmente anexá-lo a uma tabela, então está tudo bem. Se eu o prender a um testador, então por alguma razão não há volumes...

 
Yevhenii Levchenko:

O código é o mesmo que o que eu afixei anteriormente (ligeiramente modificado). Cópia de carrapatos:

A seguir, há um pedido de volumes. Por exemplo (simplificado):

Se eu apenas anexá-lo a uma tabela, então está tudo bem. Se está no Testador de Estratégia, então não tem volumes...

Nota sobre a função CopyTicks(). Sobre as bandeiras.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
  • www.mql5.com
[in]  Количество запрашиваемых тиков. Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000. Первый вызов CopyTicks() инициирует синхронизацию базы тиков, хранящихся на жёстком диске по данному символу. Если тиков в локальной базе не хватает, то недостающие тики...
 

Colegas, por favor me avisem por que não posso colocar 2 ou 3 indicadores ATR com cronogramas diferentes em um gráfico ao mesmo tempo?

Mesmo mudando o Offset para evitar sobreposições visuais, apenas um indicador funciona e é mostrado no gráfico?

input int InpOffsetX = 10; // Offset X
input int InpOffsetY = 80;// Offset Y

Mais precisamente, se eu mudar de TF, a segunda aparece, mas a primeira desaparece; todas as três aparecem alternadamente em TFs diferentes, mas não todas juntas. A ordem não pode ser rastreada.

 
Artyom Trishkin:

Leia a nota em CopyTicks(). Sobre as bandeiras.

Eu não consigo entender o que você quer dizer. Parece que estou usando as bandeiras certas... E funciona na vida real... mas o testador não quer que isso aconteça.
 
Artyom Trishkin:

Onde eu disse que não era bom em lógica?

Suas palavras do post anterior :" Para fazer algoritmos, parece-me, você precisa de lógica. E isto está longe de ser matemático. E aqui não sou amigo dele - apenas o material de referência necessário e a ajuda daqueles que são amigos".
 
Artyom Trishkin:
Para fazer algoritmos, eu acho, é preciso lógica. E isto está longe de ser matemático. E aqui não sou amigável com ele - apenas o material de referência certo e a ajuda daqueles que o são.

O trabalho do programador não é resolver tarefas complexas, mas fazer com que o computador as faça por ele. Mas isto pode exigir a resolução de outras tarefas complexas, que o programador executa obedientemente. :)

 
ANDREY:
Suas palavras de um post anterior :" Para fazer algoritmos, parece-me, você precisa de lógica. E isto está longe de ser matemático. E eu não sou amigo dele - apenas o material de referência certo e a ajuda daqueles que o são".

Não, não é. É assim:

"Para fazer algoritmos, parece-me que você precisa de lógica. E isto está longe de ser matemático. E eu não sou amigo dele - apenas o material de referência certo e a ajuda daqueles que o são".

Em termos de significado, as duas sentenças estão próximas uma da outra. Mas você encontrou seu significado...

 
Mihail Matkovskij:

O trabalho do programador não é resolver tarefas complexas, mas fazer com que o computador as faça por ele. Mas isto pode exigir a resolução de outras tarefas complexas, que o programador executa obedientemente. :)

O definidor de tarefas, é claro, rege. Mas ele tem que ser um programador para permanecer no curso))))

 
Valeriy Yastremskiy:

As regras de definição de problemas, é claro. Mas ele tem que ser um programador para permanecer no curso))))

É isso mesmo, o gerente de tarefas também é o executor. Embora, nem sempre.

 

Por favor, informe. Tenho um EA que tira dados (tempo) de um indicador e conta a diferença em milissegundos entre carrapatos.

Eu o produzo via Alerta e recebo o seguinte (ver foto). A meu ver, primeiro obtenho o número total de milissegundos e depois a diferença em milissegundos entre os últimos 4 ticks (entre 1 e 2, 2 e 3, 3 e 4).

Por que é assim? Eu só preciso dos valores para o 4º tick.

tempo

Arquivos anexados:
ind_time.mq4  1 kb
exp_time.mq4  2 kb