MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 104

 
artmedia70:

È divertente. Il nome di Expert Advisor include i nomi delle sue sottocartelle.

Questo aumenta inutilmente la dimensione del nome dell'esperto.

Per esempio: se il nome dell'Expert Advisor è Expert ed è memorizzato in Terminal_directory\MQL4\experts\Orders\Nickname,

allora il nome dell'Expert Advisor non sarebbe Expert, ma Orders\Customer_name\Expert. Se i nomi degli oggetti includono Expert_name e object_name_time, è già superato il numero di caratteri, e l'oggetto sarà emesso a zero prezzo e zero tempo.

Se i nomi degli oggetti includono un nome EA da pulire quando vengono deinizializzati, questo lascia poco spazio per il nome dell'oggetto stesso.

Questo sarà cambiato o rimarrà così?


Da cambiare.
 
Renat:

Guarda nel registro - dice cosa sta scaricando e cosa ha scaricato?


Non scaricare l'aggiornamento della guida

Ora è così

 

Ragazzi, per quanto mi ricordo nelle prime versioni dei terminali una cosa del genere funzionava

extern double sig[3]= {12,0.548,0.21,0.413};

Ma ora genera un errore, cosa c'è di sbagliato?

Seconda domanda

Quando si installa un terminale con la bandiera portatile su una chiavetta, funziona correttamente? Ricordo che prima c'erano problemi con la visualizzazione dei nomi dei conti e con importi astronomici sui conti...

 
VOLDEMAR:

Ragazzi, per quanto mi ricordo nelle prime versioni dei terminali una cosa del genere funzionava

Ma ora genera un errore, cosa c'è di sbagliato?

Seconda domanda

Quando si installa un terminale con la bandiera portatile su una chiavetta, funziona correttamente? Ricordo che c'erano problemi con la visualizzazione dei nomi dei conti e degli importi astronomici sui conti prima...


Viene dichiarato un array di tre elementi, ma vi vengono scritti quattro elementi. Sicuramente un errore. Quando la lista di inizializzazione è grande, è meglio farlo in questo modo:

double sig[]= {12,0.548,0.21,0.413};

Il compilatore lo calcolerà da solo.

E dichiarare un array come parametro di impostazione - come?

 
Scriptong:


Viene dichiarato un array di tre elementi, ma vi vengono scritti quattro elementi. Sicuramente un errore. Quando la lista di inizializzazione è grande, è meglio farlo in questo modo:

Il compilatore farà i conti da solo.


No, non funziona.

 
VOLDEMAR:


No, non funziona


Beh, lo dice in parole povere: non è permesso nelle impostazioni. Un valore costante è previsto :)
 
Scriptong:

Beh, è scritto in parole povere: non è permesso nelle impostazioni. Un valore costante è previsto :)

Non conosco l'inglese ((((, ma ho visto codici in cui molti parametri sono stati inseriti nelle impostazioni tramite ( ; ) ...
 
VOLDEMAR:

Ragazzi, per quanto mi ricordo nelle prime versioni dei terminali una cosa del genere funzionava

Ma ora riceve un errore, cosa c'è che non va?



Anche prima non funzionava. Rimuovere il modificatore extern
 

Ditemi, non capisco le ragioni per cui questo accade. Riferimento:

Событие Deinit генерируется для экспертов и индикаторов в следующих случаях:

-prima discaricare un programma mql4.

Lo scarico di un Expert Advisor collegato a un grafico viene eseguito nei seguenti casi

-chiudendo il terminale (se un Expert Advisor è stato collegato a un grafico);

1) in OnInit l'Expert Advisor crea 400 oggetti grafici (usando le classi attraverso new object)

2) Cancella in OnDeinit (l'operatore delete cancella l'oggetto creato dall'operatore new)

Quando si cancella un EA, tutto va liscio (gli oggetti creati vengono cancellati)

Quando si cambia il TF, se la storia è caricata - tutto va alla grande (gli oggetti creati vengono cancellati, quelli nuovi vengono creati)

Quandosi cambia il TF, se la storia non è caricata per questo TF - questo accade circa 3 volte OnDeinit e OnInit , e rapidamente

(a volte gli oggetti non vengono creati affatto e il terminale non dà alcun errore)

Chiudere e riavviare il terminale causa 400 errori 4200 - oggetto già esistente.

La chiusura del terminale non causa OnDeinit?

Come posso cancellare manualmente 400 oggetti? Aggiungere il pulsante "cancella tutti gli oggetti" dal grafico corrente sicuramente suggerito?

(p.s. Cari sviluppatori, l'ordine di creazione degli oggetti sarà corretto presto (mese)?

per far dipendere l'ordine non dal nome, ma da come gli oggetti vengono creati nel codice)

// alexey_pak grazie, non sapevo che Ctrl + A funziona nella "lista degli oggetti"

 

Colleghi, un messaggio di avvertimento appare sulla compilazione:

possibile uso di una variabile non inizializzata 'PipStep'.

per un pezzo come questo:

      PipStep = NormalizeDouble(InitPipStep * MathPow(PipStepExp, BuyOrders - StartDynStep + 1),0);
      LastBuyPrice = FindLastBuyPrice();
      if(Ask < LastBuyPrice - (PipStep * Point))//для ЭТОЙ строки выдало possible use of uninitialized variable 'PipStep' 

Tutte le variabili sono inizializzate come doppie, cosa c'è di sbagliato?

Motivazione: