Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Pour moi, il ne me permet pas de compiler le fichier.
Je ne sais pas s'il y a une idée de ce qui se passe.
Merci de votre compréhension,
Jordi
Merci !
Vous trouverez ci-dessous un exemple simple que j'ai mis au point en jouant.
S'il est erroné, veuillez me corriger et je le modifierai.
Ce que je trouve étrange, c'est que les valeurs ne semblent pas correspondre à une simple moyenne mobile sur le graphique.
################### Dans un script
int period = 21 ; // La moyenne mobile à 21 barres
int sampleSize = 100 ; //C'est le nombre de barres de données que vous voulez récupérer
int handle = iCustom(Symbol(),0, "Examples\Custom Moving Average",
period,// Période
0, // Décalage
MODE_SMA, // Méthode de calcul
PRICE_CLOSE // Calcul sur les prix de clôture
) ;
void OnTick()
{
// C'est le tableau dans lequel vos moyennes mobiles seront copiées.
// Chaque élément de ce tableau est une valeur de moyenne mobile
// Le premier élément de ce tableau (élément à la position 0) est le plus récent
// Le dernier élément est le dernier élément du tableau 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] ;
################################# Dans un EA (NOTE : le OnInit et le OnTick)
int OnInit(){
int period = 21 ; // La moyenne mobile à 21 barres
int sampleSize = 100 ; //C'est le nombre de barres de données que vous voulez récupérer
int handle = iCustom(Symbol(),0, "Examples\Custom Moving Average",
period, // Période
0, // Décalage
MODE_SMA, // Méthode de calcul
PRICE_CLOSE // Calcul sur les prix de clôture
) ;
}
OnTick()
{
// C'est le tableau dans lequel vos moyennes mobiles seront copiées.
// Chaque élément de ce tableau est une valeur de moyenne mobile
// Le premier élément de ce tableau (élément à la position 0) est le plus récent
// Le dernier élément est le dernier élément du tableau 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] ;
}
Excellent article