Bonjour à tous,
Voici une demande de codage de stratégie qui m’a été faite :
Avant toute chose, je rappelle qu’il peut m’arriver d’avoir 20 emails par jour, et plusieurs demandes de ce genre. Je ne peux donc pas toutes les traiter. Je vous invite à relire la page :
« Au sujet des demandes de codages et explications«
Merci par avance.
Concernant cette demande, elle est intéressante, pertinente, avec des critères précis.
Voici les 2 captures d’écran envoyées par notre ami lecteur :
Il n’est effectivement pas possible de backtester sur plusieurs unités de temps (sur le logiciel ProRealTime que j’utilise).
Nous allons contourner le problème de la façon suivante :
- nous rapportons tout à l’unité de temps DAILY (journalier
- pour l’unité de temps hebdomadaire : 1 semaine = 5 jours de trading (nous multiplions les périodes par 5)
- 1 mois = 4 semaines, ou plus exactement 22 jours (variable bien sûr)
Pour la mise au point du screener, le timeframe(monthly) n’existe pas chez ProRealTime.
De la même façon, nous utilisons le timeframe(weekly) en adaptant les périodes.
Voici le code du SCREENER :
iMACD = MACD[12,26,9](close) MMA26 = average[26](close) MMA50 = average[50](close) MME12 = exponentialaverage[12](close) timeframe(weekly) c1 = close > MMA26 c2 = close > MMA50 c3 = iMACD > iMACD[1] timeframe(daily) c4 = close > MMA50 c5 = iMACD > iMACD[1] c6 = MME12 > MME12[1] screener[c1 and c2 and c3 and c4 and c5 and c6]
Voici le code du BACKTEST :
iMACDh = MACD[60,130,45](close) iMACD = MACD[12,26,9](close) MMA130 = average[130](close) MMA250 = average[250](close) MMA50 = average[50](close) MME12 = exponentialaverage[12](close) // weekly c1 = close > MMA130 c2 = close > MMA250 c3 = iMACDh > iMACDh[1] // daily c4 = close > MMA50 c5 = iMACD > iMACD[1] c6 = MME12 > MME12[1] IF c1 and c2 and c3 and c4 and c5 and c6 THEN buy 1000 cash at market ENDIF Cs = MME12 < MME12[1] IF Cs THEN sell at market ENDIF
Et enfin, voici une VIDEO qui vous explique toute la démarche, pas à pas.
Bon visionnage !