Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 103
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
Se sono le 7.43 e non sono andato a letto... Quindi credo che si scriva graal!
No, non c'è bisogno di imprecare così :)) Yusuf mi ha dato il Graal. Sono seduto nelle mie valigie, aspettando la manna dal cielo, andando alle Maldive :))
Quindi mostratemi cosa avete fatto... Nessun telepate qui - sono in vacanza.
Ho caricato il codice generale dell'Expert Advisor, per rendere più chiaro cosa dovrebbe fare... So che è un casino, ma non ho ancora imparato altrimenti =)))
Vi dirò ancora una volta dove è stupido
aprire un ordine pendente: apre un ordine pendente senza quello opposto o un intero gruppo di ordini pendenti in una direzione.
Cancella gli ordini: a volte ok la sera ad un'ora chiaramente specificata, e a volte in un giorno, o non chiude affatto...
Beh, la condizione è :
Se il primo ordine pendente aperto si chiude con un profitto, il secondo viene cancellato immediatamente - dubito di averlo scritto correttamente, ma non posso verificarlo in azione perché non voglio aprire due posizioni opposte=(((((
Quando si cerca l'ultimo ordine chiuso, dovremmo prima trovare l'ultimo chiuso, ma il controllo della chiusura al take dovrebbe essere tolto dal ciclo, altrimenti controllerà la chiusura al take per ogni ordine chiuso e, se è così, ricorderà il tempo del primo ordine chiuso al take nel ciclo e non l'ultimo.
Beh, questa è l'ottimizzazione del codice. Il risultato non cambierà, per come la vedo io. Ci vuole solo più tempo per calcolare. Ho corretto il codice, ma è ancora lo stesso.
Eppure, c'è qualcosa che non va.
Ho cercato di mostrarvi il codice di un EA, so che è un casino, ma non ho mai imparato a farlo in modo diverso)))
Vi dirò ancora una volta dove è stupido
Aprire ordini pendenti: apre o un ordine pendente senza quello opposto o un intero gruppo di ordini pendenti in una direzione.
Cancellazione degli ordini: li cancella ogni volta, a volte ok la sera ad un'ora chiaramente specificata, e a volte in un giorno, o non li chiude affatto...
Bene, la condizione:
Se il primo ordine pendente aperto si chiude con un profitto, il secondo sarà cancellato immediatamente - dubito anche di averlo scritto correttamente, ma non posso controllare nel lavoro, perché non voglio aprire due posizioni opposte=(((((
Rispondere a una domanda con una domanda. Che diavolo è quello:
Decifralo per me, non capisco :)
I controlli per aprire una posizione dovrebbero avvenire dopo il tentativo di aprire una posizione. Cioè
Lo metti dopo aver inviato un ordine.
Il prezzo deve essere superiore o inferiore all'Asc o al Bid per aprire la posizione. È così per il Buy:
if (OOP > Ask)
Beh, questa è l'ottimizzazione del codice. Il risultato non cambierà, per come la vedo io. Ci vuole solo più tempo per calcolare. Ho corretto il codice, ma è ancora lo stesso.
C'è ancora qualcosa che non va.
No, non è l'ottimizzazione del codice. Sta solo cercando esattamente l'ultimo. Una volta che abbiamo completato la ricerca di tutti gli ordini chiusi e trovato l'ultimo ordine chiuso di essi, solo allora dovremmo controllare la chiusura da parte del take e, se è chiuso dal take, solo allora ha senso continuare a cercare il resto.
Se controlliamo se c'è una chiusura all'interno del ciclo, cosa otterremo? Otterremo un errore di logica:
Supponiamo di aver selezionato un ordine che è stato chiuso un anno fa. Il suo tempo sarà comunque superiore a -1, quindi lo controlliamo per chiuderlo al take (viene controllato all'interno del ciclo). Sì, si è chiuso sulla presa... Cosa fa la tua funzione dopo? Giusto - continua a funzionare con quell' ordine chiuso al segno un anno fa. Fammi vedere cos'altro c'è che non va. Appena arrivato a casa...
Era scritto: 2. Se l'ultima posizione aperta si chiude al take, allora chiudete tutto!
Quindi, va così:
Passiamo alla funzione il simbolo che vogliamo controllare, il numero magico e il delta (distanza in pip == differenza tra il prezzo di acquisto e il prezzo di chiusura dell'ordine), come questo:
Non ho controllato questa funzione, l'ho scritta di mio pugno. Quindi, lascerò a voi la ricerca degli errori.
Potete renderlo int e usare i codici di ritorno. Per esempio, se la posizione che state cercando non esiste o esiste, ma è chiusa con una perdita, ritorna -1;
se esiste ed è chiusa con un profitto, ma non entro il delta, ritorna 0;
se esiste ed è chiusa con un profitto e al Take (entro il delta), ritorna 1...
Lo spazio per l'immaginazione è enorme...
Se, d'altra parte, controlliamo la chiusura della presa, cosa otteniamo? Otterremo un errore logico:
Supponiamo di aver selezionato un ordine che è stato chiuso un anno fa. Il suo tempo sarà comunque superiore a -1, quindi lo controlliamo per chiuderlo alla ripresa (è questo controllo all'interno del ciclo). Sì, si è chiuso sulla presa...
Quindi, se facciamo un ciclo su tutti gli ordini, il ciclo si svolgerà comunque attraverso tutti gli ordini. L'ora di chiusura di ogni ordine sarà confrontata con quella selezionata in precedenza. Ma è qui che ci troviamo di fronte a un problema di prestazioni. TakeProfit sarà costantemente controllato nel ciclo, con ogni posizione chiusa, invece che solo l'ultima. Non è così?
Giusto.
Ma c'è Open[], con un prezzo di apertura.
Capito, grazie :)
Quindi, se si fa un ciclo su tutti gli ordini, il ciclo sarà in ogni caso un ciclo su tutti gli ordini. Il tempo di chiusura di ogni ordine sarà confrontato con quello precedente selezionato. Ma è qui che ci troviamo di fronte a un problema di prestazioni. TakeProfit sarà costantemente controllato nel ciclo, con ogni posizione chiusa, invece che solo l'ultima. Non è così?
Quindi, se facciamo un ciclo su tutti gli ordini, il ciclo lo farà comunque su tutti gli ordini. L'orario di chiusura di ogni ordine sarà confrontato con quello precedente selezionato. Ma qui abbiamo un problema di prestazioni. TakeProfit sarà costantemente controllato nel ciclo, con ogni posizione chiusa, invece che solo l'ultima. Non è così?
Questo è un problema tecnico: