Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 745

 
Comentários não relacionados com este tópico foram transferidos para "Perguntas dos principiantes do MQL4 MT4 MetaTrader 4".
 

Uma pergunta para a qual não encontrei uma resposta clara:

Preciso de utilizar 2 indicadores com 4 períodos, é necessário escrever à mão um indicador 4 vezes no init e o outro 4 vezes?

Ou é possível utilizar uma delas de cada vez, caso contrário, serão demasiadas linhas no ficheiro.

Não tenho a menor ideia de como o utilizar.

 
Vitaly Muzichenko:

Uma pergunta para a qual não encontrei uma resposta clara:

Preciso de utilizar 2 indicadores com 4 períodos, é necessário escrever à mão um indicador 4 vezes no init e o outro 4 vezes?

Ou é possível utilizar uma delas de cada vez, caso contrário, serão demasiadas linhas no ficheiro.

Não tenho a menor ideia de como o utilizar.

Imagine que precisa de abrir 8 portas, cada uma com uma chave diferente. Quantas chaves são necessárias para abrir todas as portas?
 
Alexey Kozitsyn:
Imagine que precisa de abrir 8 portas, cada uma com uma chave diferente. Quantas chaves são necessárias para abrir todas as portas?

Um eclusa e nada mais.

Posso utilizá-lo aqui, há alguma possibilidade e não sei se existe? O trabalho parou por causa da incerteza(

 
Vitaly Muzichenko:

Um eclusa e nada mais.

Posso usá-lo aqui, talvez haja uma possibilidade e não sei...

Não, só há chaves.
 
Alexey Kozitsyn:
Não, apenas as chaves aqui.
Obrigado, agora vou fazer com confiança e não pensar no que pode ser feito correctamente.
 
Olá 2017.05.05_02:58 GMT+3. Quem me pode dizer como obter os valores dos últimos quatro pontos ZigZag e os seus índices ou horas de início de barras em MQL5 no código do programa EA ? Há muito tempo que luto com ela, mas até agora nada se tem revelado. Se eu aplicar o while ou para operador de laço, não faz qualquer diferença, o testador de estratégia gera um erro num dos seus registos: Array overrun no ficheiro include. Aqui está o ficheiro de inclusão. Obtenho a matriz de valores ZigZag usando a função CopyBuffer() e o cabo ZigZag. Parece conter apenas pontos ZigZag, pelo que não posso percorrer a matriz sequencialmente em ordem ascendente. O conjunto fica fora de ordem. Talvez, o Sr. Karputov saiba como obter os últimos vários pontos ZigZag sem sair da matriz?
Até tentei alterar o código indicador ZigZag, mas não o reescrevi para que os valores zero também fossem escritos em buffers indicadores. Tentei reescrevê-lo de modo a que os valores zero não excedessem os limites da matriz durante o processamento da matriz. Até agora, ainda não consegui compreender completamente o que está escrito no código ZigZag e como ele funciona. Estou aborrecido com isso, por isso estou a escrever no fórum.
Creio que o comércio manual pertence à era passada. Não tenho tempo suficiente para negociar, nem sequer quero dormir o suficiente e abrir negócios durante as refeições. Penso que sou capaz de escrever um Consultor Especialista. Eu não vou desistir e desistir. É tudo por agora. Estou à espera da vossa resposta. 03:28 GMT+3. Posted at 03:56 GMT+3.
Arquivos anexados:
TDiff.mqh  2 kb
 
Николай Никитюк:
Olá 2017.05.05_02:58 GMT+3. Quem me pode dizer como obter os valores dos últimos quatro pontos ZigZag e os seus índices ou horas de início de barras em MQL5 no código do programa EA ? Há muito tempo que luto com ela, mas até agora nada se tem revelado. Se eu aplicar o while ou para operador de laço, não faz qualquer diferença, o testador de estratégia gera um erro num dos registos: Array overrun no ficheiro include. Aqui está o ficheiro de inclusão. Obtenho a matriz de valores ZigZag usando a função CopyBuffer() e o cabo ZigZag. Parece conter apenas pontos ZigZag, pelo que não posso percorrer a matriz sequencialmente em ordem ascendente. Recebemos uma série de ultrapassagens.

Não. Todos os pontos são aí registados, incluindo os pontos vazios.

Mykola Nikityuk:
Até tentei alterar o código do indicador ZigZag, mas não foi bem sucedido reescrevê-lo de tal forma, que também os valores zero foram escritos em buffers indicadores. Não consegui reescrevê-lo de forma a não ultrapassar as arrays ao processá-las pelo laço. Até agora, ainda não consegui compreender completamente o que está escrito no código ZigZag e como ele funciona. Estou aborrecido com isso, por isso estou a escrever no fórum.
Creio que o comércio manual pertence à era passada. Não tenho tempo suficiente para negociar, nem sequer quero dormir o suficiente e abrir negócios durante as refeições. Penso que sou capaz de escrever um Consultor Especialista. Eu não vou desistir e desistir. É tudo por agora. Estou à espera da vossa resposta. 03:28 GMT+3. Posted at 03:56 GMT+3.

Para se livrar dos limites da matriz, deve lidar com as direcções da matriz.

Para obter os índices ou hora das barras devemos copiar a hora das barras CopyTime() ou CopuRates() juntamente com a cópia do buffer de indicadores, onde a OHLC das barras também existe.

Uma vez que não podemos evitar o ciclo, eu utilizaria a segunda forma da função

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   datetime  start_time,           // с какой даты
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

A condição seguinte: se um valor maior que zero for copiado, isso é um ponto ZigZag e obteremos o extremo superior ou inferior comparando esse valor com Alto e Baixo dessa barra.

 

Pessoal, por favor ajudem-me a compreender o que raio se passa na MQL5 com a escrituração de encomendas.

Estou a lidar com programadores e parece que não somos capazes de ter ordens claramente baseadas nos princípios usados na MQL4 - não podemos definir um número mágico para uma ordem, então é impossível seleccionar as posições necessárias com base num número mágico simplesmente tentando OrderTotal() e detectar que ordem foi aberta por uma EA e que foi aberta manualmente, etc., não podemos fechar uma determinada ordem com base num bilhete, e é impossível criar uma escada de ordens numa direcção e depois fechar a ordem mais antiga, etc.

Será que as metaquotas podem realmente fazer uma merda dessas? Como podemos trabalhar sem ele?

 
Artyom Kuraev:

Pessoal, por favor ajudem-me a compreender o que raio se passa na MQL5 com a escrituração de encomendas.

Estou a lidar com programadores e a minha impressão é que não somos capazes de contar correctamente as encomendas de acordo com aquele princípio que foi usado na MQL4 - não se pode definir um número mágico para uma encomenda, não se pode simplesmente usar OrderTotal() para seleccionar as posições necessárias com base num número mágico e depois determinar que encomenda foi aberta por uma EA e qual foi aberta manualmente, etc., não se pode fechar uma determinada encomenda de acordo com um bilhete, não se pode criar uma escada de encomendas numa direcção e depois fechar a primeira delas, etc.

Será que as meta-cotações poderiam ter feito esta porcaria? Como se pode trabalhar sem ele?

Onde se encontram tais programadores?

Tudo isto é um perfeito disparate. Para onde enviar um tal programador, espero que compreenda.

Bem, só por precaução, para que não me falte, aqui está um ponteiro.