Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 820

 
79014393347az:
Ciao, per favore aiutatemi a scrivere nell'avviso RSI, le notifiche push hanno provato da sole, ma non funziona, dà un errore.
Voglio sapere cosa hai fatto e quale errore hai ottenuto.
Codice.
 

Qual è la ragione per cui l'audio non viene riprodotto se PlaySound() ritorna true?


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 è la ragione per cui l'audio non viene riprodotto se PlaySound() ritorna true?


  1. I nomi dei file audio sono corretti?
  2. Dopo PlaySound() avete immediatamente Alert() - entrambe le funzioni riproducono l'audio. Rimuovere Alert()
 
Artyom Trishkin:
  1. I nomi dei file audio sono corretti?
  2. Dopo PlaySound() avete immediatamente Alert() - entrambe le funzioni riproducono il suono. Rimuovere Alert()

I nomi sono corretti. Il motivo si è rivelato essere gli avvisi. MOLTI GRAZIE! Sono passati alcuni giorni da quando sono riuscito a capire qual è la ragione.

 
È possibile fare un'impostazione nelle impostazioni del programma di compilazione per cambiare il colore delle funzioni utente dal nero predefinito a un colore diverso, stiamo parlando di evidenziare le funzioni utente?
 
Come funziona la funzione ArrayMaximum(), che è allegata di default nel compilatore? Quindi l'essenza della domanda è questa: questa funzione trova il valore massimo nell'array, penso che se l'array contiene valori in un ordine caotico, per trovare il valore massimo o minimo, questi valori dovrebbero essere prima ordinati e solo allora si può scegliere il valore massimo, che sarà alla fine o all'inizio della lista dell'array ordinato, come questa funzione trova il valore massimo se sono scritti in un ordine caotico?
 
Seric29:
Come funziona la funzione ArrayMaximum() che è inclusa di default nel compilatore? Quindi, il nocciolo della domanda è questo: questa funzione trova il valore massimo nell'array, penso che se un array contiene valori in un ordine caotico, per trovare il valore massimo o minimo, questi valori dovrebbero prima essere ordinati e solo allora si può scegliere il valore massimo, che sarà alla fine o all'inizio della lista dell'array ordinato, come farà questa funzione a trovare il valore massimo se sono scritti in un ordine caotico?

Non c'è bisogno di ordinare nulla. La funzione ArrayMaximum() trova il valore massimo nell'array non ordinato e restituisce l'indice del valoretrovato .

 
Alexey Viktorov:

Non c'è bisogno di ordinare nulla. La funzione ArrayMaximum() trova il valore massimo in un array non ordinato e restituisce l'indice del valoretrovato .

Ma ha ancora bisogno di essere allineato in qualche catena per confrontarlo con uno o un altro valore, se ci sono 5 valori e sono scritti in un ordine caotico, l'unico modo per trovare il massimo o il minimo è confrontarli tutti, in ogni caso avete bisogno di un buffer per memorizzare i valori.

 
Seric29:

Ma ha ancora bisogno di essere allineato in una catena per essere confrontato con un valore o un altro, se ci sono 5 valori e sono scritti in un ordine caotico, l'unico modo per trovare il massimo o il minimo è confrontarli tutti, in ogni caso hai bisogno di un buffer per memorizzare i valori.

Perché cercare di capire come funziona internamente? Beh, se volete scrivere la vostra funzione, è probabilmente più conveniente ordinare e prendere il valore di uno degli indici più esterni. Ma difficilmente funzionerà più velocemente della funzione integrata. Inoltre, la funzione integrata permette di cercare un valore entro i limiti dell'indice designato. Quindi, il semplice ordinamento non funzionerà. Quindi, dovremo copiare parte dell'array in un array intermedio e ordinarlo già e prendere il valore richiesto da esso, ma la copia dell'array non è una funzione molto "economica".

 
Buon pomeriggio. Potresti darmi un suggerimento? Come sarebbe il codice della condizione: Se il saldo del conto è aumentato o diminuito, allora eseguite la funzione
Motivazione: