Bonjour à tous,
je vous partage une petite stratégie en automatique, efficace sur les paires forex en M1, si quelqu’un a des suggestions d’améliorations n’hésitez pas 🙂
ci joint:
//-------------------------------------------------------------------------
// Code principal : paire devises
//-------------------------------------------------------------------------
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
timeEnterBefore = time >= 083000
timeEnterAfter = time <= 170000
// Conditions pour ouvrir une position acheteuse
indicator1 = ExponentialAverage[3](close)
indicator2 = Average[20](close)
c1 = (indicator1 CROSSES OVER indicator2)
indicator3 = RSI[14](close)
c2 = (indicator3 > 50)
indicator4 = MACD[6,17,8](close)
c3 = (indicator4 > 0)
IF c1 AND c2 AND c3 THEN
BUY 2 SHARES AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
indicator5 = Average[20](close)-3*std[20](close)
c4 = (close CROSSES UNDER indicator5)
IF c4 THEN
SELL AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
indicator6 = ExponentialAverage[3](close)
indicator7 = Average[20](close)
c5 = (indicator6 CROSSES UNDER indicator7)
indicator8 = RSI[14](close)
c6 = (indicator8 < 50)
indicator9 = MACD[6,17,8](close)
c7 = (indicator9 < 0)
IF c5 AND c6 AND c7 THEN
SELLSHORT 2 SHARES AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
indicator10 = Average[20](close)+3*std[20](close)
c8 = (close CROSSES OVER indicator10)
IF c8 THEN
EXITSHORT AT MARKET
ENDIF
Merci pour le partage ! 🙂
Quelle est la taille du spread dans tes backtests ? Car sans c’est toujours plus efficace en effet 😉
Bonjour Nicolas,
en général je met 2 en spreads par “sécurité”
Merci pour le partage.
Pour info, les variables timeEnterBefore et timeEnterAfter ne sont pas utilisées.
J’ai testé la stratégie sur EUR/USD du 6 avril au 26 mai (spread=2). Les résultats sont très mauvais.
Bonjour
Je ne comprend pas pourquoi les variables timeEnterBefore et timeEnterAfter ne sont pas utilisées, pouvez vous m’éclairer?
Bonne journée.
Elles ne sont pas utilisées car ton code ne les utilisent pas tout simplement 🙂
Tu as définis 2 variables booléennes qui te donnent 0 ou 1 (faux ou vrai) en fonction des conditions de temps que tu as déclaré, hors à aucun moment dans le reste du code tu utilises ces valeurs.
Je suppose que tu voulais que la stratégie n’autorise aucun ordre avant et après certains horaires, tu peux utiliser un DEFPARAM pour cela :
defapram FlatBefore = 083000
defparam FlatAfter = 170000
dans ce cas toutes les postions ouvertes seront fermées automatiquement avant FlatBefore et après FlatAfter.
en général je met 2 en spreads par “sécurité”
dans le cas présent, avec le spread, même si les entrées et la stratégie est bonne, les résultats sont mauvais. Désolé.