novice tourne en rond
Forums › ProRealTime forum Français › Support ProOrder › novice tourne en rond
- This topic has 22 replies, 4 voices, and was last updated 5 years ago by lb.
-
-
01/04/2019 at 3:07 PM #87994
Bonjour, je me présente: Laurent, nouveau sur le forum, j’essaie de faire une programmation simple sous PRT, je suis nul en programmation, mais même avec la programmation assistée ça ne marche pas (0 occurrence trouvée).
ce que je cherche à backtester:
la bougie de l’avant veille est rouge: c1 = (close[2] < open[2])
la clôture de l’avant veille est la plus basse des 5 bougies qui la précèdent: c2 = (close[2] < lowest[5](low))
la bougie d’hier (de la veille) est verte: c3 = (DClose(1) > DOpen(1))
et sa clôture est supérieure à la clôture de l’avant veille: c4 = (DClose(1) > close[2])
la bougie du jour est rouge: c5 = (DClose(0) < DOpen(0))
et sa clôture est inférieure à celle de l’avant veille: c6 = (DClose(0) < close[2])
le macd (2,4,1) (à la clôture) du jour est supérieur au macd (2,4,1) de l’avant veille: c7 = ??
alors si c1, c2, c3, c4, c5, c7 vérifiées achat 1 lot à l’ouverture de j+1 et vente de ce même lot à la fermeture de j+1 (je n’ai pas non plus trouvé la fonction vente à la fermeture j+1)
voili voilou, si quelqu’un peut m’aider je l’en remercie par avance
Laurent
01/04/2019 at 3:12 PM #87995Y-a t’il un code en l’état pour éviter de tout retaper ? Merci.
Ouvrir et fermer une position par choix, ne sera possible que si le support multi timeframe est activé, ce qui n’est pas le cas actuellement le cas. Donc je peux aider à faire le programme, mais il ne sera pas possible de le tester pour le moment de ton côté.
01/04/2019 at 3:22 PM #87996ça c’est du rapide, merci !
voici le code (à vérifier car je l’ai fait en programmation assistée et modifié le plus bas des 5 derniers jours), pour la sortie j’ai modifié le critère par un croisement baissier des prix avec une mm courte (c’est dommage que l’on ne puisse pas programmer une sortie automatique à la clôture de la journée où la position a été engagée, ou à l’ouverture du lendemain).
et merci !!
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé// Conditions pour ouvrir une position acheteuse
c1 = (close[2] < open[2])
c2 = (close[2] < lowest[5](low))
c3 = (DClose(1) > DOpen(1))
c4 = (DClose(1) > close[2])
c5 = (DClose(0) < DOpen(0))
c6 = (DClose(0) < close[2])
indicator1 = MACD[2,4,1](MACD[24,52,1](close))
indicator2 = MACD[2,4,1](MACD[24,52,1](close))
c7 = (indicator1 > indicator2[2])IF c1 AND c2 AND c3 AND c4 AND c5 AND c6 AND c7 THEN
BUY 1 SHARES AT MARKET TOMORROWOPEN
ENDIF// Conditions pour fermer une position acheteuse
indicator3 = ExponentialAverage[4](close)
c8 = (close CROSSES UNDER indicator3)IF c8 THEN
SELL AT MARKET
ENDIF01/04/2019 at 9:26 PM #8802101/04/2019 at 10:04 PM #88022oui, il s’agit du macd (2,4,1) et la condition est qu’il y ait une divergence entre le macd du jour (que traduit la programmation assisté par indicator1) et celui de l’avant veille (indicator1[2])
je ne sais pas pourquoi la programmation assistée rajoute le macd (24,52,1)…
cdt,
01/05/2019 at 9:30 PM #88048bonsoir
C2 bloque et j’ai modifier C7
par contre si c2 = (close[2] >lowest[5](low)) ça marche
cdt
12345678910111213141516171819202122232425262728// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Conditions pour ouvrir une position acheteusec1 = (close[2] < open[2])//c2 = (close[2] < lowest[5](low))c3 = (DClose(1) > DOpen(1))c4 = (DClose(1) > close[2])c5 = (DClose(0) < DOpen(0))c6 = (DClose(0) < close[2])//indicator1 = MACD[2,4,1](MACD[24,52,1](close))//indicator2 = MACD[2,4,1](MACD[24,52,1](close))indicator1 = MACDline[12,26,9](close)indicator2 = MACD[12,26,9](close)c7 = (indicator1 > indicator2)//AND c2IF c1 AND c3 AND c4 AND c5 AND c6 and c7 THENBUY 1 SHARES AT MARKET TOMORROWOPENENDIF// Conditions pour fermer une position acheteuseindicator3 = ExponentialAverage[4](close)c8 = (close CROSSES UNDER indicator3)IF c8 THENSELL AT MARKETENDIF01/06/2019 at 10:09 AM #88054bonjour fifi, merci pour ton aide et le temps passé.
J’ai essayé tes modifications mais je n’arrive pas à ce que je souhaite backtester:
dans un premier temps je veux que le système identifie la configuration suivante: une bougie rouge (avec clôture < aux 5 qui la précède) suivie d’une bougie verte suivie à nouveau d’une bougie rouge avec une clôture plus basse que celle de la bougie rouge d’avant hier
=> la condition c2 est: la clôture d’avant hier est la plus basse des 5 clôtures qui la précède (je crois que ma 1ère erreur est que le code ‘lowest[5](low)’ renvoi au plus bas des 5 dernières bougies à partir de celle d’aujourd’hui et non à partir de la bougie d’avant hier)
si la figure en chandelier ci-avant est identifiée je souhaite alors que le système vérifie s’il y a une divergence sur le macd (2,4,1) entre l’avant dernière bougie rouge (donc celle d’avant hier) et la dernière bougie rouge (donc celle d’aujourd’hui): la valeur du macd (2,4,1) d’avant hier est > à la valeur du macd (2,4,1) du jour
si configuration en chandelier décrite ci-dessus + divergence sur macd alors achat à l’ouverture de la journée suivante (cf copie écran)
pour la sortie à voir si on peut cumuler un stop suiveur à 1 % du gain max et un stop loss à 1 % du montant investi
si c’est trop compliqué ce n’est pas grave merci quand même ✌
01/06/2019 at 10:15 AM #8805601/06/2019 at 10:54 AM #88059c’est en journalier bien sur.
j’ai essayé de répondre a tes questions .
Cdt
dans un premier temps je veux que le système identifie la configuration suivante: une bougie rouge (avec clôture < aux 5 qui la précède) suivie d’une bougie verte suivie à nouveau d’une bougie rouge avec une clôture plus basse que celle de la bougie rouge d’avant hier
Dclose(0) <Dopen(0) and Dlow(0)<DLow(5)
=> la condition c2 est: la clôture d’avant hier est la plus basse des 5 clôtures qui la précède (je crois que ma 1ère erreur est que le code ‘lowest[5](low)’ renvoi au plus bas des 5 dernières bougies à partir de celle d’aujourd’hui et non à partir de la bougie d’avant hier)
Dclose(2)<Dclose(5)
si la figure en chandelier ci-avant est identifiée je souhaite alors que le système vérifie s’il y a une divergence sur le macd (2,4,1) entre l’avant dernière bougie rouge (donc celle d’avant hier) et la dernière bougie rouge (donc celle d’aujourd’hui): la valeur du macd (2,4,1) d’avant hier est > à la valeur du macd (2,4,1) du jour
1 user thanked author for this post.
01/06/2019 at 12:01 PM #8806101/09/2019 at 10:33 PM #88275Bonjour,
je souhaiterais pouvoir coder la condition c1 suivante, je vous met ce que j’ai écrit mais cela ne marche pas , pouvez vous m’aider, merci :
//la clôture du jour doit être supérieure à MME12 du jour et supérieure à MME24 du jour mais si clôture du jour supérieure à MME12 et inférieur à MME24 du jour alors MM5 du jour et MM20 du jour doivent être haussières
indicator1 = Average[5](close)
indicator2 = ExponentialAverage[12](close)
indicator3 = ExponentialAverage[24](close)
indicator4 = ExponentialAverage[20](close)
c1 = (dclose(0)> indicator2 [0] and dclose (0)> indicator3 [0]) or (dclose (0) > indicator2 [0] and dclose (0) < indicator3 [0] and indicator1 [0] > indicator1 [1] and indicator4 [0] > indicator4 [1])IF c1 THEN
BUY 1 SHARES AT MARKET TOMORROWOPEN
ENDIF// Conditions pour fermer une position acheteuse
c2 = (close < indicator1)IF c2 THEN
SELL AT MARKET
ENDIF01/10/2019 at 7:18 AM #88285123456789101112131415161718indicator1 = Average[5](close)indicator2 = ExponentialAverage[12](close)indicator3 = ExponentialAverage[24](close)indicator4 = ExponentialAverage[20](close)c1 = (dclose(0)> indicator2 [0] and dclose (0)> indicator3 [0]) or (dclose (0) > indicator2 [0] and dclose (0) < indicator3 [0] and indicator1 [0] > indicator1 [1] and indicator4 [0] > indicator4 [1])IF c1 THENBUY 1 SHARES AT MARKET TOMORROWOPENENDIF// Conditions pour fermer une position acheteusec2 = (close < indicator1)IF c2 THENSELL AT MARKETENDIF
@lb ► voila le résultat formaté en utilisant le bouton [Insert PRT code] mais je ne peux t’aider pour ta question …01/10/2019 at 7:57 AM #8828901/10/2019 at 8:04 AM #8829001/12/2019 at 11:56 PM #88445Bonsoir,
je ne comprend pas, j’ai ce bout de code qui dit que:
=> si MACD (48,104,1) du jour est supérieur à MACD (48,104,1) de la veille alors achat
=> puis quand clôture du jour sous moyenne mobile exponentielle 2 alors vente des positions achetées
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé// Conditions pour ouvrir une position acheteuse
indicator1 = MACDline[48,104,1] (close)
c1 = (indicator1 [0]> indicator1[1])IF c1 THEN
BUY 1 SHARES AT MARKET
ENDIF// Conditions pour fermer une position acheteuse
indicator2 = exponentialAverage[2](close)
c2 = (DClose(0) < indicator2 [0])IF c2 THEN
SELL AT MARKET
ENDIFje ne sais pas à quoi correspond la flêche jaune et croix jaune sur la bougie du 21/03/2018 (cf copie écran en pj): on dirait l’exécution d’un ordre de sortie de marché sauf qu’il n’y a pas de position en cours (et cela se reproduit à maintes reprises).
de plus il est normal que le 20/03/2018 la précédente position soit vendue à l’ouverture (puisque condition de sortie C < MME2 remplie le 19/03/2018) toutefois à la clôture de ce même 20/03/2018 la condition pour acheter (MACD (48,104,1) haussier) est toujours valide donc on devrait avoir un ordre d’achat le 21/03/2018 sauf que non.
une idée d’où cela pourrait venir?
d’avance merci
-
AuthorPosts
Find exclusive trading pro-tools on