Show Bar sometimes giving a result after the last bar

Hi All,

I’m getting some strange results from a show bar script. Seems to always work when i delete the Barros swing but sometimes with the barros swing included it gives a show bar on the day after the last bar.

E.g.Mineral Resources with last bar 29 Jan 2025 gives a show bar on 30 Jan 2025.

H0 = HIGH(OFFSET=0);

H1 = HIGH(OFFSET=1);

H2 = HIGH(OFFSET=2);

H3 = HIGH(OFFSET=3);

H4 = HIGH(OFFSET=4);

H5 = HIGH(OFFSET=5);

H6 = HIGH(OFFSET=6);

H05 = HIGH(OFFSET=0)+0.05;

L0 = LOW(OFFSET=0);

L1 = LOW(OFFSET=1);

L2 = LOW(OFFSET=2);

L3 = LOW(OFFSET=3);

L4 = LOW(OFFSET=4);

L5 = LOW(OFFSET=5);

L6 = LOW(OFFSET=6);

BTH0 = OFFSET(BARTYPES().HIGHER,OFFSET=0);

BTH1 = OFFSET(BARTYPES().HIGHER,OFFSET=1);

BTH2 = OFFSET(BARTYPES().HIGHER,OFFSET=2);

BTL1 = OFFSET(BARTYPES().LOWER,OFFSET=1);

BTL2 = OFFSET(BARTYPES().LOWER,OFFSET=2);

BTL3 = OFFSET(BARTYPES().LOWER,OFFSET=3);

BTL4 = OFFSET(BARTYPES().LOWER,OFFSET=4);

BTL5 = OFFSET(BARTYPES().LOWER,OFFSET=5);

BTO0 = OFFSET(BARTYPES().OUTSIDE,OFFSET=0);

BTO1 = OFFSET(BARTYPES().OUTSIDE,OFFSET=1);

BTO2 = OFFSET(BARTYPES().OUTSIDE,OFFSET=2);

BTI0 = OFFSET(BARTYPES().INSIDE,OFFSET=0);

BTI1 = OFFSET(BARTYPES().INSIDE,OFFSET=1);

BTI2 = OFFSET(BARTYPES().INSIDE,OFFSET=2);

// Set Barros Swing Up

bSwing = BARROSSWING();

// Find up Swing

isUpSwing = SWINGEND(bSwing) < SWINGSTART(bSwing);

//3 d 3 u

V1= isUpSwing and

BTL5 and

BTL4 and

BTL3 and

(BTH2 OR

BTI2) and

(BTI1 OR

BTH1) and

(BTI0 OR

BTH0) and

H0 <= H6 AND

H05 >= L1 or

// 3d 2u

BTL4 and

BTL3 and

BTL2 and

(BTH1 OR

BTI1) and

(BTI0 OR

BTH0) and

H0 <= H5 AND

H05 >= L1 OR

//3 d 1 u

BTL3 and

BTL2 and

BTL1 and

(BTH0 OR

BTI0) and

H05 >= L1 AND

H0 <= H4 or

// 2 d 2u

BTL3 and

BTL2 and

(BTH1 OR

BTI1) and

(BTI0 OR

BTH0) and

H0 <= H4 AND

H05 >= L1 OR

//2d 1u

BTL2 and

BTL1 and

(BTH0 OR

BTI0) and

H05 >= L1 AND

H0 <= H3 or

// 1 d 1 u

BTL1 and

(BTH0 or

BTI0) AND

H05 >= L1 AND

H0 <= H2 or

// Outside 1 up

BTL1 and

BTO0 or

// Outside 2 up

BTL3 and

BTL2 and

BTO1 and

BTI0 or

// Outside 3 up

BTL5 and

BTL4 and

BTL3 and

BTO2 and

BTI1 and

BTI0;

V2=ACC(V1);

V3=LAST(V2);

V1==1 and V2 >= V3