[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.
Motivazione: