Como obter parâmetros Abertos, Baixos, Altos, Fechados em MQL5? - página 3

 

Um exemplo de um roteiro:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int i=0;i<3;i++)
      Print("# ",i,": ",DoubleToString(iOpen(Symbol(),PERIOD_CURRENT,i),Digits()));
//---
  }
//+------------------------------------------------------------------+

e o resultado:

2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 0: 1.11399
2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 1: 1.11425
2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 2: 1.11319


Editado.

Arquivos anexados:
1.mq5  2 kb
 

Aqui estão eles.

Funciona tanto em 4 como em 5pc

Em 4-rka aplicam-se Período(), Símbolo(), etc.

Em 5-pc, aplicar _Período, _Símbolo(), etc.

iBars

Retorna o número de barras no histórico para um símbolo e período especificados

iBarShift

Devolve a compensação da barra à qual pertence o tempo especificado

iClose

Retorna o preço de fechamento da barra do gráfico correspondente

iHigh

Retorna o valor do preço máximo da barra no gráfico

iHighest

Retorna o índice do valor mais alto encontrado do gráfico correspondente

iLow

Retorna o valor do preço mínimo da barra do gráfico correspondente

iLowest

Retorna o índice do menor valor encontrado do gráfico correspondente

iOpen

Retorna o valor do preço do bar aberto do gráfico correspondente

iTime

Retorna o tempo de abertura da barra do gráfico correspondente

iVolume

Retorna o valor do volume do tick da barra no gráfico

iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Com o CopyRates, funcionou. Funciona.
 

E aqui está a varianteCopyRates

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   MqlRates rates[];
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(CopyRates(Symbol(),Period(),start_pos,count,rates)!=count)
      return;

   for(int i=0;i<count;i++)
      Print("Open # ",i,": ",DoubleToString(rates[i].open,Digits()));
//---
  }
//+------------------------------------------------------------------+

e resultado

2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 0: 1.11399
2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 1: 1.11425
2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 2: 1.11319
Arquivos anexados:
1.mq5  3 kb
 
Alexey Viktorov:

Alexey, isto é para aqueles que estão em um tanque. E para os normais, CopyRates() também está disponível em mql4. Portanto, esqueça todos os disparates da iOpen e outros. Eu nem entendo por que eles o colocam em mql5.

Oh! Apareceram adolescentes))

Por que precisamos na prática ter muitos valores OHLC consecutivos - que você sugeriu obter usando CopyRates() ? - exceto para meditar? ))))

não há muito uso prático, aqui está uma tarefa trivial, o descarregamento (ou uso) do indicador Fractals, eu tenho tal código:

#define  Time(n)   iTime(NULL,0,n)
//+------------------------------------------------------------------+
void OnStart()
  {
   int handle=iFractals(NULL,0);
   if(handle==INVALID_HANDLE)
     {
      Print("Error№,",::GetLastError()," create handle indicator");
      return;
     }
   int count=0,i=0;
   double buffup[1],buffdn[1];
   while(i<Bars(_Symbol,_Period) && count<10)
     {
      if(CopyBuffer( handle,0,i,1, buffup)<1) Print("buffup , error № ",::GetLastError());
      if(CopyBuffer( handle,1,i,1, buffdn)<1) Print("buffup , error № ",::GetLastError());
      if(buffup[0]<EMPTY_VALUE && ++count>0)  Print("Bar № ",i," : ",Time(i)," , Fractals Up = ",buffup[0]);
      if(buffdn[0]<EMPTY_VALUE && ++count>0)  Print("Bar № ",i," : ",Time(i)," , Fractals Dn = ",buffdn[0]);
     i++;
     }
  }
//+------------------------------------------------------------------+


mostre-me seu código com o uso de CopyRates()...

 
Vladimir Karputov:

E aqui está a varianteCopyRates

e resultado

Mas, se precisarmos rastrear constantemente dados em novas barras, isso significa consultar CopyRates em cada carrapato e fazer uma série de tempos em cada carrapato?

Estou tentando descobrir o melhor lugar para colocar a CopyRates.

 
Реter Konow:

Mas, se você precisa rastrear constantemente os dados em novas barras, então você precisa consultar o CopyRates em cada carrapato e fazer uma série de tempos em cada carrapato?

Estou tentando entender onde melhor colocar os CopyRates.

Eu já perguntei acima: Por quê? É necessário considerar o valor de zero barra (a barra mais à direita no gráfico)?

 
Vladimir Karputov:

Eu já perguntei acima: PORQUÊ? O valor da barra de zero (a barra mais à direita no gráfico) deve ser levado em conta?

Para a mesa. Há quatro parâmetros na tabela: Aberto, Fechado, Alto, Baixo, as últimas 10 barras, não incluindo a atual.

Por último, no sentido de recuar em relação ao atual (zero).

 
Igor Makanu:

Ooh! surgiram os adolescentes))

por que, na prática, ter muitos valores OHLC consecutivos - que você propõe obter usando CopyRates() ? - exceto para meditar? ))))

não há muito uso prático, aqui está uma tarefa trivial, o descarregamento (ou uso) do indicador Fractals, eu tenho tal código:


mostre-me seu código usando CopyRates()...

Igor, você deve ir para a primeira série. Eles ensinam cartas lá e depois de estudar você entenderá a diferença entre CopyRates e CopyBuffer.

É melhor você me oferecer uma solução para este problema SEM taxas de cópia(!)

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Como obter parâmetros Abertos,Baixos,Altos,Fechados em MQL5?

Retrog Konow, 2019.07.29 19:58

Para a mesa. Há quatro parâmetros na tabela: Aberto, Fechado, Alto, Baixo, últimas 10 barras, não incluindo a atual.

Por último, quero dizer, se se mover para trás em relação ao atual (zero).


 
Реter Konow:

Para a mesa. Há quatro parâmetros na tabela: Aberto, Fechado, Alto, Baixo, as últimas 10 barras, não incluindo a atual.

Por último, no sentido de recuar em relação ao atual (zero).

Neste caso, o CopyRates do primeiro bar é inequivocamente 10. E não chamá-lo de cada carrapato, mas o suficiente quando uma nova barra aparece.