// Paramètres de la stratégie
int PERIODE = 50; // Période de la moyenne mobile
double FACTEUR_ACHAT = 1.05; // Facteur de zone d’achat
double FACTEUR_VENTE = 0.95; // Facteur de zone de vente
for(int i = 0; i < période; i++)
{
total += close[index – i];
}
return total / période;
}
// Boucle principale pour lire les données de prix
for(int i = PERIODE; i < BarCount; i++)
{
// Lire les données de prix
close[i] = Close[i];
high[i] = High[i];
low[i] = Low[i];
// Calculer la moyenne mobile
double moyenneMobile = MA(PERIODE, close, i);
// Calculer les zones d’achat et de vente
double zoneAchat = moyenneMobile * FACTEUR_ACHAT;
double zoneVente = moyenneMobile * FACTEUR_VENTE;
// Vérifier si le prix a atteint une zone d’achat ou de vente
if(low[i] < zoneAchat && low[i-1] > zoneAchat) // breakout à la baisse
{
// Vendre
SellAtMarket;
}
else if(high[i] > zoneVente && high[i-1] < zoneVente) // breakout à la hausse
{
// Acheter
BuyAtMarket;
}
}
Enfin, il faut ajouter une condition pour vérifier la tendance et le pullback :
cpp
Copy code
// Condition pour vérifier la tendance et le pullback
if(close[i] > moyenneMobile && close[i-1] < moyenneMobile) // Tendance haussière
{
// Vérifier si le prix a effectué un pullback
if(low[i] < moyenneMobile && low[i-1] > moyenneMobile) // Pullback
{
// Acheter
BuyAtMarket;
}
}
else if(close[i] < moyenneMobile && close[i-1] > moyenneMobile) // Tendance baissière
{
// Vérifier si le prix a effectué un pullback
if(high[i] > moyenneMobile && high[i-1] < moyenneMobile) //
// Condition pour vérifier la tendance et le pullback
if(close[i] > moyenneMobile && close[i-1] < moyenneMobile) // Tendance haussière
{
// Vérifier si le prix a effectué un pullback
if(low[i] < moyenneMobile && low[i-1] > moyenneMobile) // Pullback
{
// Acheter
BuyAtMarket;
}
}
else if(close[i] < moyenneMobile && close[i-1] > moyenneMobile) // Tendance baissière
{
// Vérifier si le prix a effectué un pullback
if(high[i] > moyenneMobile && high[i-1] < moyenneMobile) //
Bonjour, j’avais ne pas avoir compris la demande. Le code est en C++ et la copie d’écran est un backtest sous ProRealTime. Pour mémoire, le site est dédié à la programmation pour PRT 😉
Bonjour Nicolas
Comme tu le sais je suis nul en programmation. Le code que je t’ai envoyé émane de chatGpt , sauf que lorsque j’ai voulu le backetester sur prorealtime, ce dernier me met le message d’erreur suivant : ligne 2 : erreur : commande inconnue.
Peux tu éclairer ma lanterne stp.
Merci beaucoup
Bien sûr, ce code n’est pas compatible avec ProRealTime, il faut le recoder entièrement en langage compatible. Mais pourquoi ce titre ? Ce code n’est pas en pinescript et C++ n’est pas un langage compatible avec ProRealTime.
Ok, mais le code fourni dans le premier post n’est pas complet, il s’arrête avec la condition “// Vérifier si le prix a effectué un pullback”, qui n’est pas complète.