Autoapprendimento del linguaggio MQL5 da zero - pagina 22

 
Реter Konow:
Infatti, la condizione di cui sopra è sempre vera, come 2 = 2. Ecco perché if (l'operatore di condizione) non funziona qui e il compilatore genererà un avvertimento per questo codice.

Ciao Peter! Il compilatore non ha generato alcun avvertimento.

Saluti, Vladimir.

 
MrBrooklin:

Devo aver frainteso qualcosa, visto che c'è una tale reazione.

Ho scritto la seguente condizione nello script New6.mq5: "Per gli ordini pendenti Buy Stop e Sell Stop, applicare la direttiva #define al posto dell'input. Ci permetterà di specificare nel codice dello script i tipi necessari di ordini pendenti, ma non saranno visualizzati nei parametri di input dello script quando viene eseguito. Impostiamo le variabili che definiscono i tipi di ordini pendenti orderType1 e orderType2. Chiamiamo queste variabili "BUY_STOP" e "SELL_STOP".

Per favore, consigliatemi cosa ho fatto di sbagliato nell'implementazione di questa condizione.

Saluti, Vladimir.

Tutto è in ordine. Non c'è essenzialmente nessuna condizione, proprio come non c'è nessuna condizione nell'espressione if (2 == 2). Qui c'è una logica comune e quotidiana. :)
 
MrBrooklin:

Devo aver frainteso qualcosa, perché c'è stata una tale reazione.

Sinceramente, Vladimir.

Il rispettato membro del forumKoldun Zloy ti ha dato una risposta dettagliata. C'era un errore nella macro. Perché hai iniziato a usare le macro? Perché avete bisogno di loro in questo compito? Le macro sono uno strumento potente con cui puoi facilmente ucciderti. Ma la prima cosa da fare è iniziare a usare le macro.

 
MrBrooklin:

Ciao Peter! Il compilatore non ha generato alcun avvertimento.

Saluti, Vladimir.

Presumibilmente avrebbe dovuto generare un avviso che invitava a controllare la condizione. (Il triangolo giallo nella finestra di compilazione).
 
Реter Konow:
Tutto è a posto. In effetti, non c'è nessuna condizione come non c'è nessuna condizione nell'espressione if (2 == 2). Questa è una logica comune, quotidiana. :)

Capisco che per gli esperti di programmazione i miei bloopers sembrino goffi. Forse ho sbagliato a scrivere il codice per me stesso?

Sinceramente, Vladimir.

 
Vasiliy Sokolov:

Tu, rispettato membro del forumKoldun Zloy hai dato una risposta dettagliata. L'errore è nella macro. Perché hai iniziato a usare le macro? Perché avete bisogno di loro in questo compito? Le macro sono uno strumento potente con cui puoi facilmente ucciderti. Ma la prima cosa da fare è iniziare a usare le macro.

Quindi, non ho ancora capito, e ci sono alcune cose su cui lavorare.

Saluti, Vladimir.

 
Реter Konow:
L'idea è quella di dare un avvertimento che inviti a controllare la condizione. (Il triangolo giallo nella finestra di compilazione).

Non dovrebbe, c'è un valore a destra e una sostituzione a sinistra, quindi è corretto.

 
MrBrooklin:

Capisco che per gli esperti di programmazione i miei bloopers sembrano goffi. Forse ho sbagliato a scrivere il codice per me stesso?

Sinceramente, Vladimir.

Hai iniziato i tuoi studi in modo sbagliato. Capite tutto ciò che è scritto nel codice? Tutti gli operatori, parole chiave?

Una domanda successiva sul codice:

Cosa significano queste linee?

if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());
 
Реter Konow:
Presumibilmente avrebbe dovuto generare un avviso che invitava a controllare la condizione. (Il triangolo giallo nella finestra di compilazione).

Controllato qualche altra volta - il compilatore non dà nulla.

Saluti, Vladimir.

 
MrBrooklin:

Capisco che per gli esperti di programmazione i miei bloopers sembrino goffi. Forse ho sbagliato a scrivere il codice per me stesso?

Sinceramente, Vladimir.

Questa condizione non è affatto necessaria. Che ruolo ha? Puoi spiegare?
Motivazione: