Avec l’aide de l’auteur du produit (en off site), à priori il ne faut pas utiliser “updateonclose” dans les instruction TIMEFRAME, voilà une version qui me semble fonctionner (à vérifier, mais les CALL renvoient bien les bonnes infos maintenant).
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
//defparam preloadbars=15000
// 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 = 080000
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAM FLATAFTER = 215900
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée
noEntryBeforeTime = 080000
timeEnterBefore = time >= noEntryBeforeTime
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
noEntryAfterTime = 220000
timeEnterAfter = time < noEntryAfterTime
// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
contractsize = 1
Timeframe (15 minutes)//, updateonclose)
Signal15 = CALL "TrendDecoder_datas"(close)
if signal15=1 then //signal haussier
trend15 = 1 //tendance haussière
elsif signal15=-1 then//signal baissier
trend15 = -1//tendance baissière
endif
Timeframe (5 minutes)//, updateonclose)
Signal5 = CALL "TrendDecoder_datas"(close)
if signal5=1 then //signal haussier
trend5 = 1 //tendance haussière
elsif signal5=-1 then//signal baissier
trend5 = -1//tendance baissière
endif
Timeframe (default)
Signal1 = CALL "TrendDecoder_datas"(close)
if signal1=1 then //signal haussier
trend1 = 1 //tendance haussière
elsif signal1=-1 then//signal baissier
trend1 = -1//tendance baissière
endif
OrderTypelong = not longonmarket and Trend1>0 and Trend5>0 and Trend15>0 and timeEnterAfter AND not daysForbiddenEntry
OrderTypeshort = not shortonmarket AND Trend1<0 and Trend5<0 and Trend15<0 and timeEnterAfter and not daysForbiddenEntry
if longonmarket and trend5=-1 then
sell at market
endif
if shortonmarket and trend5=1 then
exitshort at market
endif
if OrderTypelong then //market BUY
buy contractsize contract at market
endif
if OrderTypeshort then //market SELLSHORT
sellshort contractsize contract at market
endif
graph signal15 coloured("red")
graph signal5 coloured("pink")
graph signal1 coloured("yellow")
//graph trend1 coloured("red")
//graph trend5 coloured("pink")
//graph trend15 coloured("yellow")
Bonjour Chris et Nicolas
Merci beaucoup je teste ce soir
Ce qui m’étonne c’est que mes soucis étaient déjà présents avant de rajouter updateonclose et c’est suite au post de Chris que je l’ai ajouté
Je vérifierai et reviens vous faire le compte rendu
A très très bientôt
Arnaud
Génial ! , Merci Nicolas et Chris !
Effectivement çà fonctionne même lorsque je restreint à +1 et -1
C’est top, je n’ai plus qu’à rajouter des trucs à ma sauce et des stops…pour tester ce que çà peut donner
Les soirées sont trop courtes…
Bonne soirée,
Arnaud
@Pensera pas compris cette réponse ; une erreur de post sans doute !?;-)
Grosse erreur je répondais à quelqu’un sur une autre file et c’est collé là
le site a ramé par moment ce week-end…
Bonjour,
Merci pour le partage de ce code.
J’ai acheté l’indicateur hier et après installation, quand j’essaie de faire un backtest avec celui-ci j’ai un msg d’erreur indiquant que l’indicateur “TrendDecoder_datas” n’a pas été trouvé.
Lorsque j’enlève “_datas” , il me renvoie un msg indiquant “la fonction “TrendDecoder” appelée retourne 7 valeurs mais que votre code en a besoin de 1″.
Pourriez-vous m’éclairer svp ou me donner la bonne syntaxe à utiliser ?
Il s’agit d’un code à part que l’auteur distribue aux personnes désireuses de faire des backtests/robots. Je pense qu’il faut lui demander directement.
@Nicolas, merci d’avoir relayé l’info pendant les vacances ;
@Axel98, vous avez tout désormais ^^
A votre disposition,
Chris
Bonjour a tous,
Suite a l’acquisition de TrendDecoder et de sa fonction associée TrendDecoder_datas j’atterris sur ce poste que j’ai parcouru entièrement (très intéressant d’ailleurs, je n’avais jamais encore utilisé le multi timeframe !)
Je ne sais pas si ce post est approprié pour ma question mais vu que je me suis inspiré des backtest fournis sur celui ci, je me permets (n’hésitez pas a me dire s’il faut créer un nouveau topic)
Je fais donc appel a la fonction TrendDecoder_datas pour récupérer les signaux (et maintenant les trail long et short), et pour bien comprendre comment cela fonctionne je graph le tout pour voir ce qui ressort.
Dans le screenshot ci-joint, je graph seulement le signal, sur le TF affiché (M5 en l’occurence).
Ce que j’ai pas trop compris, c’est que par exemple au sein de la box grise, le signal n’est pas constant. Au début de celle ci j’ai bien l’info signal = 2 (boîte grise pendant une tendance haussière), puis il revient à 0, repasse à 2, va même à -1, alors qu’on n’est pas sorti de la boite grise !
D’où mon interrogation …
Peut être pourriez vous m’apporter des éclaircissements ?
D’avance merci pour vos retours,
Merci Co_111 ;
je check, vais reproduire et reviens vers vous ;
Chris
Bonjour TrendDECODERS,
Suite à de nombreuses demandes, nous avons mis à jour notre fonction de backtests.
Vous avez maintenant la possibilité d’inclure des valeurs de Trailing Stop Loss pour effectuer vos sorties grâce aux variables “TrailLong” et “TrailShort” qui correspondent respectivement aux limites des Nuages Bleu et Orange ;
TrailLong est la limite la plus éloignée du prix et TrailShort la plus proche ;
Signals, TrailLong, TrailShort = CALL “TrendDecoder_datas”(close)
Les 6 valeurs de la variable “Signals” sont les suivantes :
// 1 = nouvelle tendance haussière détectée
// -1 = nouvelle tendance baissière détectée
// 2 = GreyBOX pendant la tendance haussière
// -2 = GreyBOX pendant la tendance à la baisse
// 3 = rupture de la RealTime TrendLine rouge
// -3 = rupture de la RealTime TrendLine bleue
Vous avez également ce post sur Prorealcode qui peut vous aider :
Backtests timeframe multiple avec TrendDecoder
=> Bien sûr, il faudra remplacer la fonction ” TrendDecoder_datas ” du code par celle ci-dessus car nous l’avons améliorée 😉.
Timeframe (15mn, updateonclose)
Signal15 = CALL “TrendDecoder_datas”(close) => Signals15, TrailLong15, TrailShort15=CALL “TrendDecoder_datas”(close)
NB : la fonction CALL “TrendDecoder_datas”(close) est un bonus gratuit donné uniquement sur demande aux clients TrendDECODER avec licence identifiée.