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
[Eliminato]  
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.
[Eliminato]  
è 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.