Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 660
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
questo codice funziona, fatelo per analogia:
Ha apportato modifiche minime - rimosso l'analisi OrderMagicNumber() e aggiunto tre log.
Il risultato, purtroppo, è lo stesso - vedi pr. - Nella prima schermata, c'è un inizio (non è chiaro perché non inizia con 0), e nella seconda, dove inizia con 124 a 99.
int NumberOfOrders()
{
int i,res=0,k=OrdersTotal(); string sy=Symbol();
for(i=0; i<k; i++)
{
log("k = " + k +"; ");
log("i = " + i +"; ");
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if((OrderSymbol()==sy)) res++; //if((OrderMagicNumber()==magic_) && (OrderSymbol()==sy)) res++;
log("res = " + res +"; ");
}
}
return(res);
}
Questo codice compila davvero senza errori? Non ci credo...
(non è chiaro perché non inizia con 0), e sul secondo posto dove viene da 124 a 99.
poiché il terminale ha "mangiato" una parte di Print(), l'output in MQL ha la priorità più bassa, aggiungete Slepp(123) prima di Print() e non ci saranno salti
anche se secondo il log stai solo stampando il contatore del ciclo
poiché il terminale "mangia" la parte di Print(), in MQL l'output ha la priorità più bassa, aggiungete Slepp(123) prima di Print() e non ci saranno salti
anche se secondo il log stai solo stampando il contatore del ciclo
La tua risposta mi dà l'impressione che ho "mangiato" - semplicemente non l'ha messo nel log perché c'erano cose più importanti, ma il mio vero compito era quello di passare attraverso tutti gli ordini e cancellarne alcuni e ho notato che l'EA stava saltando alcuni di essi (questo non stava emettendo informazioni con la priorità più bassa). Ho semplificato il compito per capire il motivo e come risultato abbiamo solo l'output nel log, ma vedo ancora ordini omessi, cioè l'Expert Advisor salta su diversi ordini. La priorità dell'ordine più basso spiega bene l'output di partenza non da 0 ma come può spiegare l'output incoerente quando salta, per esempio, da 124 a 99.
Se per "mangiato" intendiamo qualcos'altro, vorrei capire cosa?
È fantastico!
Romano!
Io, per esempio, sono un trader di successo con 20 anni di esperienza.
Non capisco perché hai bisogno di "la differenza tra le chiusure delle coppie che hai inserito, euna media mobile di esse".
Inoltre, sapete come costruire una media mobile di queste differenze? - Fantastico!
Puoi semplicemente disegnare la media mobile delle quotazioni? - Anche no?
Allora qual è il problema?
la differenza delle medie ravvicinate non è uguale alla differenza delle medie ravvicinate, ahimè e ah
Quali sono i dubbi? Comunque, nessun errore in MQL4.
1. Impara come inserire il codice.
Ho fatto modifiche minime - rimosso l'analisi OrderMagicNumber() e aggiunto tre log.
Il risultato, purtroppo, è lo stesso - vedi sopra. - Nel primo screenshot l'inizio (non so perché non inizia con 0), e nel secondo - il posto dove inizia con 124 a 99.
2. log è un logaritmo?
Nota
Potete usare log()invece di MathLog().
Ho anche trovato un grave inconveniente, ci sono troppe chiamate CopyClose()
Potete dirmi come copiare le quotazioni da un array di coppie di valute in un ciclo?
Sembrerebbe un array doppio, ma MQL non lo supporta, come %.
Cosa intendete per "doppia matrice"?
Cosa intendete per 'doppio array'?
Beh, bidimensionale.
Beh, bidimensionale.
Dove sta scritto che CopyClose copia i dati in un array 2D? Perché è stato menzionato l'array 2D in primo luogo?
Dove sta scritto che CopyClose copia i dati in un array 2D? Perché è stato menzionato l'array bidimensionale?
Perché ho bisogno di memorizzare array di citazioni in un array.
Per copiarlo una volta in un ciclo e poi eseguire i calcoli usando ArrayCopy, ma non CloseCopy