Como criar um buffer no meu indicador que retorne ao ea um array contendo a Maxima e Minima da vela?
Como criar um buffer no meu indicador que retorne ao ea um array contendo a Maxima e Minima da vela?
Para tentar resolver tive que criar 2 indicadores para guardar os valores como abaixo:
#property indicator_chart_window
#property indicator_buffers 13 // Qde total de Buffers
#property indicator_plots 13 // Qde total de Plotters
double BUffHigh[];
double BUffLow[];
SetIndexBuffer(10, BUffHigh, INDICATOR_DATA);
SetIndexBuffer(11, BUffLow, INDICATOR_DATA);
ArrayInitialize(BUffHigh, EMPTY_VALUE);
ArrayInitialize(BUffLow, EMPTY_VALUE);
----------------------------------------------------------------------------------------------------------------------------
No meu EA busquei os valores de cada buffer
if(CopyBuffer(this.m_hnd_IndicatorPlaninvestFx, 10, 1, 1, this.m_BUffHigh) <= 0)
{
//--- Return Failed
return(false);
}
if(CopyBuffer(this.m_hnd_IndicatorPlaninvestFx, 11, 1, 1, this.m_BUffLow) <= 0)
{
//--- Return Failed
return(false);
}
Teria alguma forma mais facil de retornar um array unico contendo a maxima e minima ou deveria fazer dessa forma mesmo?
Como criar um buffer no meu indicador que retorne ao ea um array contendo a Maxima e Minima da vela?
Para tentar resolver tive que criar 2 indicadores para guardar os valores como abaixo:
#property indicator_chart_window
#property indicator_buffers 13 // Qde total de Buffers
#property indicator_plots 13 // Qde total de Plotters
double BUffHigh[];
double BUffLow[];
SetIndexBuffer(10, BUffHigh, INDICATOR_DATA);
SetIndexBuffer(11, BUffLow, INDICATOR_DATA);
ArrayInitialize(BUffHigh, EMPTY_VALUE);
ArrayInitialize(BUffLow, EMPTY_VALUE);
----------------------------------------------------------------------------------------------------------------------------
No meu EA busquei os valores de cada buffer
if(CopyBuffer(this.m_hnd_IndicatorPlaninvestFx, 10, 1, 1, this.m_BUffHigh) <= 0)
{
//--- Return Failed
return(false);
}
if(CopyBuffer(this.m_hnd_IndicatorPlaninvestFx, 11, 1, 1, this.m_BUffLow) <= 0)
{
//--- Return Failed
return(false);
}
Teria alguma forma mais facil de retornar um array unico contendo a maxima e minima ou deveria fazer dessa forma mesmo?
void OnStart() { MqlRates rates[]; int copied=CopyRates(NULL,0,0,100,rates); if(copied<=0) Print("Erro ao copiar dados de preços ",GetLastError()); else Print("Copied ",ArraySize(rates)," bars"); }
Pesquise o comando copyrates e a estrutura Mqlrates, contem as maximas, minimas e varias outras cotações da vela. Acho que resolve o problema.
Como criar um buffer no meu indicador que retorne ao ea um array contendo a Maxima e Minima da vela?
Para tentar resolver tive que criar 2 indicadores para guardar os valores como abaixo:
#property indicator_chart_window
#property indicator_buffers 13 // Qde total de Buffers
#property indicator_plots 13 // Qde total de Plotters
double BUffHigh[];
double BUffLow[];
SetIndexBuffer(10, BUffHigh, INDICATOR_DATA);
SetIndexBuffer(11, BUffLow, INDICATOR_DATA);
ArrayInitialize(BUffHigh, EMPTY_VALUE);
ArrayInitialize(BUffLow, EMPTY_VALUE);
----------------------------------------------------------------------------------------------------------------------------
No meu EA busquei os valores de cada buffer
if(CopyBuffer(this.m_hnd_IndicatorPlaninvestFx, 10, 1, 1, this.m_BUffHigh) <= 0)
{
//--- Return Failed
return(false);
}
if(CopyBuffer(this.m_hnd_IndicatorPlaninvestFx, 11, 1, 1, this.m_BUffLow) <= 0)
{
//--- Return Failed
return(false);
}
Teria alguma forma mais facil de retornar um array unico contendo a maxima e minima ou deveria fazer dessa forma mesmo?
Lembrei o que tinha visto, tem tambem uma opcao de usar uma estrutura de matrix. Mas acredito que tu nao conseguiria colocar ela no plot (posso estar errado). Isso é interessante porque permite copiar de uma vez so alguns campos especificos e ignorar outros. Ve o exemplo que tem aqui: https://www.mql5.com/pt/docs/matrix/matrix_initialization/matrix_copyrates
Para fazer isso, você pode criar um buffer bidimensional (dois-dimensionais), onde cada linha representa uma vela e cada coluna representa a Máxima e a Mínima dessa vela.
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Como criar um buffer no meu indicador que retorne ao ea um array contendo a Maxima e Minima da vela?
Para tentar resolver tive que criar 2 indicadores para guardar os valores como abaixo:
#property indicator_chart_window
#property indicator_buffers 13 // Qde total de Buffers
#property indicator_plots 13 // Qde total de Plotters
double BUffHigh[];
double BUffLow[];
SetIndexBuffer(10, BUffHigh, INDICATOR_DATA);
SetIndexBuffer(11, BUffLow, INDICATOR_DATA);
ArrayInitialize(BUffHigh, EMPTY_VALUE);
ArrayInitialize(BUffLow, EMPTY_VALUE);
----------------------------------------------------------------------------------------------------------------------------
No meu EA busquei os valores de cada buffer
if(CopyBuffer(this.m_hnd_IndicatorPlaninvestFx, 10, 1, 1, this.m_BUffHigh) <= 0)
{
//--- Return Failed
return(false);
}
if(CopyBuffer(this.m_hnd_IndicatorPlaninvestFx, 11, 1, 1, this.m_BUffLow) <= 0)
{
//--- Return Failed
return(false);
}
Teria alguma forma mais facil de retornar um array unico contendo a maxima e minima ou deveria fazer dessa forma mesmo?