Changement TIMEFRAME IMBALANCE
Forums › ProRealTime forum Français › Support ProBuilder › Changement TIMEFRAME IMBALANCE
- This topic has 7 replies, 2 voices, and was last updated 3 weeks ago by robertogozzi.
-
-
12/30/2024 at 9:05 PM #241985
Bonjour,
ci-joint le code imbalance trouvé sur le forum. Je souhaiterais mettre ce code en 30 mn sur un graphique 5MN.
TIME FRAME(30minutes) apparemment ne fonctionne pas.
DEFPARAM DrawOnLastBarOnly = true
DEBUG = 0// Start of code, don’t change anything below
IF IsLastBarUpdate THEN
$RangeHigh[0] = 0
$RangeLow[0] = 0
$RangeIndex[0] = 0
RangeIdx = 0
BI = 0
B = 0
RI = 0
TotalBars = BarIndex[0]IF DEBUG = 1 THEN
DRAWTEXT(“Total bars: #TotalBars#”, BarIndex[0], High[0])
ENDIF// List all imbalance
FOR RI = 1 TO TotalBars – 2 DO
BI = BarIndex[RI]
//drawtext(“#BI#”, BI, High[RI])
IF High[BI – 1] < Low[BI + 1] THEN
RangeIdx = RangeIdx + 1
$RangeHigh[RangeIdx] = Low[BI + 1]
$RangeLow[RangeIdx] = High[BI – 1]
$RangeIndex[RangeIdx] = RI
ENDIF
IF High[BI + 1] < Low[BI – 1] THEN
RangeIdx = RangeIdx + 1
$RangeHigh[RangeIdx] = Low[BI – 1]
$RangeLow[RangeIdx] = High[BI + 1]
$RangeIndex[RangeIdx] = RI
ENDIF
NEXTIF DEBUG = 1 THEN
DRAWTEXT(“Imbalance found: #RangeIdx#”, BarIndex[0], Low[0])
ENDIF// Remove mitigated imbalance
FOR RI = 1 TO RangeIdx DO
IF DEBUG = 1 THEN
DRAWRECTANGLE($RangeIndex[RI] – 1, $RangeHigh[RI], $RangeIndex[RI] + 1, $RangeLow[RI]) COLOURED(“yellow”,150)
ENDIFValid = 1
FOR B = $RangeIndex[RI] + 2 TO TotalBars DO
LB = Low[BarIndex[B]]
HB = High[BarIndex[B]]
// Candle is above or below our zone, ignore it
IF LB >= $RangeHigh[RI] OR HB <= $RangeLow[RI] THEN
IF DEBUG = 1 THEN
DRAWTEXT(“Out”, B, High[BarIndex[B]])
ENDIF
CONTINUE
ENDIFIF LB <= $RangeLow[RI] THEN
// Candle engulfs our zone, so imbalance is mitigated
IF HB >= $RangeHigh[RI] THEN
IF DEBUG = 1 THEN
DRAWTEXT(“Mitigated”, B, High[BarIndex[B]])
ENDIF
Valid = 0
BREAK
ENDIF
IF DEBUG = 1 THEN
DRAWTEXT(“High”, B, High[BarIndex[B]])
ENDIF
$RangeLow[RI] = HB
ELSE
// In this case, Low is within the zone
IF DEBUG = 1 THEN
DRAWTEXT(“Low”, B, High[BarIndex[B]])
ENDIF
$RangeHigh[RI] = LB
ENDIF
NEXT
IF Valid = 1 THEN
DRAWRECTANGLE($RangeIndex[RI], $RangeHigh[RI], TotalBars+2000, $RangeLow[RI]) COLOURED(0,0,0,0) FILLCOLOR(“yellow”,150)
ENDIFNEXT
ENDIF
RETURN
merci
12/31/2024 at 11:06 AM #241991J’ai utilisé Copier & Coller et cela fonctionne sur une période de 1 minute, 5 minutes, 30 minutes, 1 heure et quotidienne.
12/31/2024 at 11:39 AM #241992oui merci je sais que le code fonctionne bien dans tous les timeframes.
Mais ma question est
comment mettre graphiquement le code imbalance 30 minutes dans un graphique 5 MN
01/01/2025 at 8:04 PM #242048Essaye ceci :
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990DEFPARAM DrawOnLastBarOnly = trueTimeframe(30 minute,default)DEBUG = 0// Start of code, don’t change anything belowIF IsLastBarUpdate THEN$RangeHigh[0] = 0$RangeLow[0] = 0$RangeIndex[0] = 0RangeIdx = 0BI = 0B = 0RI = 0TotalBars = BarIndex[0]IF DEBUG = 1 THENDRAWTEXT("Total bars: #TotalBars#", BarIndex[0], High[0])ENDIF// List all imbalanceFOR RI = 1 TO TotalBars - 2 DOBI = BarIndex[RI]//drawtext("#BI#", BI, High[RI])IF High[BI - 1] < Low[BI + 1] THENRangeIdx = RangeIdx + 1$RangeHigh[RangeIdx] = Low[BI + 1]$RangeLow[RangeIdx] = High[BI - 1]$RangeIndex[RangeIdx] = RIENDIFIF High[BI + 1] < Low[BI - 1] THENRangeIdx = RangeIdx + 1$RangeHigh[RangeIdx] = Low[BI - 1]$RangeLow[RangeIdx] = High[BI + 1]$RangeIndex[RangeIdx] = RIENDIFNEXTIF DEBUG = 1 THENDRAWTEXT("Imbalance found: #RangeIdx#", BarIndex[0], Low[0])ENDIF// Remove mitigated imbalanceFOR RI = 1 TO RangeIdx DOIF DEBUG = 1 THENDRAWRECTANGLE($RangeIndex[RI] - 1, $RangeHigh[RI], $RangeIndex[RI] + 1, $RangeLow[RI]) COLOURED("yellow",150)ENDIFValid = 1FOR B = $RangeIndex[RI] + 2 TO TotalBars DOLB = Low[BarIndex[B]]HB = High[BarIndex[B]]// Candle is above or below our zone, ignore itIF LB >= $RangeHigh[RI] OR HB <= $RangeLow[RI] THENIF DEBUG = 1 THENDRAWTEXT("Out", B, High[BarIndex[B]])ENDIFCONTINUEENDIFIF LB <= $RangeLow[RI] THEN// Candle engulfs our zone, so imbalance is mitigatedIF HB >= $RangeHigh[RI] THENIF DEBUG = 1 THENDRAWTEXT("Mitigated", B, High[BarIndex[B]])ENDIFValid = 0BREAKENDIFIF DEBUG = 1 THENDRAWTEXT("High", B, High[BarIndex[B]])ENDIF$RangeLow[RI] = HBELSE// In this case, Low is within the zoneIF DEBUG = 1 THENDRAWTEXT("Low", B, High[BarIndex[B]])ENDIF$RangeHigh[RI] = LBENDIFNEXTIF Valid = 1 THENDRAWRECTANGLE($RangeIndex[RI], $RangeHigh[RI], TotalBars+2000, $RangeLow[RI]) COLOURED(0,0,0,0) FILLCOLOR("yellow",150)ENDIFNEXTENDIFTimeframe(default)RETURN01/02/2025 at 1:17 PM #242067J’ai un message d’erreur
entier positif
01/06/2025 at 4:50 PM #242228Cela devrait résoudre l’erreur :
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990DEFPARAM DrawOnLastBarOnly = trueTimeframe(30 minute,default)DEBUG = 0// Start of code, don’t change anything belowIF IsLastBarUpdate THEN$RangeHigh[0] = 0$RangeLow[0] = 0$RangeIndex[0] = 0RangeIdx = 0BI = 0B = 0RI = 0TotalBars = BarIndex[0]IF DEBUG = 1 THENDRAWTEXT("Total bars: #TotalBars#", BarIndex[0], High[0])ENDIF// List all imbalanceFOR RI = 1 TO TotalBars - 2 DOBI = BarIndex[RI]//drawtext("#BI#", BI, High[RI])IF High[BI - 1] < Low[BI + 1] THENRangeIdx = RangeIdx + 1$RangeHigh[RangeIdx] = Low[BI + 1]$RangeLow[RangeIdx] = High[BI - 1]$RangeIndex[RangeIdx] = RIENDIFIF High[BI + 1] < Low[BI - 1] THENRangeIdx = RangeIdx + 1$RangeHigh[RangeIdx] = Low[BI - 1]$RangeLow[RangeIdx] = High[BI + 1]$RangeIndex[RangeIdx] = RIENDIFNEXTIF DEBUG = 1 THENDRAWTEXT("Imbalance found: #RangeIdx#", BarIndex[0], Low[0])ENDIF// Remove mitigated imbalanceFOR RI = 1 TO RangeIdx DOIF DEBUG = 1 THENDRAWRECTANGLE($RangeIndex[RI] - 1, $RangeHigh[RI], $RangeIndex[RI] + 1, $RangeLow[RI]) COLOURED("yellow",150)ENDIFValid = 1FOR B = $RangeIndex[RI] + 2 TO TotalBars DOLB = Low[max(1,BarIndex[B])]HB = High[max(1,BarIndex[B])]// Candle is above or below our zone, ignore itIF LB >= $RangeHigh[RI] OR HB <= $RangeLow[RI] THENIF DEBUG = 1 THENDRAWTEXT("Out", B, High[max(1,BarIndex[B])])ENDIFCONTINUEENDIFIF LB <= $RangeLow[RI] THEN// Candle engulfs our zone, so imbalance is mitigatedIF HB >= $RangeHigh[RI] THENIF DEBUG = 1 THENDRAWTEXT("Mitigated", B, High[max(1,BarIndex[B])])ENDIFValid = 0BREAKENDIFIF DEBUG = 1 THENDRAWTEXT("High", B, High[max(1,BarIndex[B])])ENDIF$RangeLow[RI] = HBELSE// In this case, Low is within the zoneIF DEBUG = 1 THENDRAWTEXT("Low", B, High[max(1,BarIndex[B])])ENDIF$RangeHigh[RI] = LBENDIFNEXTIF Valid = 1 THENDRAWRECTANGLE($RangeIndex[RI], $RangeHigh[RI], TotalBars+2000, $RangeLow[RI]) COLOURED(0,0,0,0) FILLCOLOR("yellow",150)ENDIFNEXTENDIFTimeframe(default)RETURN01/06/2025 at 7:37 PM #24223301/09/2025 at 3:38 PM #242339Je pense que c’est un manque d’unités. Essayez d’utiliser plus d’unités sur votre graphique, disons 100+.
-
AuthorPosts
Find exclusive trading pro-tools on