Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 509
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
Salve, potreste dirmi perché in questo ciclo i miei ordini limite vengono cancellati solo se dopo aver piazzato un ordine limite un altro ordine limite non è stato piazzato sulla barra successiva, cioè un ordine limite viene cancellato solo se viene piazzato e poi seguito da due barre in cui non è stato piazzato alcun ordine limite
Quale ordine avete scelto qui?
E quale ordine ha scelto qui?
Ho avuto l'errore, invece di OrderTicket() ho sostituito anche una variabile ticket a cui è stato assegnato OrderSend, ancora non cancella nulla, ma come faccio a impostare il ciclo per passare attraverso gli ordini limite e cancellare quelli che sono rimasti sulla 2a barra?
Vedo l'errore, ho anche sostituito una variabile per OrderTicket() con ticket OrderSend, ancora non cancella nulla, ma come faccio a configurare il ciclo per passare attraverso gli ordini limite e cancellare quelli che sono rimasti sulla 2a barra?
Questo è ottimale, almeno è così che ho imparato mql
Trovate un EA in kodobase che soddisfa approssimativamente le vostre esigenze, guardate il codice e se il codice è grande e non chiaro, cercate il prossimo.
Dopo aver trovato un codice più comprensibile, si inizia a studiarlo e a modificarlo, in modo da capire rapidamente come funziona
Beh, sì, è ovvio, ma non è buono. Non è bello infilare parametri di input in una classe.
Tuttavia, questi valori devono in qualche modo arrivarci )). Dopo tutto, il più delle volte il lavoro della classe si basa sui valori specificati dall'utente. Ma per qualche ragione non vuoi farlo. Non vi appariranno magicamente.
Di solito, i parametri di input nella fase di inizializzazione del programma sono trasferiti in una struttura speciale. Il più delle volte questi valori sono preprocessati (almeno, controllati per la correttezza). Quando viene creata una nuova istanza della classe, le viene passato un collegamento a questa struttura. Qual è l'inconveniente qui?
Tuttavia, questi valori devono in qualche modo arrivarci )). Dopo tutto, il più delle volte il lavoro della classe si basa sui valori specificati dall'utente. Ma per qualche ragione non vuoi farlo. Non vi appariranno magicamente.
Di solito, i parametri di input nella fase di inizializzazione del programma sono trasferiti in una struttura speciale. Il più delle volte questi valori sono pre-elaborati (almeno, controllati per la correttezza). Quando viene creata una nuova istanza della classe, le viene passato un riferimento a questa struttura. Qual è l'inconveniente qui?
L'inconveniente è solo nella necessità di passare questi valori ogni volta quando si crea un oggetto. Sono identici ogni volta. Va bene, lo creerò attraverso il costruttore ma è una soluzione privata. Il costruttore di default di un EA potrebbe contenere tali parametri, mentre sono molto diversi per un altro EA.
Forse la soluzione è fare una classe completamente diversa i cui metodi restituiranno i valori dei parametri. Poi avrei bisogno di inizializzare questa nuova classe solo una volta. E nella classe originale, quando si crea un oggetto (anche nello stesso costruttore), si richiedono i valori dei parametri della nuova classe.
L'unico inconveniente è la necessità di passare questi valori ogni volta che un oggetto viene creato. Sono gli stessi ogni volta. Va bene, lo farò attraverso il costruttore, ma è una soluzione privata. Il costruttore di default di un EA può avere questi parametri, mentre il costruttore di default di un altro EA è completamente diverso.
Forse la soluzione è fare una classe completamente diversa i cui metodi restituiranno i valori dei parametri. Poi avrei bisogno di inizializzare questa nuova classe solo una volta. E nella classe originale, quando si crea un oggetto (anche nello stesso costruttore), si richiedono i valori dei parametri della nuova classe.
Sembra che tu stia eroicamente risolvendo un problema inventato.
Non ho letto attentamente il problema, ma qualcosa mi ha colpito che era lo stesso rastrello che stavo calpestando e tu mi hai aiutato a toglierlo di mezzo. Non è vero?
Sembra che tu stia eroicamente risolvendo un problema inventato.
Sì, è quello che ho suggerito sopra, in effetti lo stesso modo in cui hai fatto tu con la struttura, solo più complicato.
-> E nella classe di origine, quando si crea un oggetto (anche nello stesso costruttore), richiedere i valori dei parametri dalla nuova classe.
Ma in generale dovrei passare un riferimento a questa classe ausiliaria alla classe sorgente. In breve, sì, lo stesso che con la struttura.
Creare una classe contenitore, attraverso la quale creare ulteriormente tutti questi oggetti. Poi questi parametri possono essere inizializzati una volta in questa classe contenitore. Questo è quello che penso di fare.