Bonjour,
Cela fait plusieurs fois que j’ai le problème. J’ai des algos “scalpeurs” en unité de temps journalières qui prennent 1 bougie en TP. Par exemple, ce dimanche, PRT me dit qu’il a ouvert une position à 22h le dimanche. L’algo est codé pour clôturer dès la prochaine bougie qui clôture au dessus du prix d’entrée en position. Le problème, c’est que le lundi à 1h du matin, il a fermé la position. il aurait dû la fermer le mardi. Autant dire qu’il n’a pas pris le gain qu’il aurait dû. Comment faire pour éviter ce problème?
Merci d’avance pour votre aide
J’ai rajouté une capture d’écran, je sais pas si ça peut aider à être clair
C'est probablement un problème de codage. Sans connaître le code, je ne peux pas vous aider. Désolé.
Bonjour,
Je vous remercie pour votre intérêt
Voici le code en question
// Définition des paramètres du code
DEFPARAM CumulateOrders = false // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
mysma20 = Average[20](close)
mysma50 = Average[52](close)
mysma200 = Average[200](close)
mysup=Supertrend[1.5,10]
c1 = (mysma20 > mysma50)
myema13=ExponentialAverage[12](close)
c2 = (myema13 > myema13[1])
c3 = (myema13[1] < myema13[2])
c4 = myema13>mysma20
c5 = close>mysma50
IF c1 AND c2 AND c3 and c4 and c5 THEN
nbcontratsinitiaux=1
nbcontrats=nbcontratsinitiaux
diff=250
set stop ploss 500
BUY nbcontratsinitiaux CONTRACT AT MARKET
ENDIF
IF longonmarket THEN
IF NbContrats = NbContratsInitiaux AND positionperf > 0 or (close < mysma50) THEN
SELL nbcontratsinitiaux CONTRACT AT market
//NbContrats = NbContrats - 1/3
//SET STOP breakeven
//ELSIF NbContrats = NbContratsInitiaux - 1/3 AND (close>=BollingerUp[20](close) or (close < mysma50) or (close < mysup)) and positionperf>0 THEN
//Sell nbcontratsinitiaux/3 contract at market
//NbContrats = NbContrats - 1/3
////set stop BREAKEVEN
//elsif NbContrats = NbContratsInitiaux - 2 *(1/3) and POSITIONPERF >0 and (close < mysma50 or close crosses under mysup) THEN
//sell at market
ENDIF
endif
Il n'y a rien d'étrange dans le code, la raison sera donc motivée par l'ouverture dimanche… Pour éviter cela, une condition pourrait être ajoutée pour que le système commence à fonctionner à partir de 00h00 le lundi.
Bonjour, je vous remercie pour votre réponse. Oui c’est effectivement mon idée. J’ai essayé de trouver comment le coder, je n’y arrive pas. Auriez vous un lien avec un exemple ou un bout de code s’il vous plaît ? merci d’avance. j’ai encore eu le problème ce dimanche :s
Bonjour, vous pouvez écrire
forbiddendays=opendayofweek=6 or opendayofweek=0
if not forbiddendays and yourconditions then
buy 1 contract at market
endif
Bonjour,
Merci beaucoup pour votre réponse. J’ai honte, je viens de trouver les codes pour les horaires et jours dans la version de codage assistée ^^ :p. Je ne m’y étais jamais intéressé.
Bon, je vais essayé comme ça. On va voir si ça marche. Car toujours en back test, on dirait que ça bug quand même.