Errori, bug, domande - pagina 1132

 
A100:

Nessun errore quando si cerca di cambiare un puntatore dichiarato come const

È permesso dichiarare un costruttore in una sezione privata? Il compilatore non riceve un errore?
 

Così, gli stimati sviluppatori hanno risposto alla domanda:

Squadra disupporto2014.04.16 15:58

Faremo una bandiera di stop, ma non ha molto senso usarla negli indicatori. Gli indicatori non sono destinati a eseguire calcoli super pesanti o in loop in OnCalculate, perché a differenza degli Expert Advisors e degli script, non vengono eseguiti in thread separati. Significa che mettendo in loop il thread dell'indicatore si smette di formare la storia (sincronizzazione, aggiunta di tick, ecc.).
Squadra di supporto 2014.04.16 15:59
Stato:ApertoCompletato
 
Fleder:
È permesso dichiarare un costruttore in una sezione privata? Il compilatore non si lamenta?

Si può, perché questo di per sé non è controverso, e qualsiasi restrizione deve essere giustificata. Un tale oggetto può essere creato all'interno della classe stessa, e un puntatore a tale oggetto può essere creato al di fuori della classe

 
A100:

Si può, perché questo di per sé non è controverso, e qualsiasi restrizione deve essere giustificata. Un tale oggetto può essere creato all'interno della classe stessa, e un puntatore a tale oggetto può essere creato al di fuori della classe

Se si può, perché il compilatore dice che non si può:

 
mql5:
Ora è obbligatorio posizionare i membri statici.

Grazie. Tuttavia, non è chiaro dove dovrebbero essere collocati... I miei primi tentativi di spingerli nella radice, prima della funzione o direttamente accanto alle classi non hanno avuto successo - il tipo di errore è appena cambiato in ridefinizione. Ma va bene, ci riproverò, forse troverò un buon posto.


Fleder:Meglio ancora, cerca di evitare di usarli.

Beh, ditemi anche voi... Come altro immagazzinare tutte queste informazioni, che devono essere calcolate una volta in X (da qualche parte un minuto, da qualche parte una settimana intera), e usare ogni tick in diverse classi? O pensi che sia meglio iniziare a riappacificare diversi array con notizie, livelli di resistenza e calcolare le statistiche per gli ultimi 10000 candlestick ogni tick? :) E in alcuni punti più volte al tick, separatamente per ogni oggetto di classe? Poi, ho il sospetto che correre nel tester per un anno e mezzo non richiederà un'ora, come adesso, ma l'intero anno e mezzo reale :)
 
Lone_Irbis:

Grazie. Tuttavia, non è chiaro dove dovrebbero essere collocati... I miei primi tentativi di spingerli nella radice, prima della funzione o direttamente accanto alle classi non hanno avuto successo - il tipo di errore è appena cambiato in ridefinizione. Ma va bene, ci riproverò, forse troverò il posto giusto.


Beh, dillo anche a me. In quale altro modo posso memorizzare tutte quelle informazioni che devono essere calcolate una volta in X (a volte per un minuto, a volte per un'intera settimana) e utilizzare ogni tick in diverse classi? O pensi che sia meglio iniziare a riappacificare diversi array con notizie, livelli di resistenza e calcolare le statistiche per gli ultimi 10000 candlestick ogni tick? :) E in alcuni punti più volte al tick, separatamente per ogni oggetto di classe? Allora ho il sospetto che correre nel tester per un anno e mezzo non richiederà un'ora, come ora, ma l'intero anno e mezzo :)
Ed è meglio non usare nemmeno un tester.
 
Fleder:

Se si può, perché il compilatore dice che non si può?

Non mi dice

class B {
        B() {}
};
void OnStart()
{
        B *b;
}
Ancora: un tale oggetto può essere creato all'interno della classe stessa, ma un puntatore a tale oggetto può anche essere creato al di fuori della classe
 

Non capisco come scansionare i server quando ci si connette? In precedenza, ho inserito il nome del server e la lista è apparsa, ho aggiunto quelli giusti (immagine 2, ci sono server aggiunti circa quindici giorni fa) Nell'immagine uno non è più la scansione dei server giusti, non posso aggiungere. Cosa non è più possibile o come si fa da soli?


 
Fleder:
Ed è meglio non usare nemmeno un tester.

Sì, e anche il forex è meglio non usarlo affatto. O il computer, se è per questo :) Non è affatto sano.

Comunque, c'è già una correzione. Non è molto bello, ma funziona. La correzione si chiama "Al diavolo la tua OOP". %) Gli errori sono stati eliminati segando tutte le variabili statiche dalle classi, rimuovendo il prefisso statico da esse e impilandole ordinatamente una accanto all'altra.

In generale, non so cosa non piaceva agli sviluppatori delle variabili statiche e perché hanno dovuto rimuovere la funzione di inizializzazione automatica delle variabili, ma se devo, devo farlo. Dovremo usare degli espedienti...

 
Lone_Irbis:

Sì, e anche il forex è meglio non usarlo affatto. O il computer, se è per questo :) Non è affatto sano.

Comunque, c'è già una correzione. Non è molto bello, ma funziona. La correzione si chiama "Al diavolo la tua OOP". %) Gli errori sono stati eliminati segando tutte le variabili statiche dalle classi, rimuovendo il prefisso statico da esse e impilandole ordinatamente una accanto all'altra.

In generale, non so perché agli sviluppatori non piacevano le variabili statiche e perché hanno dovuto rimuovere la funzione di inizializzazione automatica delle variabili, ma se devo, devo farlo. Dovremo usare degli espedienti...

La semplice inizializzazione automatica è stata sostituita dal posizionamento esplicito.

E se si lotta per la perfezione, allora:

1. il modo migliore per fare trading è non fare trading.

2. Il modo migliore per vivere la vita è non nascere.