Bonjour, je n’arrive pas à créer correctement la sortie.
la sortie se fait en target sur mm19 exponentiel (limit) et fonctionne bien
mais la deuxième sortie en clôture Bollinger inférieur pour un long ne se fait pas.
Voici le code et l’image, merci pour votre aide.
Bises Denis
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
DEFPARAM FLATBEFORE = 090000
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAM FLATAFTER = 210000
// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 5 OR OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
REM indicateur
MM1 = Average[7](close)[3]
MM2 = Average[23](close)
macd1 = MACDline[12,26,9](close)
signal1 = ExponentialAverage[9](MACDline[12,26,9](close))
macd2 = MACDline[24,52,18](close)
signal2 = ExponentialAverage[18](MACDline[24,52,18](close))
bolsup = BollingerUp[20](close)
bolinf = BollingerDown[20](close)
out1 = ExponentialAverage[19](close)
REM long
c1 = (macd1 > signal1)
c2 = (macd2 > signal2)
c3 = (MM1 > mm2)
IF c1 AND C2 and c3 THEN
BUY 1 SHARES AT bolinf limit
ENDIF
REM out long
SELL AT out1 limit
REM short
D11 = (macd1 < signal1)
D12 = (macd2 < signal2)
d3 = (MM1 > mm2)
IF D11 AND D12 and d3 THEN
SELLSHORT 1 SHARES AT bolsup limit
ENDIF
REM out short
EXITSHORT AT out1 limit
////////////
StAchat = close < bolinf
SET STOP LOSS StAchat
StVente = close > bolsup
SET STOP LOSS StVente
Je vois 2 problèmes dans ton code.
Si tu veux faire 2 sorties différentes, alors il faut sortir partiellement à chaque fois. Ici, tu prends 1 contrat et tu le sorts intégralement à la ligne 37 et 49 (tu devrais prendre 2 contrats et en sortir qu’1 à chacun de tes objectifs).
Pour ta deuxième sortie (à partir de la ligne 51 si je ne m’abuse), tu utilises une condition booléenne pour placer un stoploss? Soit les instructions SET STOP LOSS place des stoploss à 0 ou 1 (en fonction de la variable StAchat ou StVente)…
En résumé, pour la deuxième sortie, tu dois utiliser la même façon de faire que pour la première, mais en modifiant la quantité de contrat à sortir :
SELL 0.5 shares AT out1 limit
SELL 0.5 shares at bolinf limit
Merci pour ta réponse Nicolas,
En fait ce n’est pas une deuxième sortie, c’est un stop si le prix clôture à l’extérieur de la bollinger.
Bon, de toutes façons prt fausse les résultats d’un back test, dans la journée même. 2 résultats différents à 4 heure d’intervalle.
Inutile de perdre son temps, Merci quand même et bon courage Nicolas