Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1375

 
int symbols=0;

y no hay necesidad de una coma después de Manual

 

Buenas tardes.

Cuando el script se ejecuta, escribe enFILE_BIN. Mientras depuro, quiero comprobar lo que se escribe en él.

¿Qué programa puedo utilizar para abrir dicho archivo?

 
sable57fx #:

¿Qué software se puede utilizar para abrir un archivo de este tipo?

Haz un script que lea este archivo y escriba en los registros de la terminal
 
Aleksei Stepanenko #:
Haz un script que lea este archivo y escriba en los registros de la terminal
Seguramente se hará, pero el objetivo es verificar visualmente que la grabación es correcta.
 
sable57fx #:

Una secuencia de comandos separada le ayudará a ver lo que hay en la papelera. Segunda opción: escribir un archivo csv en paralelo, especialmente para su visualización.

 
sable57fx #:

Buenas tardes.

Cuando el script se ejecuta, escribe enFILE_BIN. Mientras depuro, quiero comprobar lo que se escribe en él.

¿Qué programa puedo utilizar para abrir dicho archivo?

Antes de escribir en el archivo, pon lo que quieres escribir en una variable y colócala en la observación. La ejecución paso a paso le permitirá ver lo que se escribirá...

 
Gracias. Lo haré.
 
Aleksei Stepanenko #:

y no hay necesidad de una coma después de Manual

Gracias

 

Caramba, no puedo entenderlo.


En general, mi tarea es la siguiente.

Calcular el precio (H+L)/2 con las condiciones de que la matriz de precios crezca según la aparición de nuevas barras

- Teniendo en cuenta que el gráfico está limitado a 3000 barras

   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);

¡¡¡Cuatro días de hilado y no funciona!!! AYUDA

 
Mikhail Toptunov #:

Caramba, no puedo entenderlo.


En general, mi tarea es la siguiente.

Calcular el precio (H+L)/2 con las condiciones de que la matriz de precios crezca según la aparición de nuevas barras

- Teniendo en cuenta que el gráfico está limitado a 3000 barras

¡¡¡Cuatro días de hilado y no funciona!!! AYUDA

Parece que SBI lo consigue.

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);
  }