[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 81

 
artmedia70:

Se ho capito bene le tue parentesi graffe, allora:




dopo aver eseguitoPlaySound("alert.wav");; i seguenti if non saranno più eseguiti?

if (1<2) 
{
   if(2<3)
      {
      if (3<4) PlaySound("alert.wav");  
           { 
            if (X)....
                {
                    if (Y)
                }
            }
       }
}

 
charter:

L'indicatore diventa rosso quando i suoi valori sono in diminuzione e verde quando i valori sono in aumento.


davvero... così semplice) grazie!
 
Stomatolog:
Ciao ragazzi, potete aiutarmi con la mia domanda? Sono nuovo di MQL4, sto scrivendo un EA, ho dovuto scrivereint total=OrdersTotal();total<1 per evitare di aprire un affare su ogni nuovo tick.Come rendere le operazioni aperte su tutte le coppie di valute, dove l'EA è installato. E su una singola coppia di valute si possono aprire più operazioni.

Per non aprire su ogni tick e per ottimizzare l'EA più velocemente, uso spesso questo disegno:

datetime t;                     // переменная для запоминания значения времени
int start()
{
  if (t == Time[0]) return;     // если "старое" время и текущее совпадают, выходим из start
  else t = Time[0];             // иначе присвоим переменной текущее время

In questo modo, quando appare una nuova barra, il codice sarà eseguito una volta sola.

Leggi come usare MagicNumber negli ordini e poi usando totale < 1 permetterà all'EA di aprire un ordine per ogni coppia di valute e per una coppia di valute ma aperto in finestre diverse. Potete vedere un campione qui.

 
lottamer:


dopo che PlaySound("alert.wav"); è stato eseguito, i seguenti if non saranno più eseguiti?

if (1<2) 
{
   if(2<3)
      {
      if (3<4) PlaySound("alert.wav");  
           { 
            if (X)....
                {
                    if (Y)
                }
            }
       }
}

Il tuo codice è sbagliato. Le parentesi di apertura dovrebbero essere prima degli operatori, non dopo.

//+----------------------------------------------------------------------------+
if (1<2) {                                // Если один меньше два и ...
   if(2<3) {                              // ... два меньше три, ...
      if (3<4) PlaySound("alert.wav");    // Если три меньше четыре - врежем рок в этой дыре ... (С), 
                                          // Далее пойдём проверять остальные условия:
      if (4<5)                            // Если четыре меньше пять и ...
      if (5<6) Print("Истина");           // ... пять меньше шесть - верно, блин...
      }
   }
//+----------------------------------------------------------------------------+

Il blocco con Sound` e Print` sarà eseguito solo se 1 è inferiore a 2 e 2 è inferiore a 3. Il suono sarà eseguito se 3 è inferiore a 4.
Ma Print verrà eseguito anche se 4 è inferiore a 5 e 5 è inferiore a 6

 
artmedia70:

Il tuo codice è sbagliato. Le parentesi di apertura dovrebbero essere prima degli operatori, non dopo.

I blocchi Sound` e Print` verranno eseguiti solo se 1 è inferiore a 2 e 2 è inferiore a 3. Il suono sarà eseguito se 3 è inferiore a 4.
Ma Print verrà eseguito anche se 4 è inferiore a 5 e 5 è inferiore a 6



Mi sembra che se 4>5 , e 5<6 al dato ingresso Print sarà ancora eseguito, perché la macchina lavorerà tutti e 3 se in fila indipendentemente dal loro risultato TRU-FOLS - non ci sono COLLECTIONS!
 
ed è possibile derivare una variabile locale per uso globale?
 
lottamer:

Mi sembra che se 4>5 , e 5<6 allora con questa voce Print sarà ancora eseguito, perché la macchina eseguirà tutti e 3 gli if di fila indipendentemente dal loro risultato TRU-FOLS - non ci sono COLLECTIONS!
Se (4<5) è vero, allora viene eseguita la seguente linea: if(5<6), ma ... se (4<5) è falso, allora il prossimo if () con la sua stampa non viene elaborato, e passiamo a una parentesi di chiusura da if (2<3).
 
lottamer:
ma è possibile dedurre una variabile locale per uso globale?
Si può, purché ci si assicuri che la logica non venga violata. Ci possono essere due o più variabili locali (ciascuna dichiarata nella propria funzione) con lo stesso nome di una variabile globale. Bisogna stare attenti e fare attenzione alla loro visibilità.
 
Come posso collegare correttamente un indicatore a un altro tramite iCustom()?
Ho un indicatore in cui tutti gli 8 array di indicatori sono occupati. Come creare correttamente il secondo, in modo che disegni la curva del primo indicatore in 1 array di indicatori?
Entrambi gli indicatori #property indicator_chart_window.
La spiegazione più ovvia, è l'analogo sotto forma di codice dei due indicatori collegati.
Grazie in anticipo!!!
 
Leo59:
Come posso collegare correttamente un indicatore a un altro tramite iCustom()?
Ho un indicatore in cui tutti gli 8 array di indicatori sono occupati. Come creare correttamente il secondo, in modo che disegni la curva del primo indicatore in 1 array di indicatori?
Entrambi gli indicatori #property indicator_chart_window.
La spiegazione più ovvia, è l'analogo sotto forma di codice dei due indicatori collegati.
Grazie in anticipo!!!

Leggi nel buffer dell'indicatore del secondo indicatore il buffer del primo indicatore dal quale vuoi visualizzare la linea.