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

 
Gente, bene aiuto sulle coppie. Come si fa ad aggiungere se non c'è un MT nella lista generale?
 
Valeriy Yastremskiy:

FILE_SHARE_READ

128

Accesso in lettura condiviso da più programmi. Questo flag è usato quando si aprono i file (FileOpen()), ma non sostituisce la necessità di specificare FILE_WRITE e/o FILE_READ quando si apre un file

Non lo fa. E in generale, è meglio non aprire e chiudere il file ad ogni spunta

Permette letture condivise, non letture condivise
Grazie. Funziona! Mi dispiace per il compukter di chiudere il file ogni volta, così ho messo la chiusura del file in OnDeinit.
 
HeAic:
Come posso sostituire la funzione Sleep(500) nell'indicatore?

Se ne avete davvero bisogno, fate la vostra pausa che conta i tempi di tick del processore in millisecondi. Si metterà in pausa, ma l'intero thread sarà in attesa.

 
  int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
  datetime time=TimeLocal();
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  FileClose(fileHandle);
  }
void OnTick()
  {
  FileWrite(fileHandle,"Время=",TimeLocal());
  }
Perché dichiarare una variabile "time" se non viene usata in"FileWrite"? Se non lo dichiari:
int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
datetime TimeLocal();
allora il compilatore giurerà, ma a che scopo?
 
ascerdfg:
Perché dichiarare la variabile "time" se non è usata in "FileWrite"? Se non lo dichiarate: il compilatore giurerà, ma che senso ha?
datetime TimeLocal();

QUESTO COSA?????

Forse rimuovere del tutto quella linea e vedere?

 
Valeriy Yastremskiy:

QUESTO E' QUELLO CHE?????

Forse rimuovere del tutto quella linea e vedere?

Lo dice nella Guida: https://www.mql5.com/ru/docs/dateandtime/timelocal

Chiamata senza parametri

datetimeTimeLocal();

Документация по MQL5: Дата и время / TimeLocal
Документация по MQL5: Дата и время / TimeLocal
  • www.mql5.com
Дата и время / TimeLocal - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ascerdfg:

Questo è ciò che dice il file di aiuto: https://www.mql5.com/ru/docs/dateandtime/timelocal

Chiamato senza parametri

datetimeTimeLocal();

FileOpen

La funzione apre un file con il nome specificato e le bandiere specificate.

intFileOpen(
stringafile_name,//nome del file
intopen_flags,// combinazione di flag
shortdelimiter='\t',// delimitatore
uintcodepage=CP_ACP//codepage
);

E questo è il modo in cui è scritto fileopen. Questo non è un esempio di come scriverlo in un programma, ma un'indicazione del tipo di valore di ritorno.

 qqq.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                                  https:// |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
 int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
//  datetime time=TimeLocal();
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  FileClose(fileHandle);
  }
void OnTick()
  {
  FileWrite(fileHandle,"Время=",TimeLocal());
  }
'qqq.mq4'       qqq.mq4 1       1
0 errors, 0 warnings, 202 msec elapsed          1       1
Ha senso assegnare la variabile time all'ora locale del computer in oninit e questa sarà l'ora di inizio dell'EA)))
 
Grazie!
 
double a=20.43;
double b=20.56;
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  Print(a-b);
  }
Il risultato dice -0.1299999999999999999999. Perché?
 
ascerdfg:
Il risultato stampa -0.12999999999999999999. Perché?

Caratteristiche della memorizzazione dei numeri reali nella memoria del computer.

Usare DoubleToString() per ottenere l'output con la precisione desiderata

In generale, dovreste imparare le basi, e poi provare a scrivere programmi.

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Вещественные типы (или типы с плавающей точкой) представляют значения, имеющие дробную часть. В языке MQL5 есть два типа для чисел с плавающей точкой. Способ представления вещественных чисел в машинной памяти определен стандартом IEEE 754 и не зависит от платформ, операционных систем и языков программирования. Константы с плавающей точкой...