[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

 
artmedia70:

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 :))

 
drknn:
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.
Questa è una grande idea, dovrei provare. Grazie.
 
artmedia70:
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.
 
Fam:

:о)

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 statica

A 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 più o meno autoesplicativo. Si scopre che se si inventa una variabile statica, i cui valori non vengono persi quando la funzione esce, allora tutte le altre variabili perdiamo i valori su ogni tick? (se START è chiamato su ogni tick)
 
Fam:
È 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.

 
Grazie, è quello che ho fatto. Voglio solo sapere la linea di fondo. Sapete come ottenere un'alta qualità di simulazione e un basso mismatch del grafico? Sembra che non dipenda da me o dal programma, ma dal cattivo tempo (o dal bene, bisogna capirlo). Come può il software non simulare bene, non capisco, il fattore "umano"?
 
ZZZEROXXX:

Temo che lavorando su H1 sarà difficile calcolare la volatilità per una singola candela, dobbiamo pensare a come calcolarla.
L'ampiezza media su 18 barre è chiara
 

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!

 
arrotondato a quanti numeri dopo lo zero? Se i numeri dopo lo zero vengono rimossi del tutto, state cercando di assegnare un valore di prezzo a una variabile intera (int), avete bisogno del doppio