
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 hai bisogno di un confronto (A > B) usa (A - B) *DIR> 0 per invertire il confronto per una vendita.
Sembra che tu abbia l'idea.
Modifica e pubblica il tuo codice e io o qualcun altro lo commenteremo
Ehi GumRai,
È passato un po' di tempo da quando ho postato un aggiornamento qui, ma ho lavorato al codice e finalmente l'ho finito - doloroso quando si lavora 10 ore al giorno. Tuttavia ho due problemi principali. 1) Non importa cosa faccio, genera un codice di errore: "Unknown ticket XYZ for OrderCloseFunction" e 2) Ho fatto un save-as del file, (chiamato uno USDCAD, un altro EURUSD), con magicnumbers diversi ecc, ma prende ancora solo un trade alla volta - e non tratta le coppie indipendentemente. Infatti, poi crea anche un errore "ticket non valido per OrderCloseFunction".
Ho provato a cercare su Google, ma senza successo. Vi sarei davvero grato se poteste guidarmi nella giusta direzione. Cosa sto facendo di sbagliato?
Molte grazie in anticipo!
Non usare mai OrdersTotal()==0 come condizione per inserire trade
Significa che se un trade è stato aperto manualmente o da un altro EA o dallo stesso EA collegato ad un altro simbolo grafico, solo 1 trade può essere aperto.
Hai la variabile globale BuyTicket, inizializzala a -1
Non fare il loop degli ordini prima della chiusura, non è necessario
Ora, quando si usano variabili dichiarate globalmente per i numeri di ticket ci possono essere problemi se il terminale viene chiuso e riavviato per qualche motivo
Quindi dichiarate una nuova variabile di portata globale
Ho scritto questo velocemente, quindi potrei aver fatto degli errori, ma è abbastanza per darvi l'idea
Grazie mille per questo! La ragione per cui avevo messo il ciclo lì era perché quello che avevo notato era che quando chiudeva la vendita, non attivava l'acquisto per qualche motivo.
Sono andato avanti e ho fatto le modifiche necessarie... ma qualcosa sembra ancora sbagliato. Non sta prendendo nessun trade lungo ora, e genera un codice di errore di ticket non valido, e l'errore OrderClose 4051. Qualche suggerimento su cosa è ancora sbagliato qui?
La cosa strana è che sia nel codice precedente che in quello attuale (solo per la vendita), prendeva i trade ragionevolmente bene (se l'ho implementato solo su un grafico).
Non pensavo che sarebbe stato così difficile haha! Suppongo che mi sbagliavo quando pensavo che fosse una cosa molto semplice e diretta...comprare quando la candela incrocia e apre sopra la MA, chiudere e vendere quando la candela incrocia e va sotto la MA.
Mi dispiace, ma non so davvero cosa stai cercando di fare
Non seleziona alcun ordine. Il codice si compila almeno?
Qui l'else si applica se (OrderCloseTime()==0) è falso
Qui si applica se OrderSelect fallisce, cosa che certamente fa
Mi dispiace, ma non so davvero cosa stai cercando di fare
Non seleziona alcun ordine. Il codice si compila almeno?
Qui l'else si applica se (OrderCloseTime()==0) è falso
Qui si applica se OrderSelect fallisce, cosa che certamente fa
Scusa, è tutta colpa mia. Non ho letto/applicato correttamente i tuoi suggerimenti; grazie mille per avermeli fatti notare. L'ho fatto correttamente qui. Nessun errore generato nel rapporto. L'unica cosa è che ora sta inserendo più ordini di vendita e di acquisto a volte, il che gli impedisce di chiudere gli scambi al momento giusto.
Edit: Per essere precisi, sta uscendo solo allo SL e al TP, non quando il prezzo attraversa l'altro lato della MA. Questo ha qualcosa a che fare con il bool?
Questo non seleziona un trade, per favore segui l'esempio che ti ho dato e fallo correttamente
Mi sento... davvero stupido. lol. Grazie per averlo trovato!
1) Rimangono due cose... ora crea un codice di errore OrderClose 4108. Devo postare di nuovo il codice? È lo stesso di sopra con la correzione che avevi indicato. Però entra ed esce come da regole.
2) E non entra short immediatamente appena chiude la posizione long come mostrato nella foto. La freccia verde verso il basso mostra dove sarebbe dovuto andare short. Ha fatto un acquisto e l'ha chiuso in perdita una volta che ha chiuso sotto la MA gialla. Qui, sarebbe dovuto andare corto. Come posso fare questo loop?
Grazie mille GumRai. Onestamente non sarei arrivato da nessuna parte così vicino senza il tuo aiuto.
Piccolo cambiamento in quanto stava controllando di chiudere un ordine quando non ce n'era uno.
Secondo il codice non c'è motivo che una vendita venga aperta immediatamente dopo la chiusura di un acquisto.
La condizione per uscire da un acquisto non è la stessa di quella per aprire una vendita.
Ricorda che siccome stai controllando solo l'apertura della candela, Close[0] sarà il valore dell'offerta del primo tick ricevuto per la candela.
Piccolo cambiamento in quanto stava controllando di chiudere un ordine quando non ce n'era uno.
Secondo il codice non c'è motivo che una vendita venga aperta immediatamente dopo la chiusura di un acquisto.
La condizione per uscire da un acquisto non è la stessa di quella per aprire una vendita.
Ricorda che siccome stai controllando solo l'apertura della candela, Close[0] sarà il valore dell'offerta del primo tick ricevuto per la candela.
Santo cielo! Ce l'hai fatta! Grazie ancora e ancora GumRai. Sei il migliore.
Non posso inoltrare il test ora, ma una volta che i mercati aprono, penso che dovrei essere in grado di usare questo allora, con le altre coppie, a condizione di avere diversi magic#s sulla demo.