Questions des débutants MQL5 MT5 MetaTrader 5 - page 1375

 
int symbols=0;

et il n'y a pas besoin d'une virgule après Manuel

 

Bon après-midi.

Lorsque le script s'exécute, il écrit dans lefichier FILE_BIN. Pendant le débogage, je veux vérifier ce qui est écrit dans ce fichier.

Quel programme puis-je utiliser pour ouvrir un tel fichier ?

 
sable57fx #:

Quel logiciel peut être utilisé pour ouvrir un tel fichier ?

Faites un script qui lit ce fichier et écrit dans les journaux du terminal
 
Aleksei Stepanenko #:
Créez un script qui lit ce fichier et écrit dans les journaux du terminal.
Cela sera certainement fait, mais le but est de vérifier visuellement que l'enregistrement est correct.
 
sable57fx #:

Un script séparé vous aidera à voir ce qui se trouve dans la poubelle. Deuxième option : écrire un fichier csv en parallèle, notamment pour la visualisation.

 
sable57fx #:

Bon après-midi.

Lorsque le script s'exécute, il écrit dans lefichier FILE_BIN. Pendant le débogage, je veux vérifier ce qui est écrit dans ce fichier.

Quel programme puis-je utiliser pour ouvrir un tel fichier ?

Avant d'écrire dans le fichier, mettez ce que vous voulez écrire dans une variable et placez-la dans l'observation. L'exécution étape par étape vous permettra de voir ce qui sera écrit...

 
Merci. Je le ferai.
 
Aleksei Stepanenko #:

et il n'y a pas besoin d'une virgule après Manuel

Merci.

 

Bon sang, je n'arrive pas à comprendre.


En général, ma tâche est la suivante.

Calculer le prix (H+L)/2 avec les conditions que le tableau des prix s'agrandisse en fonction de l'apparition de nouvelles barres.

- Considérant que le graphique est limité à 3000 barres

   int start= this.m_rt - this.m_pc;//this.m_rt;
   datetime arr_time[];
   double arr_high[],arr_low[];
//--- устанавливает новый размер в первом измерении массива
   ArrayResize(this.m_pr_hl2,this.m_rt);
   ArrayResize(this.m_tim_pr_hl2,this.m_rt);
   ArrayResize(this.m_high,this.m_rt);
   ArrayResize(this.m_low,this.m_rt);
//--- функция получает в массив
   CopyTime(this.m_symbol, this.m_timeframe, this.m_rt-start, start, arr_time);
   CopyHigh(this.m_symbol, this.m_timeframe, this.m_rt-start, start, arr_high);
   CopyLow(this.m_symbol, this.m_timeframe, this.m_rt-start, start, arr_low);
//--- цена для расчета средних
// start= start>ArraySize(arr_high) ? ArraySize(arr_high) : start;
   for(int b= this.m_rt-start; b < this.m_rt; b++)
      this.m_pr_hl2[b]= (arr_high[b] + arr_low[b]) / 2;
//--- производит копирование одного массива в другой.
   ArrayCopy(this.m_tim_pr_hl2, arr_time, this.m_rt-start, this.m_rt-start);
   ArrayCopy(this.m_high, arr_high, this.m_rt-start, this.m_rt-start);
   ArrayCopy(this.m_low, arr_low, this.m_rt-start, this.m_rt-start);

Quatre jours d'essorage et ça ne marche pas ! !! AIDE

 
Mikhail Toptunov #:

Bon sang, je n'arrive pas à comprendre.


En général, ma tâche est la suivante.

Calculer le prix (H+L)/2 avec les conditions que le tableau des prix s'agrandisse en fonction de l'apparition de nouvelles barres.

- Considérant que le graphique est limité à 3000 barres

Quatre jours d'essorage et ça ne marche pas ! !! AIDE

SBI semble y arriver.

void CNewBar::PriceHL2()
  {
   int start= this.m_rt - this.m_pc;//this.m_rt;
   datetime arr_time[];
   double arr_high[],arr_low[];
//--- устанавливает новый размер в первом измерении массива
   ArrayResize(this.m_pr_hl2,this.m_rt);
   ArrayResize(this.m_tim_pr_hl2,this.m_rt);
   ArrayResize(this.m_high,this.m_rt);
   ArrayResize(this.m_low,this.m_rt);
//--- флаг элементов массива будет производиться как в таймсериях.
   ArraySetAsSeries(arr_time,true);
   ArraySetAsSeries(arr_high,true);
   ArraySetAsSeries(arr_low,true);
//--- функция получает в массив
   CopyTime(this.m_symbol, this.m_timeframe, 0, start, arr_time);
   CopyHigh(this.m_symbol, this.m_timeframe, 0, start, arr_high);
   CopyLow(this.m_symbol, this.m_timeframe, 0, start, arr_low);
//--- цена для расчета средних
   for(int b= 1; b < start; b++)
      this.m_pr_hl2[this.m_rt-b]= (arr_high[b] + arr_low[b]) / 2;
//--- производит копирование одного массива в другой.
   ArrayCopy(this.m_tim_pr_hl2, arr_time, this.m_rt-start, 0, start);
   ArrayCopy(this.m_high, arr_high, this.m_rt-start, 0, start);
   ArrayCopy(this.m_low, arr_low, this.m_rt-start, 0, start);
  }
Raison: