Bonjour à tous,
suite à ma lecture de son livre je me pose la question sur les techniques utilisées dans le 3e écran ( la plus petite TF),
TF Supérieur : un indicateur de tendance comme le MACD, l’histogramme du MACD ou moyennes mobiles
TF moyenne : un oscillateur de contre tendance comme par exemple le RSI, Stochastique, Force Index, …
TF inférieur : quelle méthode utiliser dans la plus petite TF ?
Je me pose aussi la question peut être stupide mais une fois arrivé à la time frame moyenne ou inférieure peut-on réitérer la technique du triple écran ?, le problème je pense qu’on va s’enfoncer de plus en plus et où s’arrêtera l’optimisation ?
Le but est de partir sur de bonnes bases avant de commencer de développer n’importe quoi.
Merci d’avance pour vos lumières comment il va le beau gosse
Je travaille sur quelque chose de similaire… Je savais que quelque chose existait déjà. 😉 La façon dont je comprends et structure est la suivante :
TF H4 : Momentum / Tendance comme EMA3 / 5/8 ou similaire
TF H1 : Contre-tendance / RSI2 ou Bear [1] et Bull
TF M5 : Close> close [1] ou similaire.
TF M1 : Trailing stop
C’est du moins ce qui me semble logique.
Je me corrige… comme exemple SP500.
TF H4 : EMA2 monte + filtre de gamme EMA30
TF H1 : RSI2 est en baisse
TF M15 : RSI2 est en hausse
Cela a très bien fonctionné, au moins l’année dernière.
EMA2 peut même être utilisé comme sortie de tendance.
Vous pouvez le rendre encore plus facile. Du côté long :
H4 : EMA2 augmente (sortie en même temps ci-contre), filtre de gamme EMA30
H1 : RSI2 augmente
M15 : RSI2 croix 90
Cela semble simple, mais cela semble bien fonctionner sur tous les indices, même avec la simple sortie de tendance.
Alors, quelle est en fait l’action des prix pure. Vert bougie H4, vert bougie H1, vert bougie M15 et supérieur.
C’est intéressant.
//================================================
DEFPARAM CUMULATEORDERS = false
defparam preloadbars = 10000
//Risk Management
PositionSize=5
timeframe(4hour, updateonclose)
//barCount = barIndex
myhigh = high
myclose= close
mylow = low
bullish = close > open
bearish = close < open
stronglong = close > close[1]
strongshort = close < close[1]
MA1 = Average[2,1](close)
MA2 = Average[30,1](close)
MA3 = Average[8,1](close)
MA4 = Average[10,1](close)
//MylongH4 = MA1 > MA2 and MA2 > MA3 and MA3 > MA4
MyshortH4 = MA1 < MA2 and MA2 < MA3 and MA3 < MA4
MAlong = Average[2,1](close)
MAshort = Average[2,1](close)
mylongH4 = MAlong > MAlong[1] and MA1 > MA2
Trendlongexit = MAlong < MAlong[1]
//myshortx = MAshort < MAshort[1]
Trendshortexit = MAshort > MAshort[1]
//RSI
myRSIH4 = RSI[2](close)
rsisteigtH4 = myRSIH4 > myRSIH4[1]
rsisteigtH4cross = myRSIH4 crosses over 90
rsisinktH4 = myRSIH4 < myRSIH4[1]
rsisinktH4cross = myRSIH4 crosses under 10
//myADX = ADX[14] > 10
timeframe(1hour, updateonclose)
//RSI
myRSIH1 = RSI[2](close)
rsisteigtH1 = myRSIH1 > myRSIH1[1]
rsisteigtH1cross = myRSIH1 crosses over 90
rsisinktH1 = myRSIH1 < myRSIH1[1]
rsisinktH1cross = myRSIH1 crosses under 10
timeframe(15minute, updateonclose)
bullishM15 = close > open
bearishM15 = close < open
stronglongM15 = close > close[1]
strongshortM15 = close < close[1]
//RSI
myRSIM15 = RSI[2](close)
rsisteigtM15 = myRSIM15 > myRSIM15[1]
rsisteigtM15cross = myRSIM15 crosses over 90 //90
rsisinktM15 = myRSIM15 < myRSIM15[1]
rsisinktM15cross = myRSIM15 crosses under 10
/////////////////////
//BOLLINGER
A = 20 // période
B = 2 // déviation
BollInf = Average[A](close)-B*std[A](close)
BollSup = Average[A](close)+B*std[A](close)
// INDICATEUR %BOLLINGER : pB
pB = (close - BollInf) / (BollSup - BollInf)
//Bolllong = (pB < 0) and (pB[1] > 0)
//Bollshort = (pB > 1) and (pB[1] < 1)
Bolllong = (pB > 1) and (pB[1] < 1) //Ausbruch
Bollshort = (pB < 0) and (pB[1] > 0) //Ausbruch
//timeframe(5minute, updateonclose)
///////////////////////
////BOLLINGER
//A = 20 // période
//B = 2 // déviation
//BollInf = Average[A](close)-B*std[A](close)
//BollSup = Average[A](close)+B*std[A](close)
//// INDICATEUR %BOLLINGER : pB
//pB = (close - BollInf) / (BollSup - BollInf)
//
////Bolllong = (pB < 0) and (pB[1] > 0)
////Bollshort = (pB > 1) and (pB[1] < 1)
//Bolllong = (pB > 1) and (pB[1] < 1) //Ausbruch
//Bollshort = (pB < 0) and (pB[1] > 0) //Ausbruch
timeframe(default)
mylong = mylongH4 and rsisinktH1 and rsisteigtM15
mylong2 = mylongH4 and rsisteigtH1 and rsisteigtM15
mylong3 = mylongH4 and rsisteigtH1 and Bolllong
mylong4 = mylongH4 and rsisteigtH1 and rsisinktM15cross
mylong5 = mylongH4 and rsisteigtH1 and rsisteigtM15cross //and rsisteigtH4
mylong6 = mylongH4 and rsisteigtH1cross
mylong7 = mylongH4 and rsisteigtM15cross
myshort = MyshortH4 and rsisteigtH1 and strongshortM15
// trading window
ONCE BuyTime = 130000
ONCE SellTime = 210000
// position management
IF Time >= BuyTime AND Time <= SellTime THEN
If mylong5 Then
Buy PositionSize CONTRACTS AT MARKET
//SET STOP %LOSS hl //0.8
//SET TARGET %PROFIT gl //1
ENDIF
//If myshort Then //and myshort3
//sellshort PositionSize CONTRACTS AT MARKET
////SET STOP %LOSS hs //0.8
////SET TARGET %PROFIT gs //1
//ENDIF
endif
if longonmarket and Trendlongexit then //or close crosses under dlow(1)
sell at market
endif
if shortonmarket and Trendshortexit then //myshortexitx or close crosses over dhigh(0)
exitshort at market
endif
Hello phoentzs
je n’ai malheureusement pas accès au pro bac test en unité inférieure du journalier pour l’instant, j’ai copié ton code je ferai quelques tests sur d’autres actifs pour comprendre un peu ta stratégie je reviendrai sur ce topic pour en discuter et aussi sur les 2 messages que tu as posté juste avant
peux tu me conseiller d’autres actifs sur lesquels tu as de bons résultats pour mes test ?, moi dans ma vision, après je peux peut être me tromper mais un code qui fonctionne bien ne doit pas perdre d’argent sur presque tous les actifs sauf bien sûr sur les tout petits actifs à faibles volumes qui sont facilement manipulables, où est ce que je me trompe, car parfois on optimise un code spécifiquement pour un actif mission l’utilise sur un autre les résultats sont catastrophiques.
Je reviens comme promis sur ton code, je trouve qu’il y a pas mal de choses répétitives comme les moyennes mobiles, est ce que c’est voulu ?
Pourquoi tu n’utilises pas directement la fonction des bandes de bollinger ?
Pourrais tu mettre un bac test sur le Dax par exemple ?
Je vais essayer de comprendre à mieux mieux ton code et de le transformer en indicateurs et voir ce que je peux modifier ou améliorer où apporter de mon côté, je pense que la gestion du risque et un peu hasardeuse dessus
C’est juste du code d’essai, pas une stratégie toute faite. Les indicateurs et variantes inutilisés peuvent être testés sur différents marchés. À l’heure actuelle, il fonctionne sur le côté long dans la plupart des index. Bien entendu, une gestion des risques et un trailing stop doivent être ajoutés.
C’est juste du code d’essai, pas une stratégie toute faite. Les indicateurs et variantes inutilisés peuvent être testés sur différents marchés. À l’heure actuelle, il fonctionne sur le côté long dans la plupart des index. Bien entendu, une gestion des risques et un trailing stop doivent être ajoutés.
merci pour ton retour, as tu par exemple tester ta stratégie sur un historique avec un range ou une période baissière pour voir comment ta stratégie réagit, car malheureusement je trouve que backtester sur des périodes haussières n’est pas vraiment bonne solution surtout après des périodes de forte hausse comme celle après du COVID
Je teste toujours WF à plus de 200 000 bars. Dans le cas du M1, mais du M5, qui date de plus de 2 ans, ça n’a pas l’air mal. Comme je l’ai dit, juste un concept. Les subtilités restent à découvrir.
Ce n’est pas encore vraiment peaufiné. C’est en fait juste l’action des prix… l’élan, si vous voulez. Dans le marché haussier, long est meilleur dans le marché baissier. Cela devient intéressant dans une gamme. L’EMA2 / 30 n’est qu’une ligne auxiliaire pour voir si la tendance se poursuit un peu ou pas. Donc pour savoir si un pullback fonctionne mieux ou une cassure directe. Certes, il y a encore place à amélioration.