Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1685

 
MakarFX #:
Cosa c'è di sbagliato in questo?

sì a tutti, non si adatta al formato domanda-risposta ed è una formattazione stupida, non si può inserire una riga di codice nel testo senza portarla alla riga successiva, non si può citare correttamente un pezzo di codice: l'intero messaggio viene incollato fuori dalla tasca.

 
Nerd Trader #:

Da uno, OrdersTotal restituirà zero quando non ci sono ordini. Ma per qualche motivo.

for ( int i = OrdersTotal() ; i > 0 ; i -- )

dà un ciclo infinito, e quindi >= no.

C'è un'altra piattaforma più conveniente per comunicare su mql?

Questo è il sito degli sviluppatori della piattaforma e del linguaggio MQL.

Dove altro potreste ottenere le risposte più accurate?

E la tua domanda proviene dall'area di incomprensione di come lavorare con gli array.

 
Aleksei Stepanenko #:

il ciclo non è impostato correttamente:

dovrebbe essere così:

Perché? Tutti scrivono con l'uguale, ma è giusto? Perché abbiamo bisogno di un'iterazione del ciclo se le posizioni sono 0?
 
Nerd Trader #:

Da uno, OrdersTotal restituirà zero quando non ci sono ordini. Ma per qualche motivo.

for ( int i = OrdersTotal() ; i > 0 ; i -- )

dà un ciclo infinito e quindi >= no.

s.w. c'è un'altra piattaforma più conveniente per la comunicazione mql?
Perché dà un ciclo infinito? non me ne dà uno, solo che ho mql5
 
No, va bene. Se non ci sono posizioni, allora i=OrdersTotal()-1 sarà uguale a -1. E la condizione di loop i>=0 non sarà eseguita immediatamente. E il programma non entrerà nel ciclo.
 
è maggiore o uguale a, perché anche il primo elemento della matrice deve essere contato, e il suo indice nella matrice è zero.
 
Aleksei Stepanenko #:
è maggiore o uguale a, perché anche il primo elemento della matrice deve essere preso in considerazione, e il suo indice nella matrice è zero.
Oh, giusto, grazie. Ma è una stampella, ovviamente. Proprio come l'intero mql, ovviamente.
 

Ciao!

Le variabili sono dichiarate come segue

input  string startHour ="00:20";
input  string endHour ="23:40";
datetime startTime, endTime;

Nel codice mql4, la linea è come questa

startTime=StringToTime(StringConcatenate(TimeToString(TimeCurrent(),TIME_DATE)," ",startHour));
endTime=StringToTime(StringConcatenate(TimeToString(TimeCurrent(),TIME_DATE)," ", endHour));

Il compilatore mql5 dà l'errore'(TimeToString' - variabile attesa), warning(conversione implicita da 'numero' a 'stringa')

Potresti per favore dirmi come correggerlo?

 
grimc124 #:

...

Potete dirmi per favore come risolvere il problema?

Non duplicare il codice (principio DRY = Don't Repeat Yourself) Utilizzare le funzioni. Per esempio:

datetime SetTime(datetime dtime, string stime) {
    return StringToTime(TimeToString(dtime, TIME_DATE) + " " + stime);
}

Qualsiasi stringa non valida è convertita in tempo zero

 
Artyom Trishkin #:

Questo è il sito degli sviluppatori della piattaforma e del linguaggio MQL.

Dove altro potreste ottenere le risposte più accurate?

La tua domanda rappresenta una mancanza di comprensione di come lavorare con gli array.

OrdersTotal, a 1 ordine restituisce 1 e non 0. Quando ci sono 0 ordini, restituisce 0.

"Questo è un sito web degli sviluppatori della piattaforma e del linguaggio MQL. Dove altro potreste ottenere le risposte più accurate? "

- Solo perché è una risorsa per sviluppatori non significa che sia il posto giusto per farlo, come se ci fossero risorse specificamente progettate per il formato domanda-risposta.