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

 
79014393347az:
olá! por favor, ajude como escrever em alerta RSI, empurre as notificações experimentei eu mesmo ele não funciona dá um erro
Eu quero saber o que você fez e que erro cometeu.
Código.
 

Qual é a razão para não tocar áudio se o PlaySound() retornar verdadeiro?


v1 = (Up[i] != EMPTY_VALUE ? Up[i] : Down[i]);
v2 = (Down[i+1] != EMPTY_VALUE ? Down[i+1] : Up[i+1]);
         
if((v2 >= level || v2 <= level * (-1)) && a2 < Time[i])
  {
   a2 = Time[i];
   if(arrows == e1 && v2 >= level) {ArrowCreate(false,Time[i+1],High[i+1]);} else if(arrows == e1) {ArrowCreate(true,Time[i+1],Low[i+1]);};
   if(prev_calculated != 0)
     {
      if(sounds == e1 && v2 >= level) {al = PlaySound("SELL NOW"); Alert(al);} else if(sounds == e1) {al = PlaySound("BUY NOW"); Alert(al);};
      if(alerts == e1 && v2 >= level) {Alert(_Symbol+TF(Period())+" SELL NOW");} else if(alerts == e1) {Alert(_Symbol+TF(Period())+" BUY NOW");};
      if(push == e1 && v2 >= level) {SendNotification(_Symbol+TF(Period())+" SELL NOW");} else if(push == e1) {SendNotification(_Symbol+TF(Period())+" BUY NOW");};
     };
  };
 
Alexandr Sokolov:

Qual é a razão para o áudio não tocar se o PlaySound() retornar verdadeiro?


  1. Os nomes dos arquivos de áudio estão corretos?
  2. Após PlaySound() você tem Alert() imediatamente - ambas as funções reproduzem áudio. Retirar Alerta()
 
Artyom Trishkin:
  1. Os nomes dos arquivos de som estão corretos?
  2. Após PlaySound() você tem Alert() imediatamente - ambas as funções reproduzem som. Retirar Alerta()

Os nomes estão corretos. O motivo acabou sendo os alertas. MUITO OBRIGADO! Faz alguns dias que não consegui descobrir qual é a razão.

 
É possível fazer um ajuste nas configurações do programa do compilador para mudar a cor das funções do usuário de preto padrão para uma cor diferente, estamos falando de destacar as funções do usuário?
 
Como funciona o ArrayMaximum(), que é anexado por padrão no compilador? Então, a essência da questão é a seguinte: esta função encontra o valor máximo na matriz, eu acho que se a matriz contém valores em uma ordem caótica, para encontrar o valor máximo ou mínimo, estes valores devem primeiro ser ordenados e só então você pode escolher o valor máximo, que estará no final ou no início da lista da matriz ordenada, como esta função encontra o valor máximo se eles estão escritos em uma ordem caótica?
 
Seric29:
Como funciona o ArrayMaximum() que é incluído no compilador por padrão? Então, o cerne da questão é o seguinte: esta função encontra o valor máximo no array, eu acho que se um array contém valores em uma ordem caótica, para encontrar o valor máximo ou mínimo, esses valores devem primeiro ser ordenados e só então você pode escolher o valor máximo, que estará no final ou no início da lista do array ordenado, como esta função encontrará o valor máximo se eles estiverem escritos em uma ordem caótica?

Não há necessidade de classificar nada. A função ArrayMaximum() encontra o valor máximo na matriz não classificada e retorna o índice do valorencontrado .

 
Alexey Viktorov:

Não há necessidade de classificar nada. A função ArrayMaximum() encontra o valor máximo em um array não selecionado e retorna o índice do valorencontrado .

Mas ainda precisa ser alinhado em alguma cadeia para compará-lo com um ou outro valor, se houver 5 valores e eles estiverem escritos em uma ordem caótica, a única maneira de encontrar o máximo ou mínimo é compará-los todos, em qualquer caso você precisa de um buffer para armazenar valores.

 
Seric29:

Mas ainda precisa ser alinhado em uma cadeia para ser comparado a este ou aquele valor, se houver 5 valores e eles forem escritos em uma ordem caótica, a única maneira de encontrar o máximo ou mínimo é comparar todos eles, em qualquer caso é necessário um buffer para armazenar os valores.

Por que tentar descobrir como funciona internamente? Bem, se você quiser escrever sua própria função, é provavelmente mais conveniente classificar e tomar o valor de um dos índices mais externos. Mas dificilmente funcionará mais rápido do que a função embutida. Além disso, a função integrada permite a busca de um valor dentro dos limites de índice designados. Portanto, a triagem simples não vai funcionar. Portanto, teremos que copiar parte da matriz em uma matriz intermediária e classificá-la já e tirar o valor necessário dela, mas a cópia da matriz não é uma função muito "barata".

 
Boa tarde . Você poderia me dar uma dica? Como seria o código para a condição: Se o saldo da conta tiver aumentado ou diminuído, então execute a função