BBC Basic 210 190 bytes
Golfing mainly comprises removal of unnecessary whitespace and use of abbreviations for keywords. At one point VDU25,0
is condensed to a single 16-bit value V.25;
(the ;
delimiter denotes that the preceding value is a 16-bit value instead of 8-bit.). At another, VDU25,101
is replaced with the higher level command PLOT101
MODE27h=672F.i=1TO33j=i MOD3IFj=1V.19,7,16
V.(ASCM."8 < 0S o(SP S< S 4*$6LPSDHSSS",i,1)-32)*5MOD257
IFj N.
IFi<19PLOT101,i MOD2*1782+336;h*i/9ELSEV.25;h;-h;25,81,-h;-h;25,97,-168;h*2;
N.
Download interpreter at https://www.bbcbasic.co.uk/bbcwin/download.html
This interpreter has certain features not included in the original BBC basic. It allows for larger screen modes and more colours. MODE 27
is 1280x960 pixels but the coordinate system is double that at 2560x1920.
The original BBC basic had (depending in screen mode) a maximum of 16 logical colours displayed at one time (to save memory) but there was facility to change these colours to any 18-bit physical colour using VDU19
. This would instantaneously change the colour of all pixels of that colour on the screen (which was useful for fast animation.) This interpreter works differently. On execution of a VDU19
colours of existing pixels do not change, only newly drawn ones, and full 24-bit colour is supported.
Selecting the colour is a major part of this code, with 33 different RGB values. Most of them are divisible by 5, so I compressed them into printable ASCII by dividing by 5 and adding 32. The one exception is 138
for the green, which is taken as a larger number mod 257
Stripes are drawn using absolute coordinates with x=1059*2=2118
at the right and x=168*2=336
at the left. This leaves the graphics cursor in the correct position at the top right of the black chevron. 19VDU25,101,i MOD2*1782+336
causes the graphics cursor to zigzag from the default location in the bottom left corner of the screen to the top left corner of the red bar. The code 101 is for a rectangle defined by its opposite corners.
Chevrons are drawn using relative coordinates as a house-shape rotated 90 degrees, comprising a triangle and a rectangle. Subsequent chevrons overdraw the house shape to produce the correct chevron shape.
The graphics cursor is already at top right from the previous operation. It moves diagonally to the centre right point VDU25,0,h;-h;
, then a triangle is drawn linking the last two positions of the graphics cursor to the bottom right VDU25,81,-h;-h;
. The shape is completed by drawing a rectangle to the top left VDU25,97,-168;h*2;
which leaves the cursor in the correct position for the next chevron.
After the brown chevron, certain parts of the final three chevrons are off the left side of the screen and are therefore not plotted.
First working version
MODE27
h=672
FORi=1TO33
j=i MOD3
IFj=1VDU19,7,16
VDU(ASCMID$("8 < 0S o(SP S< S 4*$6LPSDHSSS",i,1)-32)*5MOD257
IFj NEXT
IFi<19VDU25,101,i MOD2*1782+336;i/9*h;ELSEVDU25,0,h;-h;25,81,-h;-h;25,97,-168;h*2;
NEXT
Commented Code
MODE27 :REM select screen mode with 2560x920 logical coordinates, 1280x960 pixels
h=672 :REM half the logical height of the flag
FORi=1TO33 :REM iterate R,G,B through 11 colours
j=i MOD3 :REM if i MOD 3 = 1 tell VDU controller to expect a redefiniton of default logical colour 7
IFj=1VDU19,7,16 :REM (below) extract R,G or B value from 1-indexed string, send to VDU controller
VDU(ASCMID$("8 < 0S o(SP S< S 4*$6LPSDHSSS",i,1)-32)*5MOD257
IFj NEXT :REM if i MOD 3 is not 0 draw nothing yet
IFi<19VDU25,101,i MOD2*1782+336;i/9*h;ELSEVDU25,0,h;-h;25,81,-h;-h;25,97,-168;h*2;
NEXT :REM (above) if i MOD 3 = 0 draw a bar if i<19, otherwise draw a chevron.

graphical-output
challenges are good candidates for answers on old-school systems such as Commodore 64/128, Atari ST, Apple ][, etc. But 1059x672 is too large for them. :-/ \$\endgroup\$