Bonjour a tous,
J’ai créer un indicateur perso basé sur le rsi et des moyennes mobiles, bref ce script fonctionne comme il faut et me donne des signaux achats pour du scalping, j’aimerais donc maintenant le passé en automatique mais la problème quand je créer un backtest avec la version visuel et que je clique sur mon indicateur ça me dit “l’indicateur que vous avez sélectionnez ne retourne aucune valeur”
Comment régler le soucis, faut il que je renseigne une variable qui pourras être utilisé?
Merci a ceux qui prendrons le temps de me répondre.
bonjour,
apres return tu doit mettre une variable
exemple:
signal=0
if condition then
signal=1
endif
return signal
J’ai un autre problemes avec le script
Je vous joint un screen pour mieux comprendre,
L’indicateur avec les rectangle bleu, la ou il commence me donne un signale a l’achat et la fin du rectangle un sortie de position.
Sur le screen:
- prise de position a l’achat
- Take profit a 10
- Ca repart
- La ou ca devrez repartir
En manuel aucuns soucis je suis gagnant, mais lorsque j’automatise ca et que je mets un stop loss a 10 et le take profits 10 également ca prends bien la position au début du rectangle mais une fois le Take profits touché ca reprend une position si le rectangle bleu n’ai pas fini, le probleme c’est que en milieux de rectangle je ne suis plus rentable.
Je cherche donc une fois une position prise que meme si ca prends le profit a 10 ca reprenne seulement au rectangle bleu d’apres.
Auriez vous une solutions.
Pour résumé le signal est celui qui voit la condition qui te permet de créer le rectangle être VRAI sur la bougie courante et FAUSSE sur la précédente.
if bleu and not bleu[1] then
signal = 1
else
signal = 0
endif
Merci beaucoup,
Ou je doit mettre ce code et pourquoi bleu et not bleu? je n’est pas c’est variable chez moi, je et le code de mon backtest
// Definition of code parameters
DEFPARAM CumulateOrders = False // Cumulating positions deactivated
// Conditions to enter long positions
indicator1 = CALL "Scalping DAX M1"[1]
c1 = (indicator1 = 1)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Stops and targets
SET STOP pLOSS 10
SET TARGET pPROFIT 10
Pourez tu me dire ou placer le code que tu ma donné juste en haut?
if bleu and not bleu[1] then
signal = 1
else
signal = 0
endif
Je ne sais pas où tu dois le mettre, et je me doute que ces variables n’existent pas chez toi 🙂 C’est un exemple de code pour te faire comprendre la phrase que j’ai énoncé juste avant soit :
“le signal est celui qui voit la condition qui te permet de créer le rectangle être VRAI sur la bougie courante et FAUSSE sur la précédente.”
Hors je ne sais pas quelle condition dans ton indicateur de signal te permet de créer ce rectangle bleu, d’où le code exemple. Si bougie courante condition BLEU est OK et que PAS OK (NOT) dans la précédente alors signal.
ok je comprend,
Voila valeur retourné par mon indicateur
AchatEnCours = 0
ou
AchatEnCours = 1
ensuite dans mon backtest je recupere cette valeur si c’est sur 1 on le rectangle et bleu et on prend la position d’achat et si c’est 0 rien ne ce passe
donc ton code donnerez
if AchatEnCours and not AchatEnCours[1] then
AchatEnCours = 1
else
AchatEnCours = 0
endif
ce qui me parrais assez bizzare
je te mets le code complet de mon indicateur, peut tu m’aider ?
// -- Initialisation des variables
ConditionMultiplesEMA = 1
// ** Conditions EMA
// -- Indicateurs
MMRapide = ExponentialAverage[20](Close)
MMNormale = ExponentialAverage[50](Close)
MMLente = ExponentialAverage[100](Close)
IF ConditionMultiplesEMA = 1 THEN
// -- Conditions Signaux d'ouverture d'ACHAT EMA avec Multiples EMA
CAEMA = Close >= MMRapide AND MMRapide > MMNormale AND MMNormale > MMLente
// -- Conditions Signaux d'ouverture de VENTE EMA avec Multiples EMA
CVEMA = Close <= MMRapide AND MMRapide < MMNormale AND MMNormale < MMLente
ELSE
// -- Conditions Signaux d'ouverture d'ACHAT EMA avec une seule EMA20
CAEMA = 1
// -- Conditions Signaux d'ouverture de VENTE EMA avec une seule EMA20
CVEMA = 1
ENDIF
// ** Conditions Stochastic
// -- Variables
Periode = 14
KPeriode = 3
DPeriode = 5
// -- Indicateurs
Stoch = Stochastic[Periode,KPeriode](close)
MStoch = ExponentialAverage[DPeriode](Stoch)
// -- Conditions Signaux d'ouverture d'ACHAT MACD
CAMACD = Stoch >= MStoch AND CAEMA
IF CAMACD = 1 THEN
AchatEnCours = 1
ENDIF
// -- Conditions Fin Signaux d'ouverture d'ACHAT MACD
IF AchatEnCours = 1 AND Close < MMRapide AND Stoch <= MStoch THEN
AchatEnCours = 0
ENDIF
// -- Conditions Signaux d'ouverture de VENTE MACD
CVMACD = Stoch <= MStoch AND CVEMA
IF CVMACD = 1 THEN
VenteEnCours = 1
ENDIF
// -- Conditions Fin Signaux d'ouverture de VENTE MACD
IF VenteEnCours = 1 AND Close > MMRapide AND Stoch >= MStoch THEN
VenteEnCours = 0
ENDIF
IF AchatEnCours THEN
BACKGROUNDCOLOR (0,200,200,30)
ELSIF VenteEnCours THEN
BACKGROUNDCOLOR (200,0,100,30)
ENDIF
RETURN AchatEnCours
Voilà, l’indicateur renvoi maintenant la variable “signal”, si celle-ci est égale à 1 alors c’est un signal valide au début de ta zone bleue. J’ai ajouté une petite flèche pour que tu comprennes bien.
// -- Initialisation des variables
ConditionMultiplesEMA = 1
// ** Conditions EMA
// -- Indicateurs
MMRapide = ExponentialAverage[20](Close)
MMNormale = ExponentialAverage[50](Close)
MMLente = ExponentialAverage[100](Close)
IF ConditionMultiplesEMA = 1 THEN
// -- Conditions Signaux d'ouverture d'ACHAT EMA avec Multiples EMA
CAEMA = Close >= MMRapide AND MMRapide > MMNormale AND MMNormale > MMLente
// -- Conditions Signaux d'ouverture de VENTE EMA avec Multiples EMA
CVEMA = Close <= MMRapide AND MMRapide < MMNormale AND MMNormale < MMLente
ELSE
// -- Conditions Signaux d'ouverture d'ACHAT EMA avec une seule EMA20
CAEMA = 1
// -- Conditions Signaux d'ouverture de VENTE EMA avec une seule EMA20
CVEMA = 1
ENDIF
// ** Conditions Stochastic
// -- Variables
Periode = 14
KPeriode = 3
DPeriode = 5
// -- Indicateurs
Stoch = Stochastic[Periode,KPeriode](close)
MStoch = ExponentialAverage[DPeriode](Stoch)
// -- Conditions Signaux d'ouverture d'ACHAT MACD
CAMACD = Stoch >= MStoch AND CAEMA
IF CAMACD = 1 THEN
AchatEnCours = 1
ENDIF
// -- Conditions Fin Signaux d'ouverture d'ACHAT MACD
IF AchatEnCours = 1 AND Close < MMRapide AND Stoch <= MStoch THEN
AchatEnCours = 0
ENDIF
// -- Conditions Signaux d'ouverture de VENTE MACD
CVMACD = Stoch <= MStoch AND CVEMA
IF CVMACD = 1 THEN
VenteEnCours = 1
ENDIF
// -- Conditions Fin Signaux d'ouverture de VENTE MACD
IF VenteEnCours = 1 AND Close > MMRapide AND Stoch >= MStoch THEN
VenteEnCours = 0
ENDIF
IF AchatEnCours THEN
BACKGROUNDCOLOR (0,200,200,30)
ELSIF VenteEnCours THEN
BACKGROUNDCOLOR (200,0,100,30)
ENDIF
signal=0
if achatencours and not achatencours[1]then
signal=1
drawarrowup(barindex,low) coloured(0,200,200)
endif
RETURN signal
super merci, mais je ne suis toujours pas rentable en automatique, ce qui est bizzare car sur le graphe si on compte 10 de TP et 10 de SL je devrez être gagnant sur 70% des trades
je pense que mon backtest n’est pas bien coder en fonctions de mon indicateurs, voila les deux codes sont ils bien coder pour fonctionner ensemble?
/ -- Initialisation des variables
ConditionMultiplesEMA = 1
// ** Conditions EMA
// -- Indicateurs
MMRapide = ExponentialAverage[20](Close)
MMNormale = ExponentialAverage[50](Close)
MMLente = ExponentialAverage[100](Close)
IF ConditionMultiplesEMA = 1 THEN
// -- Conditions Signaux d'ouverture d'ACHAT EMA avec Multiples EMA
CAEMA = Close >= MMRapide AND MMRapide > MMNormale AND MMNormale > MMLente
// -- Conditions Signaux d'ouverture de VENTE EMA avec Multiples EMA
CVEMA = Close <= MMRapide AND MMRapide < MMNormale AND MMNormale < MMLente
ELSE
// -- Conditions Signaux d'ouverture d'ACHAT EMA avec une seule EMA20
CAEMA = 1
// -- Conditions Signaux d'ouverture de VENTE EMA avec une seule EMA20
CVEMA = 1
ENDIF
// ** Conditions Stochastic
// -- Variables
Periode = 14
KPeriode = 3
DPeriode = 5
// -- Indicateurs
Stoch = Stochastic[Periode,KPeriode](close)
MStoch = ExponentialAverage[DPeriode](Stoch)
// -- Conditions Signaux d'ouverture d'ACHAT MACD
CAMACD = Stoch >= MStoch AND CAEMA
IF CAMACD = 1 THEN
AchatEnCours = 1
ENDIF
// -- Conditions Fin Signaux d'ouverture d'ACHAT MACD
IF AchatEnCours = 1 AND Close < MMRapide AND Stoch <= MStoch THEN
AchatEnCours = 0
ENDIF
// -- Conditions Signaux d'ouverture de VENTE MACD
CVMACD = Stoch <= MStoch AND CVEMA
IF CVMACD = 1 THEN
VenteEnCours = 1
ENDIF
// -- Conditions Fin Signaux d'ouverture de VENTE MACD
IF VenteEnCours = 1 AND Close > MMRapide AND Stoch >= MStoch THEN
VenteEnCours = 0
ENDIF
IF AchatEnCours THEN
BACKGROUNDCOLOR (0,200,200,30)
ELSIF VenteEnCours THEN
BACKGROUNDCOLOR (200,0,100,30)
ENDIF
signal=0
if achatencours and not achatencours[1]then
signal=1
drawarrowup(barindex,low) coloured(0,200,200)
endif
if VenteEnCours and not VenteEnCours[1]then
signal=2
drawarrowup(barindex,low) coloured(0,200,200)
endif
RETURN signal
L’indicateur retourne 1 pour une position achat et 2 pour une position de ventes et 0 en temp normale, et voici le code de mon backtest
// Definition of code parameters
DEFPARAM CumulateOrders = False // Cumulating positions deactivated
// Conditions to enter long positions
indicator1 = CALL "saclp dax m1 auto"
c1 = (indicator1 = 1)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions to exit long positions
indicator2 = CALL "saclp dax m1 auto"
c2 = (indicator2 = 2)
IF c2 THEN
SELL AT MARKET
ENDIF
// Stops and targets
SET STOP pLOSS 10
SET TARGET pPROFIT 20
dans ce backtest creer en mode simplifié je ne voie pas la variable signal qui renvoie 1 pour l’achat 2 pour la vente et 0 en temps normale,
L’instruction SELL est utilisé pour clôturer un achat (revendre).
Pour vendre à découvert, il faut utiliser SELLSHORT.
bonsoir ,
pour voir le retour de ton indicateur ,tu peux graphé ta variable comme ci dessous
// Definition of code parameters
DEFPARAM CumulateOrders = False // Cumulating positions deactivated
// Conditions to enter long positions
indicator1 = CALL "saclp dax m1 auto"
c1 = (indicator1 = 1)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions to exit long positions
c2 = (indicator1 = 2)
IF c2 THEN
SELL AT MARKET
ENDIF
// Stops and targets
SET STOP pLOSS 10
SET TARGET pPROFIT 20
graph indicator1