Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 140

 
DC2008:

1. Se si omettono i controlli, si può fare così:

2. Sì

3. La domanda non è chiara.

1. A cosa servono gli assegni? Se senza di loro si sprecherebbero meno risorse?

2. Per esempio, in mql4 ci sono nomi di variabili:

int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip=-1,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   MA_1_t,                          // Значен. МА_1 текущее
   MA_2_t,                          // Значен. МА_2 текущее 
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool 
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell

In quale sezione di mql5 elencare queste variabili che sono sopra nel codice che sono in mql4 in int start?

Le variabili globali sono impostate prima dell'inizio dell'int. Tutto il codice EA è preso dal tutorial quihttps://с.mql4.com/book

 
forexman77:

1. A cosa servono gli assegni? Se senza di loro si sprecherebbero meno risorse?

2. In mql4 ci sono nomi di variabili per esempio:

In quale sezione di mql5 elencare queste variabili che sono sopra nel codice che sono in mql4 in int start?

Le variabili globali sono impostate prima dell'inizio dell'int. L'intero codice dell'Expert Advisor è preso dal tutorial quihttps://с.mql4.com/book.

1. Per un trading reale affidabile dell'Expert Advisor.

Queste sono variabili locali e potete copiarle nella funzione OnTick, che sostituisce la start() della 4.

Tuttavia, vorrei avvertirvi: le funzioni di trading NON devono essere trasposte una ad una!

 
DC2008:

1. Per un funzionamento affidabile di EA sul reale.

2. queste sono variabili locali e potete copiarle nella funzione OnTick, che sostituisce start() dei quattro.

Tuttavia, vorrei avvertirvi che le funzioni di trading NON devono essere copiate da una all'altra!

Vuoi dire che alcune variabili sono contate diversamente in cinque? Mi dispiace, non so ancora nulla di mql5, quindi non posso capirti completamente. Potresti farmi un esempio del perché non si possono trasferire funzioni da mql4 all'altro? C'è un ramo del forum per dummies?)

Sto cercando di inserire il codice:

datetime iTimeMQL4(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}

Vedo errori in void OnTick():

TFMigrate' - funzione non definita

conversione enum implicita

Ho provato gli stessi errori in int OnInit(). Cosa sto facendo di sbagliato?

In mql5 mettiamo le bandiere, i ticket, i lotti di stop e di profitto, ecc. in variabili globali che devono essere memorizzate al di fuori del codice principale, cioè il principio è lo stesso che in mql4.

 
forexman77:

Vuoi dire che alcune variabili sono contate diversamente in 5? Mi dispiace, ma non so nulla di mql5 e non riesco a capirti. Potresti farmi un esempio del perché le funzioni di mql4 non possono essere trasferite l'una all'altra? C'è un ramo su questo forum per i completamente idioti)?

Dovresti rinunciare a mql4 e non tradurre "stupidamente" riga per riga, ma iniziare a "ballare dai fornelli"! Ci sono molti esempi e Expert Advisors già pronti nel kodobase e nella consegna standard di MQ per i cinque. Se questa è "matematica superiore" per te, allora ordina un EA nella sezione "Lavoro".

Ora le risposte alle vostre domande:

  1. Copiate la funzione TFMigrate dall'articolo, è all'inizio.
  2. Per quanto riguarda le variabili, il principio è lo stesso.
 
DC2008:

Non si può iniziare a "ballare dal tubo di stufa" invece di tradurre "stupidamente" riga per riga! Ci sono molti esempi e EA pronti all'uso in kodobase e nel pacchetto standard MQ per cinque. Se questa è "matematica superiore" per te, allora ordina un EA nella sezione "Lavoro".

Ora le risposte alle vostre domande:

  1. Copiate la funzione TFMigrate dall'articolo, è all'inizio.
  2. Per quanto riguarda le variabili, il principio è lo stesso.
Sto cercando di mettere la tua funzione
int HourMQL4(){MqlDateTime tm;TimeCurrent(tm);return(tm.hour);};
in void OnTick(), chiede di metterlo nel globale 'HourMQL4' - la funzione può essere dichiarata solo nell'ambito globale. È davvero necessario metterlo lì? Se lo faccio, non ci sarà nessun errore. È necessario un punto e virgola dopo una parentesi graffa?
 
Come determinare l'ora attuale in minuti dall'inizio della giornata?

L'ho pensata in questo modo:

datetime  vrema=TimeCurrent(MqlDateTime{int hour;});
int tek_vrema= vrema*60;
Non sono sicuro della prima linea se il codice è corretto.
 
forexman77:
Provo a mettere la tua funzione in void OnTick(), mi chiede di metterla nel globale 'HourMQL4' - la funzione può essere dichiarata solo nell'ambito globale. È davvero necessario metterlo lì? Se lo faccio, non ci sarà alcun errore. È necessario un punto e virgola dopo una parentesi graffa?

La funzione non può essere inclusa in una funzione.

 
forexman77:
Come determinare l'ora attuale in minuti dall'inizio della giornata?

L'ho pensato in questo modo:

Non sono sicuro della prima linea se il codice è corretto.

Questo è corretto:

   MqlDateTime tm;
   TimeCurrent(tm);
   int tek_vrema=tm.hour*60;
 
Buon pomeriggio, potreste dirmi l'indicatore o Expert Advisor che notifica con un beep dopo la formazione di un pattern candlestick come nell'immagine. Cioè il bip era dopo 7 candele opposte, o 6 candele, quindi questo numero può essere cambiato. Grazie.
 
DC2008:

È così che si fa:

Grazie mille! Funziona.

Spiegare la logica di mql5. In mql4, l'int Hour() è usato per determinare il tempo in ore, in mql5 non c'è questa costante, per quanto ho capito.

1. Come fa il programma a riconoscere che stiamo chiedendo il tempo in ore? Presumo daMqlDateTime?

2. Per aggiungere il tempo corrente in minuti al tempo corrente in ore, cioè per scoprire il tempo corrente in minuti, la costruzione sarebbe come questa

 MqlDateTime tm;
 TimeCurrent(tm);
 int tek_vrema=tm.hour*60+tm.min;

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5