Autoapprendimento del linguaggio MQL5 da zero - pagina 31

 
Valeriy Yastremskiy:

Esattamente logico, non stringa, poiché c'è un I.)))) in mezzo.

Quindi, non ho capito bene la sua domanda. Mi è sfuggito il punto quando hai chiesto "... che tipo di variabile è questa...". Sto imparando. Grazie per il suggerimento!

Saluti, Vladimir.

 
Igor Makanu:

questa è una condizione completamente diversa da quella di cui sopra, e non si tratta della differenza visiva

Si tratta dell'esecuzione simultanea della parte sinistra dell'"AND" e della parte destra dell'"AND".

Ciao Igor, ho già capito qual era l'errore. Grazie per il suggerimento!

Saluti, Vladimir.

 
MrBrooklin:

Ciao, Igor! Ho già capito qual è stato l'errore. Grazie per il suggerimento!

Saluti, Vladimir.

Ieri Vasily Sokolov ha dato consigli su come studiare la lingua, e l'accento principale era sulla comprensione delle funzioni

questo è corretto e pratico - accelera lo sviluppo, permette di dividere il compito in blocchi, permette di riutilizzare il codice....

Ma, imho, è necessario imparare prima come elaborare le condizioni logiche, è solo una questione di tempo per trovare una funzione pronta definita dall'utente o utilizzare le funzioni standard di MQL

Ma creare correttamente le condizioni logiche, così come formalizzare il problema, che è la stessa cosa, è più importante.


Gli errori logici sono i peggiori - tutto funzionerà, ma quando e dove andrà male... non lo troverete ))))


bene e sul sabotaggio, se sulle condizioni, scrivere la condizione di intersezione di 2 MA, anche se tutti i forum tematici sono pieni di questa domanda e risposta, ma succede spesso che una domanda così semplice per un uomo, può non essere così facile da formalizzare in forma di condizioni logiche ;)


UPD: Ciao!

 

Ancora una volta vorrei ringraziare Valery e Igor per avermi aiutato a capire come funziona il tipo di dati bool usando un esempio così semplice.

Saluti, Vladimir.

 
Igor Makanu:
... Bene e a proposito, se sulle condizioni, scrivi la condizione di intersezione di 2 MA, anche se tutti i forum tematici sono pieni di questa domanda e risposta, ma succede spesso che una domanda così semplice per una persona può non essere così facile da formalizzare in forma di condizioni logiche ;)...

Lo proverò sicuramente, ma un po' più tardi. Sono in quarantena con l'influenza e sento che la mia testa non digerisce molto bene le nuove informazioni.

Saluti, Vladimir.

 
Aliaksandr Hryshyn:
Domanda di prova:
"abbastanza tempo" - che tipo di variabile può essere questa in modo che non ci siano avvertimenti del compilatore?

Ragazzi, non dite cazzate. Non prendere Brooklyn da parte. Non concentratevi sui tipi.

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b)
     {
      Print("я выучу язык MQL 5");
     }
  }

Il codice funziona bene. Perché a livello di kernel, viene definita una funzione di confronto delle stringhe che restituisce true se le stringhe sono uguali e false altrimenti. Quando scriviamo a != b, viene chiamata la funzione che confronta le due stringhe tramite il letterale !=. A proposito, sta all'utente definire una funzione di confronto per i propri tipi di utente, e poi lavoreranno in modo simile. Quindi, non si tratta di tipi, ma di nuovo di funzioni.

Ma nonostante sia eseguito correttamente, il codice è internamente incoerente. In realtà l'autore voleva esprimere che "se ho abbastanza tempo" e "abbastanza pazienza", il risultato sarà "imparerò MQL5". Infatti, il risultato è che un valore non deve essere uguale a un altro per imparare la lingua.

 
Vasiliy Sokolov:

Ragazzi, non dite cazzate. Non prendere Brooklyn da parte. Non concentrarsi sui tipi.

Il codice funziona molto bene. Perché a livello di kernel, viene definita una funzione di confronto delle stringhe, che restituisce vero se le stringhe sono uguali e falso altrimenti. Quando scriviamo a != b, viene chiamata la funzione che confronta due stringhe tramite il letterale !=. A proposito, sta all'utente definire una funzione di confronto per i propri tipi di utente, e poi lavoreranno in modo simile. Quindi, non si tratta di tipi, ma di nuovo di funzioni.

Ma nonostante sia eseguito correttamente, il codice è internamente incoerente. In realtà l'autore voleva esprimere che "se ho abbastanza tempo" e "abbastanza pazienza", il risultato sarà "imparerò MQL5". Infatti il risultato è che un valore non deve necessariamente essere uguale a un altro per imparare la lingua.

Ciao Vasily! Grazie per il vostro supporto e le spiegazioni chiare! Comunque grazie a tutti voi per aver condiviso la vostra conoscenza con me. Sono molto importanti per me, soprattutto in questa fase!

Sinceramente, Vladimir.

 
MrBrooklin:

Ciao Vasily! Grazie per il vostro sostegno e per il chiarimento! Grazie comunque a tutti quelli che hanno condiviso le loro conoscenze con me. Sono molto importanti per me, soprattutto in questa fase!

Ora mi sento meglio. Continueremo dopo.

 
Vasiliy Sokolov:

Riprenditi. Continueremo dopo.

Grazie!

Sinceramente, Vladimir.

 
Vasiliy Sokolov:
"... Tuttavia il codice, anche se eseguito correttamente, è internamente incoerente. In realtà l'autore voleva esprimere che "se ho abbastanza tempo" e "abbastanza pazienza" il risultato sarà "imparerò MQL5". Infatti, il risultato è che un valore non deve essere uguale a un altro per imparare la lingua".

Prima c'era questa versione della sceneggiatura:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b && b!=a)
     {
      Print("я выучу язык MQL 5");
     }
  }
//+------------------------------------------------------------------+

in cui ho usato un "AND" logico. Poi ho guardato che nella condizione sarebbe sufficiente per stampare "Imparerò MQL5" espressione a!=b. In breve, non sono arrivato al cuore della questione, che mi è stata suggerita da Valery e Igor.

Saluti, Vladimir.

Motivazione: