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

 

Por favor, informe como ficaria o desenho seguinte de uma forma aproximada:

1) É gerado um novo tick - a condição é preenchida, por exemplo, neste tick será desenhada uma indicação de padrão e será dado um alerta

2) Depois de satisfeita a condição acima descrita, é necessário parar várias repetições da mesma acção acima descrita até que o período de tempo seja igual:

TimeCurrent() <= (time[index] + PeriodSeconds(PERIOD_CURRENT))

3) Assim que a barra mudar para a barra seguinte, retomar a condição novamente até ao próximo período de tempo descrito acima

Será esse desenho realista?

 
clickaider:

Por favor, informe como ficaria o desenho seguinte de uma forma aproximada:

1) É gerado um novo tick - a condição é preenchida, por exemplo, neste tick será desenhada uma indicação de padrão e será gerado um alerta

2) Após a condição acima ter sido preenchida, é necessário parar de executar múltiplas repetições da mesma acção da acção acima referida até que o período de tempo seja igual:

3) Assim que a barra mudar para a barra seguinte, retomar a condição novamente até ao próximo período de tempo descrito acima

Será esse desenho realista?

Já escreveu a maior parte da lógica...

 
Artyom Trishkin:

Já escreveu a maior parte da lógica...

A lógica pode estar correcta, mas encontrar a funcionalidade certa é o problema. Poderia por favor aconselhar quais as funções ou construções de exemplo a aplicar para tentar resolver o problema, uma vez que estou bastante perplexo aqui.

 
clickaider:

A lógica pode estar correcta, mas encontrar a funcionalidade certa é o problema. Poderia por favor aconselhar quais as funções ou desenhos de exemplo a utilizar para tentar resolver o problema, uma vez que aqui estou praticamente num beco sem saída.

  1. É gerado um novo tick - a condição está preenchida, por exemplo, a indicação de padrão será desenhada neste tick e será gerado um alerta.
    1. Preciso de uma função para obter uma condição e colocar a bandeira dessa condição para trabalhar com as duas cláusulas seguintes
    2. Necessidade de uma função para desenhar um padrão
    3. Preciso de uma função para enviar alerta (não necessariamente uma função - existem funções padrão para apenas alerta, apenas e-mail e apenas push)
  2. Depois de satisfeita a condição acima, temos de parar a execução de múltiplas repetições da mesma acção da acção acima até um período de tempo igual a...
    1. Se já existe uma bandeira que indica três passos do passo 1 acima, então não faça nada - vá para o passo 3, caso contrário vá para o passo 1
  3. Assim que a barra mudar para a próxima, reiniciar a condição até ao próximo período de tempo descrito acima
    1. Precisamos de uma função para definir uma nova barra. Assim que uma nova barra tenha sido definida, vá para o ponto 1. Caso contrário, vá para o ponto 2.
 

Por favor, ajudem.

Tenho uma lista de enumeração.

enum ENUM_Target_NAME 
  {
   arr_Buy,
   arr_Sell,
   arr_Svod,
   arr_Regr,
   arr_200,
   arr_100,
   Target_25_iD,
   Target_50_iD,
  };
input ENUM_Target_NAME Target=ENUM_Target_NAME(5);

Preciso que os valores se tornem um fio, ou seja, que se tornem um texto, esta abordagem não funciona

(string)Target

Recebo simplesmente o número de um valor variável da lista, e preciso do texto - o nome real da lista, por exemplo, "arr_100".

Como fazê-lo?

 
Aleksey Vyazmikin:

Por favor, ajudem.

Tenho uma lista de enumeração.

Preciso que os valores se tornem um fio, ou seja, que se tornem um texto, esta abordagem não funciona

Recebo simplesmente o número de um valor variável da lista, e preciso do texto - o nome real da lista, por exemplo, "arr_100".

Como fazê-lo?

EnumToString()

 
Artyom Trishkin:

EnumToString()

Obrigado!

 
Nauris Zukas:

Pode dar-me um link para a documentação do significado destes símbolos <>?

Este é um método modelo. O tipo do parâmetro será correspondido de acordo com o tipo passado nestes parênteses. O tipo é determinado estatisticamente na fase de compilação do programa. Pode ler mais sobre o assunto em "function and class templates":https://www.mql5.com/ru/docs/basis/oop/templates.

Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
  • www.mql5.com
Перегруженные функции обычно используются для выполнения похожих операций над различными типами данных. Простой пример такой функции в MQL5 - ArraySize(), которая возвращает размер массива любого типа. На самом деле эта системная функция является перегруженной, и вся реализация такой перегрузки спрятана от разработчика программ на MQL5: То есть...
 
Nauris Zukas:

Boa tarde! fiz .mqh para o processamento e armazenamento de dados no recurso. Tudo funciona, mas há uma nuance, se eu compilar o indicador, o .mqh é reiniciado e refaz o processo de peso para armazenamento. Alvo - desde que haja dados no recurso não é reinicializado. Onde está o erro, como corrigi-lo?

Os recursos são concebidos para conter dados estáticos (permanentes) imutáveis. A sua tarefa é descarregar um ficheiro com dados e alterar os dados na memória do indicador e guardar os novos dados no ficheiro, por isso, após o reinício e recompilação do indicador, irá descarregar os novos dados. Os recursos não ajudarão a fazer isto.

 
Vasiliy Sokolov:

Os recursos são concebidos para conter dados estáticos (constantes) imutáveis. Para a sua tarefa precisa de carregar um ficheiro com dados, alterar estes dados na memória do indicador e guardar o novo peso dos dados no ficheiro, para que após recarregar e recompilar o indicador possa carregar os novos dados. Os recursos não ajudarão a fazer isto.

Estou a ver, obrigado!