wtrend = tendance haussière ou baissière en UT hebdo
trend = idem mais en UT journalier
Bonjour, oui ajouté le pourcentage à la baisse en textes et pourquoi pas pas créer un screener qui détecte le passage à la baisse en hebdo et journaliers.
En tout cas merci.
Le screener qui détecte le passage à au vert comment puis je faire pour modifié les unités de temps exemple je souhaite trouvé un passage en vert en unité de temps en H4 et H1 ?
Bonjour ,
Je ne sais pas si j’ai un bug que chez moi ou si c’est généralisé mais il semble que les valeurs retournées par les instructions PRTBandsShortTerm et PRTBandsMediumTerm soient inversées.
En clair un screener simple d’une ligne : screener ((PRTBandsShortTerm – PRTBandsMediumTerm ) as “ecart”) retourne des valeurs opposées au résultat attendu. exemple -4 au lieu de 4 pour la valeur de l’ecart.
PRTBandsShortTerm retourne la valeur de de la ligne moyen terme et PRTBandsMediumTerm retourne la valeur de la ligne court terme.
Le phénomène ne se produit pas quand ces 2 instructions sont dans des indicateurs , le bug n’apparaît que dans un screener.
Le phénomène se produit en v11 et v10.3 binck.
D’autres ont-ils constaté ce bug ?
Cordialement
pourquoi pas pas créer un screener qui détecte le passage à la baisse en hebdo et journaliers.
Oui pourquoi pas ? 🙂 Si c’est utile on peut le coder bien sûr.
pour modifié les unités de temps exemple je souhaite trouvé un passage en vert en unité de temps en H4 et H1 ?
il faut simplement modifier les définitions des unités de temps dans les instructions TIMEFRAME dans l’exemple que j’ai codé.
Exemple:
TIMEFRAME(4 hours)
// ...... le code du TF 4 heures
TIMEFRAME(1 hour)
// ...... le code du TF 1 heure
PRTBandsShortTerm retourne la valeur de de la ligne moyen terme et PRTBandsMediumTerm retourne la valeur de la ligne court terme.
Merci pour ce retour, je constate le même phénomène, je fais en sorte que ce soit corrigé rapidement 😳
Bonjour,
J’ai composé un backtest simple sur PRT Bands que je teste sur Albioma mais je me retrouve face à des comportements étranges.
Voici le code du backtest:
DefParam CumulateOrders=false
up = PRTBandsUp
dn = PRTBandsDown
//le prix casse la bande supérieure
if close crosses over up and trend <= 0 then
trend = 1
elsif TradePrice crosses under dn and trend >= 0 then
trend = -1
endif
ConditionAchat=trend = 1
ConditionVente=trend <= 0
IF NOT LongOnMarket AND ConditionAchat THEN
BUY 1000 CASH AT MARKET
ENDIF
If LongOnMarket AND ConditionVente THEN
SELL AT MARKET
ENDIF
J’ai cependant du mal à comprendre le comportement du système de trading car certaines ventes se font alors que le trend est supposé être positif. Par exemple j’ai une vente le 19 juin 2020 sur Albioma en journalier. Suis je sujet à un bug (j’utilise la version 10.3 de Binck)?
A la ligne 9, tu utilises l’instruction “TradePrice” pour vérifier un croisement avec la bande inférieure, pourquoi ? Le prix actuel est le Close, comme à la ligne 7. TRADEPRICE retourne le prix d’ouverture du N dernier ordre.
Merci pour la réponse. En fait j’essayais de mettre en vente le jour même si la valeur passe sous la barre PRTBandsDown. J’ai un peu le même problème de réactivité de mon backtest car j’aurais aimé acheter tout de suite si on passe la barre PRTBandsUp et pas le lendemain. J’ai mal compris la fonction TradePrice et je comprend maintenant mon erreur. Je vais essayer de corriger cela.
Ok merci pour pour les timeframe c’est bon.
Est il possible de me coder le screener pour détection à la baisse en journalier apres les timefrime je peut les adapté a ma guise si c’est le meme principe que le précedent.
Est pour les pourcentages à la baisse est il possible me de les faire apparaitre ?
En tout cas merci beaucoup ?
Dernière question est il possible de faire une automatisation de trading via un screener avec money management ?
Bonjour Nicolas.
Je reviens sur le problème des screeners qui ne détectent (par exemple) un retournement de tendance que lorsque la bougie est clôturée (par exemple, en daily, à 17h30).
C’est handicapant si l’on veut prendre position juste avant la clôture, en particulier pour éviter les gaps à l’ouverture en cas de cassure d’un seuil (ce qui arrive assez souvent sur les small caps).
Pour contourner l’obstacle, pourrait-on envisager de créer un screener qui travaille en multi timeframes, par exemple :
– qui en timeframe daily, déterminerait la valeur de PRTBANDSUP,
– et qui en timeframe inférieur (par exemple 15 minutes), afficherait à 17h15+epsilon (soit 15 minutes avant la clôture) les valeurs dont la dernière bougie (autrement dit la bougie daily en cours mais pas encore close) croise à la hausse PRTBANDSUP (valeur Daily déterminée précédemment) ?
Ce genre de solution est-il susceptible de fonctionner ?
(Evidemment, cela suppose d’avoir un abonnement aux flux intraday et temps réel)
Merci par avance.
@boutdepain57
Pourquoi pas, mais il n’y a que le lendemain qu’on sait si la fermeture précédente a bien modifié la tendance..
Mais tu peux utiliser un timeframe plus petit pour lancer l’ordre le lendemain dés l’Ouverture et pas une bougie après, par exemple:
DefParam CumulateOrders=false
timeframe(daily, updateonclose)
up = PRTBandsUp
dn = PRTBandsDown
//le prix casse la bande supérieure
if close crosses over up and trend <= 0 then
trend = 1
elsif close crosses under dn and trend >= 0 then
trend = -1
endif
timeframe(default)
if trend<>trend[1] then
IF NOT LongOnMarket AND trend>0 THEN
BUY 1000 CASH AT MARKET
ENDIF
If LongOnMarket AND trend<0 THEN
SELL AT MARKET
ENDIF
endif
J’ai lancé le backtest en UT 1-heure, et dés que la fin de la première heure du jour où on constate une modification de la tendance en daily, on achète (voir image). On aurait aussi pu lancer le programme en UT 5-minutes, peu importe.
@patapouf
Dans ce cas là, il ne faut pas tester un croisement (CROSSES OVER), mais si le prix actuel est au dessus la bande supérieure :
screener[close>prtbandsup]
Donc même si la bougie n’est pas encore clôturé en daily, si le prix est au dessus, alors ça détectera 🙂
Merci Nicolas !
Le problème avec la condition “close>PRTBandsUp”, c’est qu’elle est réalisée bien plus souvent que lors du retournement de tendance à la hausse, dès lors que la tendance haussière est déjà engagée.
Pour détecter un changement de tendance en cours, il faudrait donc pourvoir tester la tendance : soit qu’elle affiche le changement même si la bougie n’est pas encore clôturée, soit ajouter la condition (en daily) : Trend[1]=-1
ce qui donnerait quelque chose comme :
Trend[1]=-1AND close>PRTBandsUp
Qu’en penses-tu ?
Bonjour Nicolas,
Je m’essaie à mes premiers screeners, donc excuse moi par avance de mes questions …
Je voudrais coder un screeners pour détecter des valeurs en tendance haussière hebdo ( en vert pour PRTBands), mais qui viennent de finir une consolidation court term ( c’est à dire la ligne court terme est descendante rouge, mais commence à remmonter ). Voici mon screener qui ne détecte pas ce que je voudrais …..Merci d’avance pour tes conseils
indic = 0
timeframe(weekly)
Wup = PRTBandsUp
Wdn = PRTBandsDown
// on definit la tendance
if close crosses over Wup and trend <= 0 then
trend = 1
elsif close crosses under Wdn and trend >= 0 then
trend = -1
endif
// a = PRTBandsShortTerm Erreur PRT
a = PRTBandsMediumTerm
if a>a[1] and a[1]<a[2] then //la ligne fait un crochet de bas en haut
ct = 1
elsif a<a[1] and a[1]>a[2] then //la ligne fait un crochet du haut vers le bas
ct = -1
endif
if trend >= 0 and ct <= 0 then
indic = 1
endif
SCREENER [indic]