Utiliser indicateur personnel dans une stratégie automatique
Forums › ProRealTime forum Français › Support ProOrder › Utiliser indicateur personnel dans une stratégie automatique
- This topic has 12 replies, 3 voices, and was last updated 4 years ago by fifi743.
-
-
06/29/2020 at 8:30 PM #137563
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.
06/29/2020 at 8:40 PM #13756506/29/2020 at 9:12 PM #137573Merci ça fonctionne
06/29/2020 at 9:58 PM #137577J’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.
06/30/2020 at 7:41 AM #13760606/30/2020 at 7:56 AM #137609Merci 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
Backtest1234567891011121314// Definition of code parametersDEFPARAM CumulateOrders = False // Cumulating positions deactivated// Conditions to enter long positionsindicator1 = CALL "Scalping DAX M1"[1]c1 = (indicator1 = 1)IF c1 THENBUY 1 CONTRACT AT MARKETENDIF// Stops and targetsSET STOP pLOSS 10SET TARGET pPROFIT 10Pourez tu me dire ou placer le code que tu ma donné juste en haut?
12345if bleu and not bleu[1] thensignal = 1elsesignal = 0endif06/30/2020 at 8:18 AM #137612Je 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.
06/30/2020 at 8:32 AM #137615ok 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
12345if AchatEnCours and not AchatEnCours[1] thenAchatEnCours = 1elseAchatEnCours = 0endifce qui me parrais assez bizzare
je te mets le code complet de mon indicateur, peut tu m’aider ?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960// -- Initialisation des variablesConditionMultiplesEMA = 1// ** Conditions EMA// -- IndicateursMMRapide = ExponentialAverage[20](Close)MMNormale = ExponentialAverage[50](Close)MMLente = ExponentialAverage[100](Close)IF ConditionMultiplesEMA = 1 THEN// -- Conditions Signaux d'ouverture d'ACHAT EMA avec Multiples EMACAEMA = Close >= MMRapide AND MMRapide > MMNormale AND MMNormale > MMLente// -- Conditions Signaux d'ouverture de VENTE EMA avec Multiples EMACVEMA = Close <= MMRapide AND MMRapide < MMNormale AND MMNormale < MMLenteELSE// -- Conditions Signaux d'ouverture d'ACHAT EMA avec une seule EMA20CAEMA = 1// -- Conditions Signaux d'ouverture de VENTE EMA avec une seule EMA20CVEMA = 1ENDIF// ** Conditions Stochastic// -- VariablesPeriode = 14KPeriode = 3DPeriode = 5// -- IndicateursStoch = Stochastic[Periode,KPeriode](close)MStoch = ExponentialAverage[DPeriode](Stoch)// -- Conditions Signaux d'ouverture d'ACHAT MACDCAMACD = Stoch >= MStoch AND CAEMAIF CAMACD = 1 THENAchatEnCours = 1ENDIF// -- Conditions Fin Signaux d'ouverture d'ACHAT MACDIF AchatEnCours = 1 AND Close < MMRapide AND Stoch <= MStoch THENAchatEnCours = 0ENDIF// -- Conditions Signaux d'ouverture de VENTE MACDCVMACD = Stoch <= MStoch AND CVEMAIF CVMACD = 1 THENVenteEnCours = 1ENDIF// -- Conditions Fin Signaux d'ouverture de VENTE MACDIF VenteEnCours = 1 AND Close > MMRapide AND Stoch >= MStoch THENVenteEnCours = 0ENDIFIF AchatEnCours THENBACKGROUNDCOLOR (0,200,200,30)ELSIF VenteEnCours THENBACKGROUNDCOLOR (200,0,100,30)ENDIFRETURN AchatEnCours06/30/2020 at 8:39 AM #137618Voilà, 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.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566// -- Initialisation des variablesConditionMultiplesEMA = 1// ** Conditions EMA// -- IndicateursMMRapide = ExponentialAverage[20](Close)MMNormale = ExponentialAverage[50](Close)MMLente = ExponentialAverage[100](Close)IF ConditionMultiplesEMA = 1 THEN// -- Conditions Signaux d'ouverture d'ACHAT EMA avec Multiples EMACAEMA = Close >= MMRapide AND MMRapide > MMNormale AND MMNormale > MMLente// -- Conditions Signaux d'ouverture de VENTE EMA avec Multiples EMACVEMA = Close <= MMRapide AND MMRapide < MMNormale AND MMNormale < MMLenteELSE// -- Conditions Signaux d'ouverture d'ACHAT EMA avec une seule EMA20CAEMA = 1// -- Conditions Signaux d'ouverture de VENTE EMA avec une seule EMA20CVEMA = 1ENDIF// ** Conditions Stochastic// -- VariablesPeriode = 14KPeriode = 3DPeriode = 5// -- IndicateursStoch = Stochastic[Periode,KPeriode](close)MStoch = ExponentialAverage[DPeriode](Stoch)// -- Conditions Signaux d'ouverture d'ACHAT MACDCAMACD = Stoch >= MStoch AND CAEMAIF CAMACD = 1 THENAchatEnCours = 1ENDIF// -- Conditions Fin Signaux d'ouverture d'ACHAT MACDIF AchatEnCours = 1 AND Close < MMRapide AND Stoch <= MStoch THENAchatEnCours = 0ENDIF// -- Conditions Signaux d'ouverture de VENTE MACDCVMACD = Stoch <= MStoch AND CVEMAIF CVMACD = 1 THENVenteEnCours = 1ENDIF// -- Conditions Fin Signaux d'ouverture de VENTE MACDIF VenteEnCours = 1 AND Close > MMRapide AND Stoch >= MStoch THENVenteEnCours = 0ENDIFIF AchatEnCours THENBACKGROUNDCOLOR (0,200,200,30)ELSIF VenteEnCours THENBACKGROUNDCOLOR (200,0,100,30)ENDIFsignal=0if achatencours and not achatencours[1]thensignal=1drawarrowup(barindex,low) coloured(0,200,200)endifRETURN signal06/30/2020 at 8:50 AM #137623super 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
06/30/2020 at 9:25 AM #137631je 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?
Indicateur perso1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071/ -- Initialisation des variablesConditionMultiplesEMA = 1// ** Conditions EMA// -- IndicateursMMRapide = ExponentialAverage[20](Close)MMNormale = ExponentialAverage[50](Close)MMLente = ExponentialAverage[100](Close)IF ConditionMultiplesEMA = 1 THEN// -- Conditions Signaux d'ouverture d'ACHAT EMA avec Multiples EMACAEMA = Close >= MMRapide AND MMRapide > MMNormale AND MMNormale > MMLente// -- Conditions Signaux d'ouverture de VENTE EMA avec Multiples EMACVEMA = Close <= MMRapide AND MMRapide < MMNormale AND MMNormale < MMLenteELSE// -- Conditions Signaux d'ouverture d'ACHAT EMA avec une seule EMA20CAEMA = 1// -- Conditions Signaux d'ouverture de VENTE EMA avec une seule EMA20CVEMA = 1ENDIF// ** Conditions Stochastic// -- VariablesPeriode = 14KPeriode = 3DPeriode = 5// -- IndicateursStoch = Stochastic[Periode,KPeriode](close)MStoch = ExponentialAverage[DPeriode](Stoch)// -- Conditions Signaux d'ouverture d'ACHAT MACDCAMACD = Stoch >= MStoch AND CAEMAIF CAMACD = 1 THENAchatEnCours = 1ENDIF// -- Conditions Fin Signaux d'ouverture d'ACHAT MACDIF AchatEnCours = 1 AND Close < MMRapide AND Stoch <= MStoch THENAchatEnCours = 0ENDIF// -- Conditions Signaux d'ouverture de VENTE MACDCVMACD = Stoch <= MStoch AND CVEMAIF CVMACD = 1 THENVenteEnCours = 1ENDIF// -- Conditions Fin Signaux d'ouverture de VENTE MACDIF VenteEnCours = 1 AND Close > MMRapide AND Stoch >= MStoch THENVenteEnCours = 0ENDIFIF AchatEnCours THENBACKGROUNDCOLOR (0,200,200,30)ELSIF VenteEnCours THENBACKGROUNDCOLOR (200,0,100,30)ENDIFsignal=0if achatencours and not achatencours[1]thensignal=1drawarrowup(barindex,low) coloured(0,200,200)endifif VenteEnCours and not VenteEnCours[1]thensignal=2drawarrowup(barindex,low) coloured(0,200,200)endifRETURN signalL’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
Backtest12345678910111213141516171819202122// Definition of code parametersDEFPARAM CumulateOrders = False // Cumulating positions deactivated// Conditions to enter long positionsindicator1 = CALL "saclp dax m1 auto"c1 = (indicator1 = 1)IF c1 THENBUY 1 CONTRACT AT MARKETENDIF// Conditions to exit long positionsindicator2 = CALL "saclp dax m1 auto"c2 = (indicator2 = 2)IF c2 THENSELL AT MARKETENDIF// Stops and targetsSET STOP pLOSS 10SET TARGET pPROFIT 20dans 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,
06/30/2020 at 2:46 PM #13772807/01/2020 at 7:54 PM #138006bonsoir ,
pour voir le retour de ton indicateur ,tu peux graphé ta variable comme ci dessous
1234567891011121314151617181920212223// Definition of code parametersDEFPARAM CumulateOrders = False // Cumulating positions deactivated// Conditions to enter long positionsindicator1 = CALL "saclp dax m1 auto"c1 = (indicator1 = 1)IF c1 THENBUY 1 CONTRACT AT MARKETENDIF// Conditions to exit long positionsc2 = (indicator1 = 2)IF c2 THENSELL AT MARKETENDIF// Stops and targetsSET STOP pLOSS 10SET TARGET pPROFIT 20graph indicator1 -
AuthorPosts
Find exclusive trading pro-tools on