BFParticipant
New
Bonjour à tous,
voici un code simple de backtest mais il achète à l’ouverture de la bougie suivante, or je voudrai que :
Si la condition C1 est réalisée alors l’achat s’effectue au même moment (pas au close de la bougie en cours, ni à l’open de la bougie suivante)
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
ignored, indicator1, ignored = CALL "BF SCALP1 Long(Memo meta)"[70](open)
c1 = (indicator1 >= 0.5)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
ignored, ignored, indicator2 = CALL "BF SCALP1 Long(Memo meta)"[70](open)
c2 = (indicator2 >= 0.5)
IF c2 THEN
SELL AT MARKET
ENDIF
D’avance merci
Le plus proche de ce que vous pouvez obtenir est d’exécuter la stratégie sur une période d’une seconde.
Le code de stratégie est lu à la fin de chaque barre (toutes les plateformes de trading sont comme ça) et ainsi votre code sera lu et exécuté toutes les 1 seconde barre.
BFParticipant
New
Merci mais ce n’est pas ce que je cherche.
Donc je reformule si ce n’était pas clair:
l’état de la condition C1 est obtenu à l’ouverture d’une bougie (1 minutes, 1 heure, 1 jour) si elle est réalisée, alors je veux acheter dans la foulée (pendant la même bougie et avant sa fermeture)
Comment modifier mon code pour réaliser cela svp ?
l’état de condition C1 est obtenu à l’ouverture d’une bougie
Cela peut apparaître comme ci-dessus car la transaction est ouverte au début d’une bougie, mais le code est lu/exécuté à la clôture de la bougie précédente. Il n’y a que quelques millisecondes entre la fermeture de la mesure 1 et l’ouverture de la mesure 2.
Si vous organisez votre code comme ci-dessous, toutes les secondes, le code s’exécutera et vérifiera (sur une période de 5 minutes) si C1 = True et/ou C2 = True
Dormez dessus et vous verrez qu’utiliser un délai d’une seconde pour l’exécution du code de stratégie est le seul moyen d’obtenir ce que vous voulez.
// Definition of DEFPARAM code parameters
CumulateOrders = False // Cumulation of positions disabled
Timeframe (5 minutes)
// Conditions for opening a long position
ignored, indicator1, ignored = CALL “BF SCALP1 Long(Memo meta)”[70](open)
// Conditions for closing a long position
ignored, ignored, indicator2 = CALL “BF SCALP1 Long(Memo meta)”[70](open)
c1 = (indicator1 >= 0.5)
c2 = (indicator2 >= 0.5)
Timeframe (1 second)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF c2 THEN
SELL AT MARKET
ENDIF
BFParticipant
New
Merci )) mais cela ne fonctionne pas (en mode trading automatique un message d’erreur s’affiche: “erreur interne ..” )
Je reformule ma demande: imaginons une stratégie basée sur le RSI (14). c1=RSI (14) > x
Or la valeur du RSI varie pendant toute la durée de la bougie du timeframe choisi.
Ce que je veux c’est à l’open mémoriser la valeur de RSI / voir si C1 est réalisée et si oui alors, acheter immédiatement.
D’avance merci
BFParticipant
New
Merci GraHal, le temps de vérification à été long.
Je vais continuer à chercher car la solution que vous me donnez malheureusement ne me convient pas.
Je vais faire un autre post sur le thème “Comment lancer un ordre d’achat (ou de vente) pendant le cours d’une bougie sur le signal d’un indicateur”
Encore merci pour votre aide