Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1375

 
int symbols=0;

e não há necessidade de uma vírgula após o Manual

 

Boa tarde.

Quando o guião é executado, escreve paraFILE_BIN. Durante a depuração, quero verificar o que lhe é escrito.

Que programa posso utilizar para abrir um ficheiro deste tipo?

 
sable57fx #:

Que software pode ser utilizado para abrir um ficheiro deste tipo?

Fazer um guião que leia este ficheiro e escreva nos registos do terminal
 
Aleksei Stepanenko #:
Fazer um guião que leia este ficheiro e escreva para os registos do terminal
Isto será certamente feito, mas o objectivo é verificar visualmente se a gravação está correcta.
 
sable57fx #:

Um guião separado irá ajudá-lo a ver o que está no caixote do lixo. Segunda opção: escrever um ficheiro csv em paralelo, especialmente para visualização.

 
sable57fx #:

Boa tarde.

Quando o guião é executado, escreve paraFILE_BIN. Durante a depuração, quero verificar o que lhe é escrito.

Que programa posso utilizar para abrir um ficheiro deste tipo?

Antes de escrever para o ficheiro, coloque o que deseja escrever para uma variável e coloque-o na observação. A execução passo a passo permitir-lhe-á ver o que será escrito...

 
Obrigado.
 
Aleksei Stepanenko #:

e não há necessidade de uma vírgula após o Manual

Obrigado

 

Caramba, não consigo perceber.


Em geral, a minha tarefa é a seguinte.

Calcular o preço (H+L)/2 com condições para que a tabela de preços cresça de acordo com o aparecimento de novas barras

- Considerando que o 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);

Quatro dias de fiação e não está a funcionar!!! HELP

 
Mikhail Toptunov #:

Caramba, não consigo perceber.


Em geral, a minha tarefa é a seguinte.

Calcular o preço (H+L)/2 com condições para que a tabela de preços cresça de acordo com o aparecimento de novas barras

- Considerando que o gráfico está limitado a 3000 barras

Quatro dias de fiação e não está a funcionar!!! HELP

A SBI parece conseguir fazê-lo.

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);
  }
Razão: