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
Chiedo ai moderatori di mettere tutte le discussioni in un thread separato. Ci sono probabilmente dozzine di thread di questo tipo che discutono i vantaggi di OOP.
Un'altra domanda: qual è la differenza tra dichiarare una variabile, ottenere/creare un puntatore, creare un'istanza di un oggetto. Non è la differenza, ma in quali casi è meglio usare. Per esempio, è sufficiente dichiarare una variabile per aprire una posizione.
E in quali casi è meglio usare il puntatore, e in quali casi non possiamo fare a meno dell'istanza dell'oggetto.
Quali sono i pro e i contro di un metodo o di un altro?
1. Se un oggetto è nello scope globale, è un oggetto statico. Si trova nella memoria statica ed esiste finché esiste il programma.
Il suo costruttore viene chiamato prima della chiamata della prima funzione del programma. Il distruttore è chiamato dopo OnDeinit().
Per esempio, così:
O anche così:
Sarà distrutto all'uscita dal blocco. Quando viene distrutto, viene chiamato il distruttore.
Poiché la dimensione dello stack è solitamente limitata, oggetti molto grandi non possono essere messi nello stack.
Esempio:
In questo esempio, vengono create due variabili. Un oggetto della classe MyClass nell'heap.
E la variabile pObject è un puntatore a MyClass. A questa variabile viene assegnato l'indirizzo dell'oggetto nella memoria dinamica.
Quando si esce dalla funzione, la variabile pObject viene distrutta, ma l'oggetto rimane nella memoria dinamica.
Per poterlo cancellare, il suo indirizzo deve essere memorizzato da qualche parte.
Quando vengono creati e distrutti, vengono chiamati anche il costruttore e il distruttore.
Le variabili dinamiche richiedono tipicamente più tempo per accedere rispetto alle variabili locali.
Dovreste tenere conto di tutto questo quando create un oggetto.
1. Se un oggetto è nello scope globale, è un oggetto statico. È messo in memoria statica ed esiste finché esiste il programma.
...
È corretto supporre che con questa opzione
senza considerare l'avvertimento del compilatore, la posizione può aprirsi con un numero magico non uguale a 123 ?
Cioè, un nuovo oggetto sarà creato nella funzione OnTick e il mago non sarà uguale a 123 in esso.
È corretto supporre che con questa opzione
senza considerare l'avvertimento del compilatore, la posizione può aprirsi con un numero magico diverso da 123 ?
Cioè, un nuovo oggetto sarà creato nella funzione OnTick e il mago non sarà uguale a 123 in esso.
SetExpertMagicNumber
È corretto supporre che con questa opzione
senza considerare l'avvertimento del compilatore, la posizione può aprirsi con una magia non 123 ?
Cioè, un nuovo oggetto sarà creato nella funzione OnTick e non avrà un MagicNumber di 123.
Sì, è corretto. Sono due oggetti diversi. Poiché l'oggetto locale in OnTick ha lo stesso nome dell'oggetto globale, solo esso può essere accessibile nella funzione OnTick. L'oggetto globale è fuori portata. Pertanto, per l'oggetto commerciale locale, il MagicNumber non è ancora stato impostato.
È corretto supporre che con questa opzione
senza considerare l'avvertimento del compilatore, la posizione può aprirsi con una magia non 123 ?
Cioè, un nuovo oggetto sarà creato nella funzione OnTick e il mago non sarà 123 in esso.
È esattamente lo stesso che con le variabili.
E concentrarsi:
Perché questoSetExpertMagicNumber è necessario in primo luogo?
Imposta un numero magico all'oggetto della classe commerciale. Ci può essere più di un oggetto di classe CTrade per l'intero programma come si fa ora in kodobase. Questo è un oggetto. Questo oggetto viene utilizzato per eseguireoperazioni di trading. Non c'è bisogno di creare un oggetto per tutto il programma e resettarlo ogni volta che un nuovo mago, lo slittamento e altri parametri che sono impostati durante l'inizializzazione devono essere cambiati. È possibile creare un oggetto di trading separato per ogni simbolo scambiato, impostare i parametri necessari per esso secondo le proprietà del simbolo, a cui appartiene questo specifico oggetto della classe CTrade, e scambiare facilmente ottenendo un puntatore all'oggetto necessario della classe di trading necessaria dal simbolo necessario, senza sovrascrivere i parametri impostati in quello.
Per lavorare con un altro mago, si può definire un oggetto commerciale separato con impostazioni appropriate. Ci possono essere diversi maghi in un EA.
Tutto dipende dalla comprensione di cosa e come lo usiamo.
Imposta una magia per un oggetto della classe commerciale. Non ci può essere un solo oggetto della classe CTrade per tutto il programma come si fa di solito in kodobase. Questo è un oggetto. Questo oggetto viene utilizzato per eseguire operazioni di trading. Non c'è bisogno di creare un oggetto per tutto il programma e resettarlo ogni volta che un nuovo mago, lo slittamento e altri parametri che sono impostati durante l'inizializzazione devono essere cambiati. È possibile creare un oggetto di trading separato per ogni simbolo negoziato, impostare i parametri necessari per esso secondo le proprietà del simbolo, a cui appartiene questo specifico oggetto della classe CTrade, e negoziare facilmente ottenendo un puntatore all'oggetto necessario della classe di trading necessaria dal simbolo necessario, senza sovrascrivere i parametri impostati in quello.
Per lavorare con un altro mago, si può definire un oggetto commerciale separato con impostazioni appropriate. Ci possono essere diversi maghi in un EA.
Tutto dipende dalla comprensione di cosa e come lo usiamo.
In questo caso, è
SetExpertMagicNumber Устанавливает идентификатор эксперта
descrizione errata?
La mia comprensione era che se impostato per EA, allora qualsiasi ordine/posizione dovrebbe avere questa magia. ((