IMBALANCE CODE ..

Viewing 16 post (of 16 total)
  • Author
    Posts
  • #265082 quote
    bertrandpinoy
    Participant
    Veteran

    Bonsoir a tous, j espère que le sujet n a pas déjà été traité sinon je m excuse par avance , cela dit l I.A peut surement aider. J utilise le code ci dessous sur mes graphiques indice TF 1H, je ne suis pas ici pour le promouvoir, les traders adepte de cette technique peuvent se l appropriés. Ma problématique est lorsque je l’applique au paires forex exemple EUR BBP , l indicateur n’apparaît pas. //———————————————-

    // Imbalances MTF avec projection dans le present

    // Version 1H — multiples de 1H

    // 1H + 2H + 4H + 8H + Daily

    //———————————————-

    DEFPARAM DrawOnLastBarOnly = false

    DEFPARAM calculateonlastbars = 2000


    minZoneSize = 5


    // ================================================================

    // DETECTION 2H

    // ================================================================

    TIMEFRAME(120 minute, updateonclose)


    newTop2h = 0

    newBot2h = 0

    topTop2h = 0

    topBot2h = 0

    botTop2h = 0

    botBot2h = 0


    TopSize2h = low[3] – high[1]

    IF low[3] <= open[2] AND high[1] >= close[2] AND TopSize2h > minZoneSize THEN

    newTop2h = 1

    topTop2h = low[3]

    topBot2h = high[1]

    ENDIF


    BotSize2h = low[1] – high[3]

    IF high[3] >= open[2] AND low[1] <= close[2] AND BotSize2h > minZoneSize THEN

    newBot2h = 1

    botTop2h = low[1]

    botBot2h = high[3]

    ENDIF


    Top2hdraw = topTop2h

    Bot2hdraw = topBot2h

    Top2hbdraw = botTop2h

    Bot2hbdraw = botBot2h


    // ================================================================

    // DETECTION 4H

    // ================================================================

    TIMEFRAME(240 minute, updateonclose)


    newTop4h = 0

    newBot4h = 0

    topTop4h = 0

    topBot4h = 0

    botTop4h = 0

    botBot4h = 0


    TopSize4h = low[3] – high[1]

    IF low[3] <= open[2] AND high[1] >= close[2] AND TopSize4h > minZoneSize THEN

    newTop4h = 1

    topTop4h = low[3]

    topBot4h = high[1]

    ENDIF


    BotSize4h = low[1] – high[3]

    IF high[3] >= open[2] AND low[1] <= close[2] AND BotSize4h > minZoneSize THEN

    newBot4h = 1

    botTop4h = low[1]

    botBot4h = high[3]

    ENDIF


    Top4hdraw = topTop4h

    Bot4hdraw = topBot4h

    Top4hbdraw = botTop4h

    Bot4hbdraw = botBot4h


    // ================================================================

    // DETECTION 8H

    // ================================================================

    TIMEFRAME(480 minute, updateonclose)


    newTop8h = 0

    newBot8h = 0

    topTop8h = 0

    topBot8h = 0

    botTop8h = 0

    botBot8h = 0


    TopSize8h = low[3] – high[1]

    IF low[3] <= open[2] AND high[1] >= close[2] AND TopSize8h > minZoneSize THEN

    newTop8h = 1

    topTop8h = low[3]

    topBot8h = high[1]

    ENDIF


    BotSize8h = low[1] – high[3]

    IF high[3] >= open[2] AND low[1] <= close[2] AND BotSize8h > minZoneSize THEN

    newBot8h = 1

    botTop8h = low[1]

    botBot8h = high[3]

    ENDIF


    Top8hdraw = topTop8h

    Bot8hdraw = topBot8h

    Top8hbdraw = botTop8h

    Bot8hbdraw = botBot8h


    // ================================================================

    // DETECTION DAILY

    // ================================================================

    TIMEFRAME(daily, updateonclose)


    newTopD = 0

    newBotD = 0

    topTopD = 0

    topBotD = 0

    botTopD = 0

    botBotD = 0


    TopSizeD = low[3] – high[1]

    IF low[3] <= open[2] AND high[1] >= close[2] AND TopSizeD > minZoneSize THEN

    newTopD = 1

    topTopD = low[3]

    topBotD = high[1]

    ENDIF


    BotSizeD = low[1] – high[3]

    IF high[3] >= open[2] AND low[1] <= close[2] AND BotSizeD > minZoneSize THEN

    newBotD = 1

    botTopD = low[1]

    botBotD = high[3]

    ENDIF


    TopDdraw = topTopD

    BotDdraw = topBotD

    TopDbdraw = botTopD

    BotDbdraw = botBotD


    // ================================================================

    // TIMEFRAME DEFAULT — 1H

    // ================================================================

    TIMEFRAME(default)


    // ================================================================

    // ZONES 1H (detection native)

    // ================================================================

    // ================================================================

    // ZONES 1H (detection native)

    // ================================================================

    ONCE z1hCount = 0

    ONCE z1hIdx  = 0

    z1hMax = 50


    TopImb1h = 0

    BotImb1h = 0

    TopSize1h = low[2] – high[0]

    BotSize1h = low[0] – high[2]


    IF low[2] <= open[1] AND high[0] >= close[1] AND TopSize1h >= minZoneSize THEN

    TopImb1h = 1

    ENDIF


    IF high[2] >= open[1] AND low[0] <= close[1] AND BotSize1h >= minZoneSize THEN

    BotImb1h = 1

    ENDIF


    IF TopImb1h = 1 THEN

    $z1hTop[z1hIdx] = low[2]

    $z1hBot[z1hIdx] = high[0]

    $z1hType[z1hIdx] = 1

    $z1hFill[z1hIdx] = high

    z1hIdx = z1hIdx + 1

    IF z1hIdx >= z1hMax THEN

    z1hIdx = 0

    ENDIF

    IF z1hCount < z1hMax THEN

    z1hCount = z1hCount + 1

    ENDIF

    ENDIF


    IF BotImb1h = 1 THEN

    $z1hTop[z1hIdx] = low[0]

    $z1hBot[z1hIdx] = high[2]

    $z1hType[z1hIdx] = -1

    $z1hFill[z1hIdx] = low

    z1hIdx = z1hIdx + 1

    IF z1hIdx >= z1hMax THEN

    z1hIdx = 0

    ENDIF

    IF z1hCount < z1hMax THEN

    z1hCount = z1hCount + 1

    ENDIF

    ENDIF


    // ================================================================

    // ZONES 2H

    // ================================================================

    ONCE z2hCount = 0

    ONCE z2hIdx  = 0

    z2hMax = 30


    IF newTop2h = 1 AND newTop2h[1] = 0 THEN

    $z2hTop[z2hIdx] = topTop2h

    $z2hBot[z2hIdx] = topBot2h

    $z2hType[z2hIdx] = 1

    $z2hFill[z2hIdx] = high

    z2hIdx = z2hIdx + 1

    IF z2hIdx >= z2hMax THEN

    z2hIdx = 0

    ENDIF

    IF z2hCount < z2hMax THEN

    z2hCount = z2hCount + 1

    ENDIF

    ENDIF


    IF newBot2h = 1 AND newBot2h[1] = 0 THEN

    $z2hTop[z2hIdx] = botTop2h

    $z2hBot[z2hIdx] = botBot2h

    $z2hType[z2hIdx] = -1

    $z2hFill[z2hIdx] = low

    z2hIdx = z2hIdx + 1

    IF z2hIdx >= z2hMax THEN

    z2hIdx = 0

    ENDIF

    IF z2hCount < z2hMax THEN

    z2hCount = z2hCount + 1

    ENDIF

    ENDIF


    // ================================================================

    // ZONES 4H

    // ================================================================

    ONCE z4hCount = 0

    ONCE z4hIdx  = 0

    z4hMax = 20


    IF newTop4h = 1 AND newTop4h[1] = 0 THEN

    $z4hTop[z4hIdx] = topTop4h

    $z4hBot[z4hIdx] = topBot4h

    $z4hType[z4hIdx] = 1

    $z4hFill[z4hIdx] = high

    z4hIdx = z4hIdx + 1

    IF z4hIdx >= z4hMax THEN

    z4hIdx = 0

    ENDIF

    IF z4hCount < z4hMax THEN

    z4hCount = z4hCount + 1

    ENDIF

    ENDIF


    IF newBot4h = 1 AND newBot4h[1] = 0 THEN

    $z4hTop[z4hIdx] = botTop4h

    $z4hBot[z4hIdx] = botBot4h

    $z4hType[z4hIdx] = -1

    $z4hFill[z4hIdx] = low

    z4hIdx = z4hIdx + 1

    IF z4hIdx >= z4hMax THEN

    z4hIdx = 0

    ENDIF

    IF z4hCount < z4hMax THEN

    z4hCount = z4hCount + 1

    ENDIF

    ENDIF


    // ================================================================

    // ZONES 8H

    // ================================================================

    ONCE z8hCount = 0

    ONCE z8hIdx  = 0

    z8hMax = 15


    IF newTop8h = 1 AND newTop8h[1] = 0 THEN

    $z8hTop[z8hIdx] = topTop8h

    $z8hBot[z8hIdx] = topBot8h

    $z8hType[z8hIdx] = 1

    $z8hFill[z8hIdx] = high

    z8hIdx = z8hIdx + 1

    IF z8hIdx >= z8hMax THEN

    z8hIdx = 0

    ENDIF

    IF z8hCount < z8hMax THEN

    z8hCount = z8hCount + 1

    ENDIF

    ENDIF


    IF newBot8h = 1 AND newBot8h[1] = 0 THEN

    $z8hTop[z8hIdx] = botTop8h

    $z8hBot[z8hIdx] = botBot8h

    $z8hType[z8hIdx] = -1

    $z8hFill[z8hIdx] = low

    z8hIdx = z8hIdx + 1

    IF z8hIdx >= z8hMax THEN

    z8hIdx = 0

    ENDIF

    IF z8hCount < z8hMax THEN

    z8hCount = z8hCount + 1

    ENDIF

    ENDIF


    // ================================================================

    // ZONES DAILY

    // ================================================================

    ONCE zDCount = 0

    ONCE zDIdx  = 0

    zDMax = 10


    IF newTopD = 1 AND newTopD[1] = 0 THEN

    $zDTop[zDIdx] = topTopD

    $zDBot[zDIdx] = topBotD

    $zDType[zDIdx] = 1

    $zDFill[zDIdx] = high

    zDIdx = zDIdx + 1

    IF zDIdx >= zDMax THEN

    zDIdx = 0

    ENDIF

    IF zDCount < zDMax THEN

    zDCount = zDCount + 1

    ENDIF

    ENDIF


    IF newBotD = 1 AND newBotD[1] = 0 THEN

    $zDTop[zDIdx] = botTopD

    $zDBot[zDIdx] = botBotD

    $zDType[zDIdx] = -1

    $zDFill[zDIdx] = low

    zDIdx = zDIdx + 1

    IF zDIdx >= zDMax THEN

    zDIdx = 0

    ENDIF

    IF zDCount < zDMax THEN

    zDCount = zDCount + 1

    ENDIF

    ENDIF


    // ================================================================

    // MISE A JOUR FILLS EN TEMPS REEL

    // ================================================================

    FOR i = 0 TO z1hCount – 1 DO

    IF $z1hType[i] = 1 THEN

    IF high > $z1hFill[i] THEN

    $z1hFill[i] = high

    ENDIF

    ELSE

    IF low < $z1hFill[i] THEN

    $z1hFill[i] = low

    ENDIF

    ENDIF

    NEXT


    FOR i = 0 TO z2hCount – 1 DO

    IF $z2hType[i] = 1 THEN

    IF high > $z2hFill[i] THEN

    $z2hFill[i] = high

    ENDIF

    ELSE

    IF low < $z2hFill[i] THEN

    $z2hFill[i] = low

    ENDIF

    ENDIF

    NEXT


    FOR i = 0 TO z4hCount – 1 DO

    IF $z4hType[i] = 1 THEN

    IF high > $z4hFill[i] THEN

    $z4hFill[i] = high

    ENDIF

    ELSE

    IF low < $z4hFill[i] THEN

    $z4hFill[i] = low

    ENDIF

    ENDIF

    NEXT


    FOR i = 0 TO z8hCount – 1 DO

    IF $z8hType[i] = 1 THEN

    IF high > $z8hFill[i] THEN

    $z8hFill[i] = high

    ENDIF

    ELSE

    IF low < $z8hFill[i] THEN

    $z8hFill[i] = low

    ENDIF

    ENDIF

    NEXT


    FOR i = 0 TO zDCount – 1 DO

    IF $zDType[i] = 1 THEN

    IF high > $zDFill[i] THEN

    $zDFill[i] = high

    ENDIF

    ELSE

    IF low < $zDFill[i] THEN

    $zDFill[i] = low

    ENDIF

    ENDIF

    NEXT


    // ================================================================

    // PROJECTION DANS LE PRESENT

    // ================================================================

    IF islastbarupdate THEN


    xG = barindex – 2

    xD = barindex + 8


    // — ZONES 1H (jaune) —

    FOR i = 0 TO z1hCount – 1 DO

    zT  = $z1hTop[i]

    zB  = $z1hBot[i]

    zF  = $z1hFill[i]

    zTyp = $z1hType[i]

    IF zTyp = 1 THEN

    IF zF < zT THEN

    IF zF > zB THEN

    DrawRectangle(xG, zF, xD, zB) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zT, xD, zF) coloured(255,255,0,80) bordercolor(255,255,0,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(255,255,0,80) bordercolor(255,255,0,200)

    ENDIF

    ENDIF

    ELSE

    IF zF > zB THEN

    IF zF < zT THEN

    DrawRectangle(xG, zT, xD, zF) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zF, xD, zB) coloured(255,255,0,80) bordercolor(255,255,0,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(255,255,0,80) bordercolor(255,255,0,200)

    ENDIF

    ENDIF

    ENDIF

    NEXT


    // — ZONES 2H (orange) —

    FOR i = 0 TO z2hCount – 1 DO

    zT  = $z2hTop[i]

    zB  = $z2hBot[i]

    zF  = $z2hFill[i]

    zTyp = $z2hType[i]

    IF zTyp = 1 THEN

    IF zF < zT THEN

    IF zF > zB THEN

    DrawRectangle(xG, zF, xD, zB) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zT, xD, zF) coloured(255,165,0,200) bordercolor(255,165,0,255)  //coloured(255,165,0,200) bordercolor(255,165,0,255)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(255,165,0,200) bordercolor(255,165,0,255)

    ENDIF

    ENDIF

    ELSE

    IF zF > zB THEN

    IF zF < zT THEN

    DrawRectangle(xG, zT, xD, zF) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zF, xD, zB) coloured(255,165,0,80) bordercolor(255,165,0,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(255,165,0,80) bordercolor(255,165,0,200)

    ENDIF

    ENDIF

    ENDIF

    NEXT


    // — ZONES 4H (vert) —

    FOR i = 0 TO z4hCount – 1 DO

    zT  = $z4hTop[i]

    zB  = $z4hBot[i]

    zF  = $z4hFill[i]

    zTyp = $z4hType[i]

    IF zTyp = 1 THEN

    IF zF < zT THEN

    IF zF > zB THEN

    DrawRectangle(xG, zF, xD, zB) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zT, xD, zF) coloured(0,200,100,80) bordercolor(0,200,100,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(0,200,100,80) bordercolor(0,200,100,200)

    ENDIF

    ENDIF

    ELSE

    IF zF > zB THEN

    IF zF < zT THEN

    DrawRectangle(xG, zT, xD, zF) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zF, xD, zB) coloured(0,200,100,80) bordercolor(0,200,100,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(0,200,100,80) bordercolor(0,200,100,200)

    ENDIF

    ENDIF

    ENDIF

    NEXT


    // — ZONES 8H (violet) —

    FOR i = 0 TO z8hCount – 1 DO

    zT  = $z8hTop[i]

    zB  = $z8hBot[i]

    zF  = $z8hFill[i]

    zTyp = $z8hType[i]

    IF zTyp = 1 THEN

    IF zF < zT THEN

    IF zF > zB THEN

    DrawRectangle(xG, zF, xD, zB) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zT, xD, zF) coloured(160,32,240,80) bordercolor(160,32,240,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(160,32,240,80) bordercolor(160,32,240,200)

    ENDIF

    ENDIF

    ELSE

    IF zF > zB THEN

    IF zF < zT THEN

    DrawRectangle(xG, zT, xD, zF) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zF, xD, zB) coloured(160,32,240,80) bordercolor(160,32,240,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(160,32,240,80) bordercolor(160,32,240,200)

    ENDIF

    ENDIF

    ENDIF

    NEXT


    // — ZONES DAILY (cyan) —

    FOR i = 0 TO zDCount – 1 DO

    zT  = $zDTop[i]

    zB  = $zDBot[i]

    zF  = $zDFill[i]

    zTyp = $zDType[i]

    IF zTyp = 1 THEN

    IF zF < zT THEN

    IF zF > zB THEN

    DrawRectangle(xG, zF, xD, zB) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zT, xD, zF) coloured(0,255,255,80) bordercolor(0,255,255,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(0,255,255,80) bordercolor(0,255,255,200)

    ENDIF

    ENDIF

    ELSE

    IF zF > zB THEN

    IF zF < zT THEN

    DrawRectangle(xG, zT, xD, zF) coloured(255,255,255,255) bordercolor(255,255,255,255)

    DrawRectangle(xG, zF, xD, zB) coloured(0,255,255,80) bordercolor(0,255,255,200)

    ELSE

    DrawRectangle(xG, zT, xD, zB) coloured(0,255,255,80) bordercolor(0,255,255,200)

    ENDIF

    ENDIF

    ENDIF

    NEXT

    // ================================================================

    // CARTOUCHE LEGENDE — centre en haut

    // ================================================================

    DrawText(“IMBALANCES 1H :”, barindex – 40, highest[100](high) + averagetruerange[14](close) * 3.0, Dialog, Bold, 10) coloured(255,255,255)

    DrawText(“JAUNE = 1H”, barindex – 40, highest[100](high) + averagetruerange[14](close) * 2.2, Dialog, Bold, 10) coloured(255,255,0)

    DrawText(“ORANGE = 2H”, barindex – 40, highest[100](high) + averagetruerange[14](close) * 1.6, Dialog, Bold, 10) coloured(255,165,0)

    DrawText(“VERT = 4H”, barindex – 40, highest[100](high) + averagetruerange[14](close) * 1.0, Dialog, Bold, 10) coloured(0,200,100)

    DrawText(“VIOLET = 8H”, barindex – 40, highest[100](high) + averagetruerange[14](close) * 0.4, Dialog, Bold, 10) coloured(160,32,240)

    DrawText(“CYAN = DAILY”, barindex – 40, highest[100](high) + averagetruerange[14](close) * (-0.2), Dialog, Bold, 10) coloured(0,255,255)

    DrawText(“BLANC = REVISITE”, barindex – 40, highest[100](high) + averagetruerange[14](close) * (-0.8), Dialog, Bold, 10) coloured(255,255,255)

    ENDIF


    RETURN


Viewing 16 post (of 16 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

IMBALANCE CODE ..


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Armand2020 @armand2020 Participant
Summary

This topic contains 15 replies,
has 8 voices, and was last updated by bertrandpinoy
2 hours, 6 minutes ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 06/29/2022
Status: Active
Attachments: 12 files
Logo Logo
Loading...