Bonjour à tous,
Je débute sur le forum et dans le trading de manière générale, j’ai essayé de coder en utilisant la programmation par bloc dans ProRealtime un système assez simple basé sur la Moyenne Mobile 20 et le MACD.
Mon but est de trader le DAX.
L’idée est d’utiliser les croisements des courbes de l’indicateur pour demander de passer un ordre d’achat si j’ai un croisement à la hausse et un prix inferieur à ma Moyenne Mobile 20 et de vendre la position si j’ai :
Ma ligne MACD qui croise à la baisse la ligne Signal
J’ai voulu en faire de même pour passer des ordres de vente avec cette fois comme conditions :
Si le prix est supérieur à ma Moyenne Mobile et si j’ai ma ligne MACD signal > MACD de vendre
Et en condition de rachat si j’ai un croisement à la hausse de ma ligne MACD Signal et MACD ligne.
J’ai backtesté l’histoire, première remarque le système est plus performant sur des unités de temps comme 15 min.
Deuxième remarque quand je regarde les ordres passés, j’ai bien l’impression sauf si je fais fausse route que le système fonctionne mais alors pas du tout comme je l’imagine.
Je vous présente ledit code :
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
indicator1 = MACDSignal[5,12,9](close)
indicator2 = MACDline[5,12,9](close)
c1 = (indicator1 CROSSES OVER indicator2)
indicator3 = MACDSignal[5,12,9](close)
indicator4 = MACD[5,12,9](close)
c2 = (indicator3 < indicator4)
indicator5 = Average[20](close)
c3 = (close <= indicator5)
IF c1 AND c2 AND c3 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
indicator6 = MACDSignal[5,12,9](close)
indicator7 = MACDline[5,12,9](close)
c4 = (indicator6 CROSSES UNDER indicator7)
IF c4 THEN
SELL AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
indicator8 = Average[20](close)
c5 = (close < indicator8)
indicator9 = MACDSignal[5,12,9](close)
indicator10 = MACD[5,12,9](close)
c6 = (indicator9 > indicator10)
IF c5 OR c6 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
indicator11 = MACDSignal[5,12,9](close)
indicator12 = MACDline[5,12,9](close)
c7 = (indicator11 CROSSES OVER indicator12)
IF c7 THEN
EXITSHORT AT MARKET
ENDIF
// Stops et objectifs
SET STOP %LOSS 3
[attachment file=”188800″]
Je sais qu’il n’est absolument pas parfait rien qu’à voir les trades perdants mais je compte imaginer des d’autres conditions afin de sécuriser les ordres comme par exemple essayer de ne pas lui faire passer de trade à la vente de mon achat si MACD est inferieur a 0 et que les croisements se font sous le 0 et de même pour les ordres de vente à découvert (inverser évidement).
Si vous avez des critiques constructives et d’autres piste d’améliorations je suis preneur.
j’ai tester ce code la aussi mais son fonctionnement reste obscure pour moi son petit nom est MACD 5min (4):
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
indicator1 = MACDSignal[5,12,9](close)
indicator2 = MACDline[5,12,9](close)
c1 = (indicator1 CROSSES OVER indicator2)
indicator3 = MACDSignal[5,12,9](close)
indicator4 = MACD[5,12,9](close)
c2 = (indicator3 < indicator4)
indicator5 = Average[20](close)
c3 = (close <= indicator5)
IF c1 AND c2 AND c3 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
indicator6 = MACDSignal[5,12,9](close)
indicator7 = MACDline[5,12,9](close)
c4 = (indicator6 CROSSES UNDER indicator7)
IF c4 THEN
SELL AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
indicator8 = Average[20](close)
c5 = (close < indicator8)
indicator9 = MACDSignal[5,12,9](close)
indicator10 = MACD[5,12,9](close)
c6 = (indicator9 > indicator10)
IF c5 OR c6 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
indicator11 = MACDSignal[5,12,9](close)
indicator12 = MACDline[5,12,9](close)
c7 = (indicator11 CROSSES OVER indicator12)
IF c7 THEN
EXITSHORT AT MARKET
ENDIF
// Stops et objectifs
SET STOP %LOSS 3
[attachment file=”188800″]
Je remercie toutes les personnes qui ont pris le temps de me lire et celles qui me répondrons !
Bien Cordialement.