Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Para mim, ele não permite que eu compile o arquivo.
Não sei se há alguma ideia do que está acontecendo.
Obrigado,
Jordi
Obrigado!
Abaixo está um exemplo simples que eu criei enquanto brincava.
Se estiver errado, corrija-me e eu o corrigirei.
O que acho estranho é que os valores não parecem corresponder a uma média móvel simples no gráfico.
################### Em um script
int period = 21; // A média móvel de 21 barras
int sampleSize = 100; /Esse é o número de barras de dados que você deseja obter
int handle = iCustom(Symbol(),0, "Examples\\Custom Moving Average",
period,// Período
0, // Offset
MODE_SMA, // Método de cálculo
PRICE_CLOSE // Cálculo com base nos preços de fechamento
);
void OnTick()
{
// Esse é o array para o qual as médias móveis serão copiadas.
// Cada item aqui é um valor de média móvel
// O primeiro item nesse array (item na posição 0) é o mais recente
// O último item é o último item no array ArraySize() - 1
double movingAverageValues[];
ArraySetAsSeries(movingAverageValues, true);
if (CopyBuffer(handle,0,0,sampleSize,movingAverageValues) < 0){Print("CopyBufferMA1 error =",GetLastError());}
double currentMovingAverage = movingAverageValues[0];
double earliestMovingAverage = movingAverageValues[ArraySize(movingAverageValues) - 1];
################################# Em um EA (OBSERVAÇÃO: o OnInit e o OnTick)
int OnInit(){
int period = 21; // A média móvel de 21 barras
int sampleSize = 100; //Esse é o número de barras de dados que você deseja obter
int handle = iCustom(Symbol(),0, "Examples\\Custom Moving Average",
period, // Período
0, // Offset
MODE_SMA, // Método de cálculo
PRICE_CLOSE // Cálculo com base nos preços de fechamento
);
}
OnTick()
{
// Esta é a matriz para a qual as médias móveis serão copiadas.
// Cada item aqui é um valor de média móvel
// O primeiro item dessa matriz (item na posição 0) é o mais recente
// O último item é o último item da matriz ArraySize() - 1
double movingAverageValues[];
ArraySetAsSeries(movingAverageValues, true);
if (CopyBuffer(handle,0,0,sampleSize,movingAverageValues) < 0){Print("CopyBufferMA1 error =",GetLastError());}
double currentMovingAverage = movingAverageValues[0];
double earliestMovingAverage = movingAverageValues[ArraySize(movingAverageValues) - 1];
}
Great article