Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 135
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Buon pomeriggio, se non è troppo difficile, per favore consigliate un principiante:
1) Come dichiarare un array di dimensione uguale al valore di qualche variabile? (se i=7 dichiarare array doppio Muss[7] e così via);
2) Perché un array in una funzione definita dall'utente è considerato dichiarato e usato adeguatamente se la condizione è sempre falsa?
mentre (falso) {
Alert("aaaaaaaaaaaaaaa" );
statico doppio Buf_max [9000000];
static double Buf_min [9000000];}
3) C'è una differenza nella funzione utente e in generale tra un semplice array e un array statico?
Buon giorno, se non è troppo difficile, per favore consigliate un principiante:
1) Come dichiarare un array di dimensione uguale al valore di qualche variabile? (Se i=7 dichiarare array doppio Muss[7] e così via);
...
1) ArrayResize()
una cosa del genere:
se chiamate MarketInfo(Symbol(),MODE_TRADEALLOWED), restituisce - 1=commercio permesso.
Ma se passate il mouse sul simbolo nella panoramica del mercato, apparirà un tooltip con il testo - Trade: Close.
qual è il trucco qui?
davvero non mi permette di commerciare, ma perché MODE_TRADEALLOWED restituisce un valore sbagliato?
Quante volte avete eseguito l'indicatore? Sembra più volte (le ciclicità sono evidenti nei tuoi risultati).
Aggiungete un'altra stampa a deinit con qualche "separatore", impostate una condizione di input o rifatelo nello script in modo che non venga eseguito più di una volta, allora sarà più chiaro.
Grande idea))
L'ho reso più semplice, così:
L'inizio nel diario di bordo è così:
Non c'è nemmeno un ciclo. Non c'è ordine. L'output non è affatto coerente.
Grande idea))
L'ho reso più semplice, così:
L'inizio nel diario di bordo è così:
Non c'è nemmeno un ciclo. Non c'è ordine. L'output non è affatto coerente.
Avete reso le cose un po' più complicate, in fase di test tutto può essere fatto in 1-2 righe, a seconda della variante. È possibile fare tutto nell'Inite. L'ordine di uscita non è stato stipulato.
L'hai reso in qualche modo troppo complicato, nella fase di convalida tutto può essere fatto in 1-2 righe, a seconda della variante. È possibile fare tutto nell'Inite. L'ordine di uscita non è stato stipulato.
Intendi introdurre un flag in modo che i cicli vengano eseguiti una volta e basta? Non smetto di eseguire... È così che funziona:
In sostanza, però, il codice dovrebbe funzionare come in INITA, una volta per tutte. Allora la variabile booleana Status_run sarà immediatamente impostata su false e la condizione if non sarà più eseguita... Ma il mio log non esaurisce l'output per qualche motivo.
Intendi introdurre un flag in modo che i cicli siano eseguiti una volta sola e basta? Non smetto di correre... È così che funziona:
Anche se in sostanza, il codice dovrebbe funzionare come in INITE, una volta e basta. Allora la variabile booleana Status_run prenderà immediatamente il valore false e la condizione if non verrà più eseguita... Ma, per qualche motivo, non ho finito l'output nel log.
Lei ha affermato che i loop danno risultati sbagliati e io le ho offerto un modo per testarlo. Se funziona come volete, allora dovreste farlo secondo il vostro algoritmo, e se non funziona, dovreste cambiarlo durante il controllo.
PS "Status_run" deve essere creato prima di start(), è una variabile globale.
Guru, un consiglio. Ho impostato la variabile bool Flag=true; per iniziare,
Apro un affare
se ( condizione)
{
Opn_S = vero;
Flag=false;
}
C'è una domanda sul flag, se il flag ritornafalso quando viene aperto e c'è questo flag nella condizione di apertura. Per quanto tempo viene mantenuto il vero o falso passato alla bandiera, viene azzerato il giorno dopo?
Guru, un consiglio. Ho impostato la variabile bool=true; per iniziare,
Apro un affare
se ( condizione)
{
Opn_S = vero;
Flag=false;
}
C'è una domanda sul flag, se il flag ritornafalso quando viene aperto e c'è questo flag nella condizione di apertura. Per quanto tempo viene mantenuto il vero o falso passato alla bandiera, sarà azzerato il giorno dopo?
No, ad ogni nuovo tick il valore di Flag sarà vero . https://book.mql4.com/ru/variables/types
O dichiarare la variabile globalmente - per esempio all'inizio di un programma, fuori da tutte le funzioni.
Oppure rendere la variabile statica - static bool flag=true; .
No, ad ogni nuovo tick il valore di Flag sarà vero . https://book.mql4.com/ru/variables/types
O dichiarare la variabile globalmente - all'inizio del programma, fuori da tutte le funzioni.
Oppure rendere la variabile statica - static bool flag=true; .