[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 173

 
TarasBY:

Questa condizione cambia in qualche modo nel ciclo:

...Se "no", perché metterlo dentro il ciclo?


Il succo è questo:

Nei parametri esterni seUseFiltrMa = TRUE, la condizione A > B deve essere presa in considerazione, ma seUseFiltrMa = False, la condizione non viene presa in considerazione. Questa condizione(A > B) non appare altrove nel codice. Ho messo questo filtro all'interno del ciclo, dato che anche prima era nel ciclo. Dopo tutto, abbiamo un array di fette. Il ciclo seleziona un numero di sequenza di una maschera (il suo indice).

A > B, secondo il mio codice, si presenta così:

MA(g_maHigherTF[0]) > MA(g_maHigherTF[1])

Vedete, tutto va a posto qui, e potete vedere la ragione del ciclo.

 
hoz:


Bene, il succo è questo:

Nei parametri esterni seUseFiltrMa = TRUE, la condizione A > B deve essere presa in considerazione, e seUseFiltrMa = False, la condizione non viene presa in considerazione. Questa condizione(A > B) non appare altrove nel codice. Ho messo questo filtro all'interno del loop, dato che prima era anche nel loop. Dopo tutto, abbiamo un array di fette. Il ciclo seleziona un numero di sequenza di un carro (il suo indice).

A > B, secondo il mio codice, si presenta così:

Vedete, qui tutto va al suo posto, e potete vedere la ragione del ciclo.

Non ho ancora visto nessuna condizione di loop che cambi la condizione: if (A > B).

Ci possono essere SEMPRE molte soluzioni, e tu hai bisogno del modo in cui sei arrivato...

 
TarasBY:

Non vedo ancora nessuna condizione di loop che cambi la condizione: if (A > B).

Ci possono essere SEMPRE molte soluzioni, e tu vuoi che il modo in cui pensi...


Non hai bisogno di questo ciclo... Non farci caso. Devi solo inserire una condizione come ho scritto sopra:

hoz:

Nei parametri esterni, seUseFiltrMa = TRUE, la condizione A > B deve essere presa in considerazione, e seUseFiltrMa = False, la condizione non viene presa in considerazione.

SeUseFiltrMa = False, allora la condizioneA > B viene saltata! Questo è tutto. Non hai bisogno di nient'altro! Non prestare attenzione ai loop,... è una lunga storia, cosa viene da dove. C'è solo un blocco. E ho descritto il compito.
 
hoz:


Il succo è questo:

Nei parametri esterni seUseFiltrMa = TRUE, la condizione A > B deve essere presa in considerazione, e seUseFiltrMa = False, la condizione non viene presa in considerazione. Questa condizione(A > B) non appare altrove nel codice. Ho messo questo filtro all'interno del loop, dato che prima era anche nel loop. Dopo tutto, abbiamo un array di fette. Il ciclo seleziona un numero di sequenza di una maschera (il suo indice).

A > B, secondo il mio codice, si presenta così:

Vedete, tutto sta andando a posto qui, e possiamo vedere la ragione del ciclo.

if(UseFiltrMa == TRUE&& А > B )

  {

     //  

   }

else

  {
   //

  } 
 

pako:

if(UseFiltrMa == TRUE&& А > B )

  {

     //  

   }

else

  {
   //
  }


Ecco come la vedo io. Non si potrebbe accorciare? Implementarlo in una sola linea... In caso contrario, dovremo allungare il codice.

Per esempio, faccio spesso un inserimento come questo prima della funzione di ordine senza perdita:

if (UseBU)
{
  // Код функции перевода в БУ
}

Ma in questo caso, quando la variabileUseBU è impostata su False, non c'è bisogno di eseguire ulteriormente la funzione. Ecco perché lì è più facile e più breve. Ma qui è diverso. Ulteriori condizioni per codice obbligatorio. Questo è il motivo per cui penso.

 
hoz:


Questo è il modo in cui lo capisco. Non si potrebbe accorciare? Può essere implementato in una sola linea. In caso contrario, dovrete allungare il codice.

Per esempio, faccio spesso un inserimento come questo prima della funzione di ordine senza perdita:

Ma in questo caso, quando la variabileUseBU è impostata su False, non c'è bisogno di eseguire ulteriormente la funzione. Ecco perché lì è più facile e più breve. Ma qui è diverso. Ulteriori condizioni per codice obbligatorio. Questo è il motivo per cui penso.

In breve, così:

if((UseFiltrMa == TRUE && А > B) || UseFiltrMa == FALSE)
{
  if(..........................
 
borilunad:
Chi sa, è possibile con le variabili globali Hour(), Minute(), Seconds() controllare a mezzanotte (0.00) il cambiamento nell'indicatore DailyPivotPoints ai nuovi livelli RR e altre linee dall'EA? Ho fatto prima direttamente nell'indicatore con Hour(), Minute(), Seconds(), e funzionava senza bisogno di compilare ogni notte. E recentemente si è fermato, forse per aver cambiato la bild? Grazie!

Boris, prova a fare questa domanda nel thread dei professionisti.
 
hoz:

Boris, prova a fare questa domanda nel thread dei professionisti.

Grazie, Victor! Ti è venuta in mente la mia versione breve?

if((UseFiltrMa == TRUE && А > B) || UseFiltrMa == FALSE)
{
  if(..........................
 
granit77:
Prova a deselezionare l'opzione "Disable EA on Profile Switch" nelle impostazioni per vedere se aiuta.

Grazie. - Farò un tentativo. Sfortunatamente, ho notato la risposta in ritardo - i mercati sono fuori per il fine settimana. E non posso resettare le mie impostazioni tramite init() in entrambi i casi. Anche se, in teoria, dovrebbero.

Non sono sicuro del perché MT resetta le sue impostazioni. Non importa quale sia l'orizzonte temporale; se ho impostato i parametri nelle impostazioni, dovrebbero (in teoria) essere salvati in qualsiasi TF.

 
Buon pomeriggio a tutti. Potete dirmi come copiare le transazioni in Metatrader 4. In modo che aprendo un trade su un terminale si possa ottenere un trade aperto su un altro.
Motivazione: