[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 228
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
Tutto dipende dal fatto che questa variabile sia disponibile per tutte le funzioni EA (beh... non tutte, ma alcune di sicuro). Allora la variabile è globale.
Se è usato solo in una funzione, allora è locale.
La domanda è come "in quale acqua mettere i fiori, acqua semplice o zuccherata" ... Mentre indovinavi, i fiori sono diventati una scopa... :))
:о)
Ho più o meno capito queste regole, ma in pratica i miei ordini non hanno funzionato, quindi mentre cercavo il problema, ho provato un sacco di varianti e spostato le variabili in globale, come la statica, ma tutto ha funzionato, anche se ho una sola funzione. Anche se non sono ancora sicuro che sia stata questa la ragione. Sono confuso e ho deciso di chiedere qui. Non hai detto nulla sulle variabili della statica. Forse dovremmo farli così? Non capisco, quando si reinserisce lo start (su un tick, per esempio) le variabili vengono resettate? E la statica no? Se è così, le mie zecche diventano zero?
PS Accidenti, ho iniziato a programmare da vicino, sto scrivendo un grail....., se c'è abbastanza erba...., sembra che io sia un habitué qui ora :))
Se la vostra società di brokeraggio ha spread fluttuanti, allora è meglio usare l'autodeterminazione della dimensione dello spread nella funzione Start dell'EA e impostare lo slippage a tre spread, per esempio. Allora lo slittamento diventerà dinamicamente mutevole.
Provate prima a far dipendere lo slippage dalla volatilità. In un mercato calmo sarà minimo, in un mercato veloce si diffonderà di più.
Temo che quando si lavora su H1 sarà difficile calcolare la volatilità per una singola candela, bisogna pensare a come calcolarla.
:о)
Questa teoria l'ho un po' capita, ma in pratica i miei ordini non hanno funzionato e mentre cercavo il problema, ho provato un sacco di varianti e spostato le variabili in globale come statiche, ma tutto ha funzionato, anche se la funzione è la stessa. Anche se non sono ancora sicuro che sia stata questa la ragione. Sono confuso e ho deciso di chiedere qui. Non hai detto nulla sulle variabili della statica. Forse dovremmo farli così? Non capisco, quando si reinserisce lo start (su un tick, per esempio) le variabili vengono resettate? E la statica no? Se è così, le mie zecche diventano zero?
PS Accidenti, ho iniziato a programmare da vicino, sto scrivendo il graal....., se l'erba basta...., credo di essere un habitué qui ora :))
Una variabile locale è una variabile dichiarata all'interno di qualsiasi funzione. L'ambito delle variabili locali è il corpo della funzione in cui la variabile è dichiarata. Una variabile locale può essere inizializzata con una costante o un'espressione, corrispondente al suo tipo.
Una variabile globale è una variabile dichiarata al di fuori di tutte le funzioni. Lo scopo delle variabili globali è l'intero programma. Una variabile globale non è localizzata a nessun livello. Una variabile globale può essere inizializzata solo da una costante corrispondente al suo tipo (ma non da un'espressione). Le variabili globali sono inizializzatesolo una volta prima dell'esecuzione delle funzioni speciali.
Se il controllo in un programma è dentro una funzione, i valori delle variabili locali dichiarate in un'altra funzione non sono disponibili. Il valore di qualsiasi variabile globale è disponibile da qualsiasi funzione speciale e utente.
Variabile staticaA livello fisico, le variabili locali sono rappresentate nell'area di memoria temporanea della rispettiva funzione. C'è un modo per localizzare una variabile dichiarata all'interno di una funzione nella memoria permanente del programma. Per fare questo, quando si dichiara una variabile, il modificatore static deve essere specificato prima del tipo di variabile:
Le variabili statiche sono inizializzate solo una volta. Ogni variabile statica può essere inizializzata con una costante corrispondente al suo tipo (a differenza di una semplice variabile locale, che può essere inizializzata con qualsiasi espressione). Se non c'è un'inizializzazione esplicita, una variabile statica è inizializzata con zero. Le variabili statiche sono memorizzate in un'area permanente della memoria del programma e iloro valori non vengono persi quando si esce dalla funzione. Allo stesso tempo, le variabili statiche hanno una limitazione inerente alle variabili locali - lo scopo di una variabile statica rimane la funzione all'interno della quale questa variabile è dichiarata, a differenza delle variabili globali i cui valori sono accessibili da qualsiasi punto del programma.https://book.mql4.com/ru/variables/types
È tutto abbastanza chiaro. Si scopre che se inventiamo una variabile statica, i cui valori non vengono persi all'uscita dalla funzione, allora tutte le altre variabili perdono i loro valori ad ogni tick? (se START è chiamato su ogni tick)
Le variabili locali sono reinizializzate ad ogni tick.
Non preoccuparti - usa global per conservare i biglietti e dimenticalo. O fare un array (ordine di contabilità). Tutti gli array sono statici per impostazione predefinita.
Temo che lavorando su H1 sarà difficile calcolare la volatilità per una singola candela, dobbiamo pensare a come calcolarla.
Ciao a tutti!
Potete per favore aiutarmi con questa domanda?
Sto cercando di ottenere il valore esatto di apertura(Open[i]) o di chiusura(Close[i]) della coppia di valute EURUSD con un valore di cinque cifre dopo lo zero, ma in risposta ottengo sempre un valore arrotondato!