Il mio approccio. Il nucleo è il motore. - pagina 139
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
State tutti convincendo Peter dei benefici dell'OOP?
Stai sprecando il fiato.
Avete ragione, so tutto questo e lo capisco molto bene. Ma a quanto pare Peter tocca alcune corde mentali della mia anima OOP con il suo "non voglio, non voglio", così cado costantemente in queste spiegazioni, discussioni e battibecchi senza fine.
E il motore caricherà i kernel da un file di testo. Non è difficile da fare.
Oh, capisco. Sì, così va meglio. Quindi il vostro kernel è un file di testo - essenzialmente un gruppo di impostazioni per il motore.
No, Vasiliy, tu tendi a drammatizzare tutto)).
C'è un pulsante nel costruttore che, se cliccato, stampa tutti i file.
E il motore caricherà i kernel da un file di testo. Non è difficile da fare.
Scusate l'interruzione, ma mi chiedevo - come dovrebbe essere fatto il refactor? per esempio cambiare i nomi sbagliati o in generale la composizione/posizione degli elementi
Oh, capisco. Sì, così va meglio. Quindi il vostro kernel è un file di testo - essenzialmente un gruppo di impostazioni per il motore.
Sì. Esattamente. Tutte le informazioni necessarie al motore per riprodurre una particolare GUI e lavorare con essa. In questo momento lo sto installando direttamente sul motore, e poi lo renderò caricabile dal file che il costruttore stampa.
Scusate l'interruzione, ma mi chiedevo - come dovrebbe funzionare il refactor? per esempio cambiare i nomi cattivi o la composizione/posizione degli elementi in generale
Questo è tutto nel costruttore. Il codice KIB viene scritto e il file viene ricompilato.
Ecco come lavorare con il costruttorehttps://www.mql5.com/ru/blogs/post/717782
O un altro esempio. Recentemente mi è stato chiesto di modificare un Expert Advisor procedurale in modo che potesse operare simultaneamente su diversi simboli (in esecuzione su un grafico). Lo stile procedurale avrebbe richiesto sforzi lunghi e complessi per farlo commerciare indipendentemente su diversi simboli allo stesso tempo. Al contrario, ho semplicemente messo l'intero codice procedurale in una classe e creato tre esemplari. Ho specificato un set individuale di impostazioni per ciascuno di essi, compreso il simbolo di lavoro, ecc. Il codice ha funzionato correttamente al primo tentativo. Il codice ha funzionato come avrebbe dovuto al primo tentativo. L'utente era soddisfatto.
Ho avuto un esempio simile questa settimana, mi è stato chiesto di fare un Expert Advisor che apre a comprare all'apertura di una barra in un TF e apre a vendere all'apertura di una barra in un altro).
Ma ho riscritto una funzione banale per definire una nuova barra in una classe e ho creato 2 istanze della classe per definire una nuova barra. Ho passato il timeframe del TF come parametro durante l'inizializzazione del costruttore
5 minuti di lavoro, ma è garantito che tutto funzionerà e non ci sarà confusione con i nomi delle funzioni NewBar_TF1() , NewBar_TF2() .... proprio come è conveniente inizializzare dopo le modifiche delle impostazioni da parte dell'utente - cancellare l'oggetto in DeInit(), creare l'oggetto in ONInit()
imho, OOP è conveniente e pratico
Questo è tutto nel costruttore. Il codice KIB viene scritto e il file viene ricompilato.
Ecco come lavorare con il costruttorehttps://www.mql5.com/ru/blogs/post/717782
Sì. Esattamente...
Ecco perché c'è molta confusione con il tuo motore con altri. Date nomi non standard agli elementi del vostro sistema. Non un kernel - ma un file di configurazione autogenerato.
Ma sovrascriverà tutte le modifiche dell'utente che sono negli eventi?
Spiegare ulteriormente.
Ecco perché c'è molta confusione con il tuo motore e perché gli altri si confondono. Date nomi non standard agli elementi del vostro sistema. Non un kernel - ma un file di impostazioni autogenerato.
Quindi il file è il kernel stampato. Ce n'è più di uno.