Bonjour à tous,
Je vous sollicite encore une fois de plus chers camarades.
J’aurais voulu coder un backtest/algo qui permette de:
-prendre position LONG si la bougie qui précède est haussière.
-prendre position SHORT si la bougie qui précède est baissière.
Dans tous les cas, on close le trade à la fin de la bougie de prise de position.
J’ai fait ceci, mais après avoir vérifié, les prises de positions ne sont pas bonnes.
Je vous remercie par avance pour votre aide!
Tony
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
c1 = (close[1] > open[1])
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
c2 = (close > open)
c3 = (close < open)
IF c2 OR c3 THEN
SELL AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
c4 = (close < open)
IF c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
c5 = (close > open)
c6 = (close < open)
IF c5 OR c6 THEN
EXITSHORT AT MARKET
ENDIF
prenez une position LONGUE si la bougie précédente est haussière.
prenez une position COURTE si la bougie précédente est baissière.
Votre condition longue dans votre code est vraie si la bougie avant la bougie qui vient de se fermer est haussière …
c1 = ( fermer [ 1 ] > ouvrir [ 1 ] )
Votre condition courte dans votre code est vraie si la bougie qui vient de se fermer est baissier …
c4 = ( fermer < ouvrir )
Bonjour Grahal,
Merci pour ta réponse.
J’entends bien.
Et pourtant, le proorder n’affiche pas de prises de positions systématique lorsque la bougie[1] est baissière ou haussière.
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
c1 = (close > open)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
//c2 = (close > open)
c3 = (close < open)
IF c3 THEN
SELL AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
c4 = (close < open)
IF c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
c5 = (close > open)
//c6 = (close < open)
IF c5 THEN
EXITSHORT AT MARKET
ENDIF
Supprimez la ligne 1 et < / span > < / span > sur la ligne 32… le formatage a été foiré.
Merci Grahal,
J’avais bien pensé supprimé C2 et C6 mais cela ne cloture la position que lorsqu’il y a une bougie inverse au sens du trade. Pas systématiquement à la fin de la bougie de prise de position.
Merci beaucoup quand même.
Tony
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
c1 = (close > open)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
//c2 = (close > open)
//c3 = (close < open)
IF Longonmarket THEN
SELL AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
c4 = (close < open)
IF c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
//c5 = (close > open)
//c6 = (close < open)
IF Shortonmarket THEN
EXITSHORT AT MARKET
ENDIF
Merci beaucoup Grahal!
C’est exactement ça.
Purée, “if longonmarket” était si logique. Et pourtant, je suis passé à travers. Je n’ai pas encore la logique pour coder.
Ca viendra…peut-être.
Et tout cas, merci encore!
Bonne après-midi!
Tony