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
...
chiama tutti in metodi privati, ma c'è una "mentalità Jedi?" per evitare CheckPointer(m_order)==POINTER_INVALID nel codice sorgente
...
È più probabile che questo non sia un trucco, l'algoritmo deve essere tale che questa parte di codice non viene eseguita se non c'è un ordine.
O forse era inteso in quel modo. Ma è improbabile, se c'è un puntatore, non significa che ci sia un ordine, quindi dobbiamo controllare se c'è un ordine.
e se la memoria non mi inganna, all'inizio dell'anno era possibile disinserire NULL nel registro e ottenere 0, ora dà un errore
Cambiamenti
Forum sul trading, sistemi di trading automatico e tester di strategie
Bug, bug, domande
Kirill Belousov, 2017.12.14 21:34
Tempo di andare in pensione
Cambiamenti
Sì, infatti, ma mi sono ricordato di come lo facevo in MT4, è così che ho deregistrato i puntatori:
2019.09.17 07:52:40.855 tst (EURUSD,H1) 1 : 0
2019.09.17 07:52:40.856 tst (EURUSD,H1) 2 : 1048576
2019.09.17 07:52:40.856 tst (EURUSD,H1) 3 : 0
2019.09.17 07:52:40.856 tst (EURUSD,H1) 1 undeleted objects left
2019.09.17 07:52:40.856 tst (EURUSD,H1) 1 oggetto di tipo A a sinistra
2019.09.17 07:52:40.856 tst (EURUSD,H1) 24 byte di memoria persa
Questo probabilmente non è il caso, l'algoritmo dovrebbe essere tale che questa parte del codice non viene eseguita se non c'è un ordine.
O forse è inteso in questo modo. Ma è improbabile, se c'è un puntatore, non significa che ci sia un ordine, quindi dobbiamo controllare l'esistenza di un ordine.
A seconda del problema, ho già scritto in codice come creare un "oggetto ordine" che guarderebbe esso stesso cosa c'è sul mercato - cerca un ordine nel designer usando un magik, se lo trova lo raccoglie, apre un ordine a un prezzo, il tipo di ordine stesso conta (mercato o pendente), normalizzazione del lotto, riprova ad aprire un ordine se i requotes erano su un tick precedente, dopo un piazzamento di ordine riuscito sul prossimo tick, piazza un sl e così via... tutto questo viene fatto da solo senza alcun intervento dell'"oggetto ordine".
E se l'ordine è stato chiuso, è come se fosse ancora lì per la strategia - in definitiva, la strategia è interessata al profitto dell'ordine (attuale o già chiuso - non importa!) e allostato dell'ordine stesso (non ancora piazzato, attivo o già chiuso)
tutto funziona come previsto, forse hai ragione da qualche parte, ma per ora il codice è ancora in fase di test, i puntatori devono essere controllati, più tardi possiamo provare senza questo controllo... anche se la logica di lavoro implica le seguenti azioni se non c'è tale oggetto.... in linea di principio non rimane molto da rifare tutto agli ordini virtuali, devo ancora pensare ))))
Volevo scrivere quello che avevo prima invece di
era così:
ma ha ricordato come controllare le sostituzioni macro in MQL
2019.09.16 22:57:42.837 tst (EURUSD,H1) a = 1
2019.09.16 22:57:42.837 tst (EURUSD,H1) POINTER_INVALID = 0
2019.09.16 22:57:42.837 tst (EURUSD,H1) NULL = 0
e se la memoria non m'inganna, all'inizio dell'anno era possibile disimpegnare NULL nel registro e ottenere 0, ora viene visualizzato un errore
Cioè il comportamento NULL come se non dovrebbe cambiare in futuro, ma cosa viene sostituito lì al posto di NULL non è chiaro, probabilmente se questa situazione viene controllata ora, come scrittoif(CheckPointer(m_order)==POINTER_INVALID)) ) è così per dire il codice corretto))
E poi c'è questo, per lo zucchero:
Il primo semplice test mostra
che non è zucchero, ma un diverso... sostanza più liquida
Il primo semplice test mostra
che non è zucchero, ma un diverso... sostanza più liquida.
Perché non c'è). Il NULLA non è né qui né lì. Dovreste usare la funzione CheckPointer(). Il puntatore non ha bisogno di essere azzerato da solo - dopo la cancellazione diventa POINTER_INVALID da solo.
Perché non è lì che sei)) Il NULLA non è né qui né lì. Dovreste usare la funzione CheckPointer(). Non avete bisogno di azzerare il puntatore da soli, diventa POINTER_INVALID da solo dopo la cancellazione.
Sono completamente d'accordo. Se leggete gli amministratori, di solito suona così: "Scrivete correttamente i vostri codici
MQL in generale è sempre difficile, nuova costruzione, nuovi problemi, si inizia a scoprire se l'ho usato in modo errato, qui si va a firmare ))))
Il primo semplice test mostra
che non è zucchero, ma un diverso... sostanza più liquida
Caro amico. Dove sono le statistiche dei tuoi lavori da freelance, prodotti sul mercato, pubblicazioni relative alla programmazione? O stai cercando di aprire gli occhi a qualcuno sull'argomento dei puntatori costanti, o facendo balenare la tua conoscenza sull'argomento dei tipi di sostanze...? In futuro, si prega di considerare il contesto degli esempi, piuttosto che cercare di riprodurre un errore del compilatore.
Ho un contesto semplice: se il codice (in questo caso una macro) è scritto con un errore, penso che sia possibile segnalarlo (e dare un esempio per provarlo). E in questo contesto non mi è chiaro cosa c'entrinole statistiche
E in questo contesto non mi è chiaro cosa c'entrino le statistiche.
Mantieni le cose semplici e la gente verrà da te.
;)
SZZY: I tuoi post sono quasi sempre una buona idea, ma la presentazione del materiale, beh, non del tutto con buone intenzioni, naturalmente il tuo business, ma imho, vogliono aiutare - aiutare, vogliono essere intelligenti, beh, spesso si rivela così
Dipende da te, ma aumentare la tua autostima con le risorse online - .... Sono troppo pigro per continuare a scrivere.