Between 2pm and 8pm New York the market is in the hands of the dealing desks, and the range it builds in those six hours is known as the Central Bank Dealers Range (CBDR). The range itself is not the point. What matters is what you project from it: its height, repeated above its high and below its low, estimates where the high or the low of the next day is likely to form.
The CBDR and the practice of projecting standard deviations from it are concepts taught by ICT (Michael J. Huddleston). CBDR Deviations+ by mayb1dayy is a complete implementation of that model: it measures the window, grades it against the average daily range, projects its deviations, and adds a block projection built from what London actually did. A status panel reports every number, including the London profile of the night.
The windows. Four reference windows are available, all in New York time:
Only the CBDR is drawn by default. The clock is always New York time: the indicator converts the time of every bar from UTC with the US daylight-saving rule, so the windows land on the right candles whatever the time zone of your platform, also in the weeks when Europe and the US change their clocks on different dates.
How the range is measured. By default from the candle bodies: the highest open-or-close to the lowest open-or-close inside the window. A wick carries the dealing spread and every feed disagrees on it, while bodies are what actually traded. The wick range is still drawn as a faint box behind the body range. Wicks can also be used as the basis.
The size test. A dealers range only carries information while it stays tight. The published limits are given in forex pips against a daily range of about 100 pips: about a third of the day as the ideal ceiling and 40% as the point past which the range should not be used. The indicator applies the same ratios to the instrument’s own average daily range (ADR, 20 days by default), so the test works on index futures, metals or crypto too. Every window is graded Ideal, Acceptable or Oversized. An absolute-price mode is also available.
The deviations. One standard deviation is the range height added to the high and subtracted from the low; the second adds it again, and so on up to the fourth. With full labels each multiple carries its meaning: 1 and 2 hold the ideal high or low of the day, 3 is the outer bound most days respect, 4 belongs to a high-impact news day or a session that reverses in New York. A 2.5 multiple is available and off by default. Projections appear when the window closes, never while it forms.
The block projection. London first runs away from the CBDR, usually against the real direction of the day. At 05:00 New York (the end of the London open kill zone) the indicator counts how many whole standard deviations that run reached beyond the range, counting a run that stops just short (by up to 25% of a deviation) as reaching it. The block is the CBDR plus every one of those deviations: a London high at +2 SD makes a block three CBDR heights tall. The block is then stacked the other way: down from the CBDR low when London made the high (sell day), up from the CBDR high when London made the low (buy day). Two blocks are drawn by default, up to four.
A CBDR bigger than 40 pips (or the equivalent in ADR units) is not used: no block is drawn that day and the panel says why. The same happens when London stays inside one deviation.
The London profile. The panel reports facts, not a bias: the Asian range against 20-30 pips, the move from 00:00 to 02:00 New York (up, down or flat), whether price traded through the Asian range or the CBDR before 01:30, and, when there was no clean move by 02:00, the rally and the dip from 02:00 to 03:00 (the delayed profile). The direction of the day comes from the daily chart first.
All times are New York time, written as HHMM. Days: 0 = Sunday to Thursday (evening window that feeds the next day), 1 = Monday to Friday.
Reference windows
Measurement
Standard deviations
Size validity
Retirement
Style
CBDR block projection
London profile
Alerts
Timeframe. The windows need an intraday chart of 60 minutes or finer; on other timeframes the panel asks for it.
//---------------------------------------------------------------
// PRC_CBDR Deviations+ (M1D)
// version = 0
// 21.10.2026
// Iván González @ www.prorealcode.com
// Author: mayb1dayy
// Sharing ProRealTime knowledge
//--------------------------------------------------------------------//
defparam drawonlastbaronly = true
// ===================== INPUTS =====================
// --- Reference windows, New York time (HHMM)
// The New York clock is built from the UTC time of each bar with the US
// daylight-saving rule, so it does not depend on the platform time zone.
// Days: 0 = Sun-Thu (evening window that feeds the next day), 1 = Mon-Fri (the trading day itself)
showCbdr = 1
cbdrStart = 1400
cbdrEnd = 2000
cbdrDays = 0
showAsia = 0
asiaStart = 2000
asiaEnd = 2400
asiaDays = 0
showLondon = 0
lonStart = 200
lonEnd = 500
lonDays = 1
showCustom = 0
custStart = 0
custEnd = 30
custDays = 1
// --- Measurement
measureMode = 2 // 0 = Bodies, 1 = Wicks, 2 = Bodies + wick reference (faint wick box behind)
maxSets = 2 // windows kept on chart (1-5)
partialTol = 60 // a window holding fewer than this % of its expected bars is Partial
// --- Standard deviations
showDev1 = 1
showDev2 = 1
showDev3 = 1
showDev4 = 1
showDev25 = 0 // 2.5 (not part of the original set)
showEq = 1 // equilibrium (50% of the range)
cbdrDevs = 0 // which ranges project deviations (1 = on)
asiaDevs = 0
lonDevs = 0
custDevs = 0
devSpanHours = 0 // stop deviation lines after N hours (0 = run to price)
sideMode = 0 // 0 = Both, 1 = Above only, 2 = Below only
// --- Size validity
gateMode = 0 // 0 = Percent of ADR, 1 = Absolute price
adrLen = 20 // ADR length (days)
cbdrIdealPct = 30
cbdrMaxPct = 40
asiaIdealPct = 20
asiaMaxPct = 30
lonIdealPct = 30
lonMaxPct = 40
custIdealPct = 30
custMaxPct = 40
cbdrIdealAbs = 0
cbdrMaxAbs = 0
asiaIdealAbs = 0
asiaMaxAbs = 0
lonIdealAbs = 0
lonMaxAbs = 0
custIdealAbs = 0
custMaxAbs = 0
hideOversized = 1 // hide projections from an oversized range
// --- Retirement
expiryHours = 72 // expire a window after N hours
maxDistAdr = 1.5 // remove levels further than N x ADR from price
// --- Style
labelDetail = 0 // 0 = Short, 1 = Full, 2 = None
tableSize = 1 // status panel size: 0 = Tiny, 1 = Small, 2 = Normal
cbdrLblPos = 0 // labels: 0 = Right edge, 1 = Left of line, 2 = Centre above line, 3 = Hidden
asiaLblPos = 1
lonLblPos = 1
custLblPos = 0
cbdrW = 1 // high / low line width (1-4)
asiaW = 1
lonW = 1
custW = 1
cbdrDevW = 1 // projection line width (1-4)
asiaDevW = 1
lonDevW = 1
custDevW = 1
eqW = 1 // equilibrium width (1-4)
boxBorderW = 1 // range box border width (1-4)
labelGapAdr = 0.04 // minimum spacing of the right-edge labels (x ADR)
showZone = 1 // show the range box
showLevelTags = 0 // caption the high, low and equilibrium lines
showPanel = 1 // show the status panel
darkChart = 0 // 1 = dark chart background: black turns white
// --- Colours (0-255)
cbdrR = 0
cbdrG = 0
cbdrB = 0
asiaR = 0
asiaG = 0
asiaB = 0
lonR = 120
lonG = 123
lonB = 134
custR = 0
custG = 0
custB = 0
eqR = 120
eqG = 123
eqB = 134
// --- CBDR block projection
showBlocks = 1 // project the CBDR block
blockCount = 2 // blocks drawn (1-4)
blockBasis = 0 // block measured from: 0 = Bodies, 1 = Wicks, 2 = Both (wick set as dashed lines)
judasSrc = 0 // London extreme read from: 0 = Wicks, 1 = Bodies
judasHour = 5 // the London extreme counts at this New York hour (0-9)
sdTolPct = 25 // count a SD missed by up to this % of a SD
blockCap = 1 // stop the blocks at 14:00 New York
noCapMarket = 0 // 1 = index or other non-metal future: the 14:00 stop does not apply
showLcKz = 0 // mark the London close (10:00-12:00) and 14:00
pipMode = 0 // size test in: 0 = Auto (pips on forex, ADR / 100 elsewhere), 1 = Pips, 2 = ADR / 100
pipMin = 5 // ideal from (pips)
pipIdeal = 30 // ideal to (pips)
pipMax = 40 // no CBDR over (pips)
blockStyle = 0 // draw the block as: 0 = Boxes, 1 = Lines
blockR = 0 // block colour (black turns white on a dark chart)
blockG = 0
blockB = 0
blockTransp = 90 // block fill transparency (0 = opaque, 100 = invisible)
// --- London profile
showProfile = 1 // report the London profile in the panel
asiaMinP = 20 // Asian range from (pips)
asiaMaxP = 30 // Asian range to (pips)
flatPips = 10 // 00:00-02:00 counts as flat under (pips)
breakMins = 90 // break of the range counted until N minutes after 00:00
// --- Alerts
alertSeries = 0 // 1 = return the CBDR +/-2 and +/-3 SD levels as invisible series for the alert tool
// ===================== SETUP =====================
tfSec = GetTimeFrame
tfMin = tfSec / 60
tfOk = 0
IF tfSec < 86400 AND tfMin <= 60 THEN
tfOk = 1
ENDIF
nSets = max(1, min(5, round(maxSets)))
nBlk = max(1, min(4, round(blockCount)))
maxAge = expiryHours * 3600
useWick = 0
IF measureMode = 1 THEN
useWick = 1
ENDIF
showWickRef = 0
IF measureMode = 2 THEN
showWickRef = 1
ENDIF
bodyBlk = 1
IF blockBasis = 1 THEN
bodyBlk = 0
ENDIF
asBoxes = 0
IF blockStyle = 0 THEN
asBoxes = 1
ENDIF
wantUp = 1
IF sideMode = 2 THEN
wantUp = 0
ENDIF
wantDn = 1
IF sideMode = 1 THEN
wantDn = 0
ENDIF
capOk = 0
IF blockCap = 1 AND noCapMarket = 0 THEN
capOk = 1
ENDIF
capMkt = 1
IF noCapMarket = 1 THEN
capMkt = 0
ENDIF
inkC = 0
IF darkChart = 1 THEN
inkC = 255
ENDIF
// PRT does not expose the instrument type: Auto takes a pip of 0.0001 as forex
// (yen pairs, with a pip of 0.01, need pipMode = 1)
pipFx = 0
IF pipsize > 0 AND pipsize < 0.0005 THEN
pipFx = 1
ENDIF
pipByTick = 0
IF pipMode = 1 OR (pipMode = 0 AND pipFx = 1) THEN
pipByTick = 1
ENDIF
// Enabled deviation multiples, in the original order
nDm = 0
IF showDev1 = 1 THEN
$dm[nDm] = 1
nDm = nDm + 1
ENDIF
IF showDev2 = 1 THEN
$dm[nDm] = 2
nDm = nDm + 1
ENDIF
IF showDev25 = 1 THEN
$dm[nDm] = 2.5
nDm = nDm + 1
ENDIF
IF showDev3 = 1 THEN
$dm[nDm] = 3
nDm = nDm + 1
ENDIF
IF showDev4 = 1 THEN
$dm[nDm] = 4
nDm = nDm + 1
ENDIF
// Per-range settings: 0 = CBDR, 1 = Asia, 2 = London, 3 = Custom
$rOn[0] = showCbdr
$rOn[1] = showAsia
$rOn[2] = showLondon
$rOn[3] = showCustom
$rS[0] = floor(cbdrStart / 100) * 60 + (cbdrStart MOD 100)
$rE[0] = floor(cbdrEnd / 100) * 60 + (cbdrEnd MOD 100)
$rS[1] = floor(asiaStart / 100) * 60 + (asiaStart MOD 100)
$rE[1] = floor(asiaEnd / 100) * 60 + (asiaEnd MOD 100)
$rS[2] = floor(lonStart / 100) * 60 + (lonStart MOD 100)
$rE[2] = floor(lonEnd / 100) * 60 + (lonEnd MOD 100)
$rS[3] = floor(custStart / 100) * 60 + (custStart MOD 100)
$rE[3] = floor(custEnd / 100) * 60 + (custEnd MOD 100)
$rDays[0] = cbdrDays
$rDays[1] = asiaDays
$rDays[2] = lonDays
$rDays[3] = custDays
$rIdP[0] = cbdrIdealPct
$rIdP[1] = asiaIdealPct
$rIdP[2] = lonIdealPct
$rIdP[3] = custIdealPct
$rMxP[0] = cbdrMaxPct
$rMxP[1] = asiaMaxPct
$rMxP[2] = lonMaxPct
$rMxP[3] = custMaxPct
$rIdA[0] = cbdrIdealAbs
$rIdA[1] = asiaIdealAbs
$rIdA[2] = lonIdealAbs
$rIdA[3] = custIdealAbs
$rMxA[0] = cbdrMaxAbs
$rMxA[1] = asiaMaxAbs
$rMxA[2] = lonMaxAbs
$rMxA[3] = custMaxAbs
$rDev[0] = cbdrDevs
$rDev[1] = asiaDevs
$rDev[2] = lonDevs
$rDev[3] = custDevs
$rLbl[0] = cbdrLblPos
$rLbl[1] = asiaLblPos
$rLbl[2] = lonLblPos
$rLbl[3] = custLblPos
$rW[0] = cbdrW
$rW[1] = asiaW
$rW[2] = lonW
$rW[3] = custW
$rDW[0] = cbdrDevW
$rDW[1] = asiaDevW
$rDW[2] = lonDevW
$rDW[3] = custDevW
$rCr[0] = cbdrR
$rCg[0] = cbdrG
$rCb[0] = cbdrB
$rCr[1] = asiaR
$rCg[1] = asiaG
$rCb[1] = asiaB
$rCr[2] = lonR
$rCg[2] = lonG
$rCb[2] = lonB
$rCr[3] = custR
$rCg[3] = custG
$rCb[3] = custB
FOR rIx = 0 TO 3 DO
spanM = $rE[rIx] - $rS[rIx]
IF $rE[rIx] <= $rS[rIx] THEN
spanM = $rE[rIx] + 1440 - $rS[rIx]
ENDIF
$rExp[rIx] = 0
IF tfMin > 0 THEN
$rExp[rIx] = spanM / tfMin
ENDIF
// London keeps its colour; the other ranges turn white on a dark chart when black
IF darkChart = 1 AND rIx <> 2 AND $rCr[rIx] + $rCg[rIx] + $rCb[rIx] = 0 THEN
$rCr[rIx] = 255
$rCg[rIx] = 255
$rCb[rIx] = 255
ENDIF
NEXT
blkR = blockR
blkG = blockG
blkB = blockB
IF darkChart = 1 AND blkR + blkG + blkB = 0 THEN
blkR = 255
blkG = 255
blkB = 255
ENDIF
blkA = round(255 * (100 - min(100, max(0, blockTransp))) / 100)
// Average daily range of the previous adrLen completed daily bars
TIMEFRAME(daily)
adrRaw = average[adrLen](high - low)
adrDay = adrRaw[1]
TIMEFRAME(default)
// ===================== ENGINE: one pass per CLOSED bar =====================
// The original only reads confirmed bars. All state lives in arrays and the
// guard lets each bar through once (arrays do not rewind between ticks).
IF barindex = 0 THEN
// An array element never assigned reads as undefined, not 0: every
// array the engine reads is seeded here, with -1 for "no bar index yet".
$guard[0] = -1
FOR rIx = 0 TO 3 DO
$wasIn[rIx] = 0
$prevIn[rIx] = 0
$fOn[rIx] = 0
$fN[rIx] = 0
$fBH[rIx] = 0
$fBL[rIx] = 0
$fBHI[rIx] = 0
$fBLI[rIx] = 0
$fWH[rIx] = 0
$fWL[rIx] = 0
$fWHI[rIx] = 0
$fWLI[rIx] = 0
$fST[rIx] = 0
$fSI[rIx] = 0
$fET[rIx] = 0
$fEI[rIx] = 0
$fWE[rIx] = 0
$fWEI[rIx] = -1
$cSet[rIx] = 0
$cOk[rIx] = 0
$cPart[rIx] = 0
$cOver[rIx] = 0
$cGrade[rIx] = 0
$cHi[rIx] = 0
$cLo[rIx] = 0
$cRng[rIx] = 0
$cNow[rIx] = 0
NEXT
FOR bIx = 0 TO 19 DO
$sId[bIx] = 0
$sBorn[bIx] = 0
$sSI[bIx] = 0
$sST[bIx] = 0
$sEI[bIx] = 0
$sET[bIx] = 0
$sRI[bIx] = -1
$sRT[bIx] = 0
$sHi[bIx] = 0
$sLo[bIx] = 0
$sHiI[bIx] = 0
$sLoI[bIx] = 0
$sWH[bIx] = 0
$sWL[bIx] = 0
$sRng[bIx] = 0
$sPart[bIx] = 0
$sOver[bIx] = 0
$sTag[bIx] = 0
$sWBox[bIx] = 0
$sBBox[bIx] = 0
$sEqOn[bIx] = 0
$sDevOn[bIx] = 0
$sDCT[bIx] = 0
$sDCI[bIx] = -1
NEXT
FOR jIx = 0 TO 479 DO
$rm[jIx] = 0
NEXT
FOR jIx = 0 TO 199 DO
$dvOff[jIx] = 0
NEXT
FOR sIx = 0 TO 4 DO
$kOn[sIx] = 0
$kBorn[sIx] = 0
$kBornI[sIx] = 0
$kDir[sIx] = 0
$kN[sIx] = 0
$kH[sIx] = 0
$kTop[sIx] = 0
$kBot[sIx] = 0
$kCapT[sIx] = 0
$kCapI[sIx] = -1
$kPipU[sIx] = 0
$kPipOk[sIx] = 0
$kExPx[sIx] = 0
$kExI[sIx] = 0
$kJud[sIx] = 0
$kSI[sIx] = 0
$kEI[sIx] = 0
$kMidI[sIx] = 0
$kwOn[sIx] = 0
$kwDir[sIx] = 0
$kwN[sIx] = 0
$kwH[sIx] = 0
$kwTop[sIx] = 0
$kwBot[sIx] = 0
NEXT
FOR jIx = 0 TO 19 DO
$kLI[jIx] = 0
$kRI[jIx] = 0
NEXT
FOR jIx = 0 TO 39 DO
$kSp[jIx] = 0
NEXT
FOR zIx = 0 TO 9 DO
$zId[zIx] = 0
$zTop[zIx] = 0
$zBot[zIx] = 0
$zST[zIx] = 0
$zET[zIx] = 0
$zCT[zIx] = 0
$zSI[zIx] = -1
$zEI[zIx] = -1
$zCI[zIx] = -1
$zCap[zIx] = 0
NEXT
$zCnt[0] = 0
$jPend[0] = 0
$jSet[0] = 0
$jCut[0] = 0
$jHas[0] = 0
$jHi[0] = 0
$jHiI[0] = 0
$jHiT[0] = 0
$jLo[0] = 0
$jLoI[0] = 0
$jLoT[0] = 0
$bDayC[0] = 0
$bLonU[0] = 0
$bLonD[0] = 0
$bN[0] = 0
$bBlkC[0] = 0
$bV[0] = 0
$bVOk[0] = 0
$pAsiaSet[0] = 0
$pAsiaHi[0] = 0
$pAsiaLo[0] = 0
$pMidSet[0] = 0
$pMidOpen[0] = 0
$pMidHi[0] = 0
$pMidLo[0] = 0
$pMidClose[0] = 0
$pMidT[0] = 0
$pMidDone[0] = 0
$pBrkDir[0] = 0
$pBrkM[0] = 0
$pRetSet[0] = 0
$pRetOpen[0] = 0
$pRetHi[0] = 0
$pRetLo[0] = 0
$pRetDone[0] = 0
$wasMid[0] = 0
$wasRet[0] = 0
ENDIF
IF barindex >= 1 AND barindex > $guard[0] THEN
$guard[0] = barindex
idxP = barindex - 1
oP = open[1]
hP = high[1]
lP = low[1]
cP = close[1]
tP = opentimestamp[1]
tcP = tP + tfSec
adrP = adrDay[1]
adrOkP = 0
IF adrP > 0 THEN
adrOkP = 1
ELSE
adrP = 0
ENDIF
IF pipByTick = 1 THEN
pipUP = pipsize
ELSE
pipUP = adrP / 100
ENDIF
distGate = adrP * maxDistAdr
// ---- New York clock of the closed bar (UTC + US daylight saving) ----
dayU = floor(tP / 86400)
zzC = dayU + 719468
eraC = floor(zzC / 146097)
doeC = zzC - eraC * 146097
yoeC = floor((doeC - floor(doeC / 1460) + floor(doeC / 36524) - floor(doeC / 146096)) / 365)
yearC = yoeC + eraC * 400
doyC = doeC - (365 * yoeC + floor(yoeC / 4) - floor(yoeC / 100))
mpC = floor((5 * doyC + 2) / 153)
IF mpC >= 10 THEN
yearC = yearC + 1
ENDIF
eraM = floor(yearC / 400)
yoeM = yearC - eraM * 400
mar1 = eraM * 146097 + yoeM * 365 + floor(yoeM / 4) - floor(yoeM / 100) - 719468
nov1 = mar1 + 245
dowMar1 = (mar1 + 4) MOD 7
dowNov1 = (nov1 + 4) MOD 7
// DST from the second Sunday of March 02:00 EST to the first Sunday of November 02:00 EDT
dstOn = (mar1 + ((7 - dowMar1) MOD 7) + 7) * 86400 + 25200
dstOff = (nov1 + ((7 - dowNov1) MOD 7)) * 86400 + 21600
nyOff = -18000
IF tP >= dstOn AND tP < dstOff THEN
nyOff = -14400
ENDIF
nyT = tP + nyOff
nyDay = floor(nyT / 86400)
nyMin = floor((nyT - nyDay * 86400) / 60)
nyDow = (nyDay + 4) MOD 7
dowNext = (nyDow + 1) MOD 7
nyDayStart = nyDay * 86400
// ---- Pending time -> bar index (first bar opening at or after a time) ----
FOR rIx = 0 TO 3 DO
IF $fOn[rIx] = 1 AND $fWEI[rIx] < 0 AND tP >= $fWE[rIx] THEN
$fWEI[rIx] = idxP
ENDIF
FOR sIx = 0 TO 4 DO
bIx = rIx * 5 + sIx
IF $sId[bIx] > 0 THEN
IF $sRI[bIx] < 0 AND tP >= $sRT[bIx] THEN
$sRI[bIx] = idxP
ENDIF
IF $sDCT[bIx] > 0 AND $sDCI[bIx] < 0 AND tP >= $sDCT[bIx] THEN
$sDCI[bIx] = idxP
ENDIF
ENDIF
NEXT
NEXT
FOR sIx = 0 TO 4 DO
IF $kOn[sIx] = 1 AND $kCapT[sIx] > 0 AND $kCapI[sIx] < 0 AND tP >= $kCapT[sIx] THEN
$kCapI[sIx] = idxP
ENDIF
NEXT
FOR zIx = 0 TO 9 DO
IF $zId[zIx] > 0 THEN
IF $zSI[zIx] < 0 AND tP >= $zST[zIx] THEN
$zSI[zIx] = idxP
ENDIF
IF $zEI[zIx] < 0 AND tP >= $zET[zIx] THEN
$zEI[zIx] = idxP
ENDIF
IF $zCI[zIx] < 0 AND tP >= $zCT[zIx] THEN
$zCI[zIx] = idxP
ENDIF
ENDIF
NEXT
// ---- Reference windows: open, measure, close, draw ----
FOR rIx = 0 TO 3 DO
sMin = $rS[rIx]
eMin = $rE[rIx]
dMode = $rDays[rIx]
okToday = 0
IF (dMode = 0 AND nyDow <= 4) OR (dMode = 1 AND nyDow >= 1 AND nyDow <= 5) THEN
okToday = 1
ENDIF
okNext = 0
IF (dMode = 0 AND dowNext <= 4) OR (dMode = 1 AND dowNext >= 1 AND dowNext <= 5) THEN
okNext = 1
ENDIF
inW = 0
IF eMin > sMin THEN
IF nyMin >= sMin AND nyMin < eMin AND okToday = 1 THEN
inW = 1
ENDIF
ELSE
// A window across midnight belongs to the day it ends on
IF (nyMin >= sMin AND okNext = 1) OR (nyMin < eMin AND okToday = 1) THEN
inW = 1
ENDIF
ENDIF
wasW = $wasIn[rIx]
$prevIn[rIx] = wasW
$wasIn[rIx] = inW
$cNow[rIx] = 0
IF $rOn[rIx] = 1 AND tfOk = 1 THEN
expB = $rExp[rIx]
IF inW = 1 AND wasW = 0 THEN
$fOn[rIx] = 1
$fN[rIx] = 0
$fST[rIx] = tP
$fSI[rIx] = idxP
$fET[rIx] = tcP
$fEI[rIx] = idxP
fullEnd = tP + round(expB * tfMin * 60)
$fWE[rIx] = max(fullEnd, tcP)
$fWEI[rIx] = -1
$cOk[rIx] = 0
ENDIF
IF inW = 1 AND $fOn[rIx] = 1 THEN
bbH = max(oP, cP)
bbL = min(oP, cP)
IF $fN[rIx] = 0 OR bbH > $fBH[rIx] THEN
$fBH[rIx] = bbH
$fBHI[rIx] = idxP
ENDIF
IF $fN[rIx] = 0 OR bbL < $fBL[rIx] THEN
$fBL[rIx] = bbL
$fBLI[rIx] = idxP
ENDIF
IF $fN[rIx] = 0 OR hP > $fWH[rIx] THEN
$fWH[rIx] = hP
$fWHI[rIx] = idxP
ENDIF
IF $fN[rIx] = 0 OR lP < $fWL[rIx] THEN
$fWL[rIx] = lP
$fWLI[rIx] = idxP
ENDIF
$fET[rIx] = tcP
$fEI[rIx] = idxP
$fN[rIx] = $fN[rIx] + 1
ENDIF
IF inW = 0 AND wasW = 1 AND $fOn[rIx] = 1 THEN
IF useWick = 1 THEN
wHi = $fWH[rIx]
wLo = $fWL[rIx]
wHiI = $fWHI[rIx]
wLoI = $fWLI[rIx]
ELSE
wHi = $fBH[rIx]
wLo = $fBL[rIx]
wHiI = $fBHI[rIx]
wLoI = $fBLI[rIx]
ENDIF
wRng = wHi - wLo
IF gateMode = 0 THEN
idealLim = adrP * $rIdP[rIx] / 100
maxLim = adrP * $rMxP[rIx] / 100
ELSE
idealLim = $rIdA[rIx]
maxLim = $rMxA[rIx]
ENDIF
capSet = 0
IF maxLim > 0 THEN
capSet = 1
ENDIF
isOver = 0
IF capSet = 1 AND wRng > maxLim THEN
isOver = 1
ENDIF
isPart = 0
IF expB > 0 AND $fN[rIx] < expB * partialTol / 100 THEN
isPart = 1
ENDIF
// grade: 1 Ideal, 2 Oversized, 3 Acceptable, 4 Ungated
grd = 4
IF isOver = 1 THEN
grd = 2
ELSIF idealLim > 0 AND wRng <= idealLim THEN
grd = 1
ELSIF capSet = 1 THEN
grd = 3
ENDIF
newSet = $cSet[rIx] + 1
$cSet[rIx] = newSet
$cOk[rIx] = 1
$cPart[rIx] = isPart
$cOver[rIx] = isOver
$cGrade[rIx] = grd
$cHi[rIx] = wHi
$cLo[rIx] = wLo
$cRng[rIx] = wRng
$cNow[rIx] = 1
// File the window under its set slot
slot = newSet MOD 5
bIx = rIx * 5 + slot
$sId[bIx] = newSet
$sBorn[bIx] = tP
$sSI[bIx] = $fSI[rIx]
$sST[bIx] = $fST[rIx]
$sEI[bIx] = $fEI[rIx]
$sET[bIx] = $fET[rIx]
$sRT[bIx] = max($fWE[rIx], $fET[rIx])
IF $fET[rIx] >= $fWE[rIx] THEN
$sRI[bIx] = $fEI[rIx] + 1
ELSE
$sRI[bIx] = $fWEI[rIx]
ENDIF
$sHi[bIx] = wHi
$sLo[bIx] = wLo
$sHiI[bIx] = wHiI
$sLoI[bIx] = wLoI
$sWH[bIx] = $fWH[rIx]
$sWL[bIx] = $fWL[rIx]
$sRng[bIx] = wRng
$sPart[bIx] = isPart
$sOver[bIx] = isOver
$sTag[bIx] = 0
$sWBox[bIx] = showWickRef
$sBBox[bIx] = showZone
$sEqOn[bIx] = showEq
drawDevs = 0
IF $rDev[rIx] = 1 AND nDm > 0 AND NOT (isOver = 1 AND hideOversized = 1) THEN
drawDevs = 1
ENDIF
$sDevOn[bIx] = drawDevs
$sDCI[bIx] = -1
IF devSpanHours > 0 THEN
$sDCT[bIx] = $fET[rIx] + round(devSpanHours * 3600)
ELSE
$sDCT[bIx] = 0
ENDIF
FOR jIx = 0 TO 23 DO
$rm[bIx * 24 + jIx] = 0
NEXT
FOR jIx = 0 TO 9 DO
$dvOff[bIx * 10 + jIx] = 0
NEXT
IF rIx = 0 THEN
$kOn[slot] = 0
$kwOn[slot] = 0
FOR jIx = 0 TO 7 DO
$kSp[slot * 8 + jIx] = 0
NEXT
ENDIF
$fOn[rIx] = 0
ENDIF
ENDIF
NEXT
// ---- CBDR block projection ----
IF tfOk = 1 AND showCbdr = 1 AND showBlocks = 1 THEN
IF $cNow[0] = 1 THEN
$jPend[0] = 1
$jSet[0] = $cSet[0]
// first judasHour:00 New York at or after this bar
candL = nyDayStart + judasHour * 3600
IF candL < nyT THEN
candL = candL + 86400
ENDIF
IF candL + 14400 >= dstOn AND candL + 14400 < dstOff THEN
$jCut[0] = candL + 14400
ELSE
$jCut[0] = candL + 18000
ENDIF
$jHas[0] = 0
$bBlkC[0] = 0
ENDIF
IF $jPend[0] = 1 AND $cSet[0] <> $jSet[0] THEN
$jPend[0] = 0
ENDIF
IF $jPend[0] = 1 AND tP >= $jCut[0] THEN
$jPend[0] = 0
IF bodyBlk = 1 THEN
tE = $fBH[0]
bE = $fBL[0]
ELSE
tE = $fWH[0]
bE = $fWL[0]
ENDIF
cbH = tE - bE
nUp = 0
nDn = 0
IF round(cbH / ticksize) > 0 AND $jHas[0] = 1 THEN
IF $jHi[0] - tE > 0 THEN
nUp = min(4, floor(round(($jHi[0] - tE) / ticksize) / round(cbH / ticksize) + sdTolPct / 100))
ENDIF
IF bE - $jLo[0] > 0 THEN
nDn = min(4, floor(round((bE - $jLo[0]) / ticksize) / round(cbH / ticksize) + sdTolPct / 100))
ENDIF
ENDIF
bDir = 0
bNn = 0
IF nUp >= 1 AND (nDn < 1 OR $jHiT[0] <= $jLoT[0]) THEN
bDir = -1
bNn = nUp
ELSIF nDn >= 1 THEN
bDir = 1
bNn = nDn
ENDIF
// validity: 1 No CBDR, 2 Pushing it, 3 Small, 4 Ideal
vGr = 0
IF pipUP > 0 THEN
sizeP = round(cbH / pipUP * 1000000) / 1000000
IF sizeP > pipMax THEN
vGr = 1
ELSIF sizeP > pipIdeal THEN
vGr = 2
ELSIF sizeP < pipMin THEN
vGr = 3
ELSE
vGr = 4
ENDIF
ENDIF
slotJ = $jSet[0] MOD 5
IF vGr = 1 THEN
$sTag[slotJ] = 1
$bDayC[0] = 1
$bBlkC[0] = 1
$bV[0] = round(cbH / pipUP * 10) / 10
$bVOk[0] = 1
ELSIF bDir = 0 THEN
$sTag[slotJ] = 2
$bDayC[0] = 2
$bBlkC[0] = 2
ELSE
blkH = cbH * (bNn + 1)
capT = 0
IF capOk = 1 THEN
candL = nyDayStart + 14 * 3600
IF candL < nyT THEN
candL = candL + 86400
ENDIF
IF candL + 14400 >= dstOn AND candL + 14400 < dstOff THEN
capT = candL + 14400
ELSE
capT = candL + 18000
ENDIF
ENDIF
$kOn[slotJ] = 1
$kBorn[slotJ] = tP
$kBornI[slotJ] = idxP
$kDir[slotJ] = bDir
$kN[slotJ] = bNn
$kH[slotJ] = cbH
$kTop[slotJ] = tE
$kBot[slotJ] = bE
$kCapT[slotJ] = capT
$kCapI[slotJ] = -1
// the block texts are frozen with the pip unit of this bar
$kPipU[slotJ] = pipUP
$kPipOk[slotJ] = 0
IF pipUP > 0 THEN
$kPipOk[slotJ] = 1
ENDIF
IF bDir < 0 THEN
$kExPx[slotJ] = $jHi[0]
$kExI[slotJ] = $jHiI[0]
exT = $jHiT[0]
ELSE
$kExPx[slotJ] = $jLo[0]
$kExI[slotJ] = $jLoI[0]
exT = $jLoT[0]
ENDIF
wSI = $sSI[slotJ]
wST = $sST[slotJ]
wET = $sET[slotJ]
$kSI[slotJ] = wSI
$kEI[slotJ] = $sEI[slotJ] + 1
$kJud[slotJ] = 0
IF exT > wET THEN
$kJud[slotJ] = 1
ENDIF
// The block boxes are placed by time inside and after the CBDR window
winW = wET - wST
barS = round(tfMin * 60)
midT = wST + floor(winW / 2)
$tgT[0] = midT
FOR kIx = 1 TO nBlk DO
$tgT[2 * kIx - 1] = midT + (kIx - 1) * barS
$tgT[2 * kIx] = midT + (kIx - 1) * barS + floor(winW * 0.8)
NEXT
nTg = 2 * nBlk + 1
FOR gIx = 0 TO nTg - 1 DO
$tgI[gIx] = idxP + 1
NEXT
nScan = min(idxP - wSI, barindex - 1)
FOR jIx = 0 TO nScan DO
tjS = opentimestamp[1 + jIx]
FOR gIx = 0 TO nTg - 1 DO
IF tjS >= $tgT[gIx] THEN
$tgI[gIx] = idxP - jIx
ENDIF
NEXT
NEXT
$kMidI[slotJ] = $tgI[0]
FOR kIx = 1 TO nBlk DO
$kLI[slotJ * 4 + kIx - 1] = $tgI[2 * kIx - 1]
$kRI[slotJ * 4 + kIx - 1] = $tgI[2 * kIx]
NEXT
IF asBoxes = 1 THEN
// the window's own tag gives way to the London label
$sTag[slotJ] = 3
ENDIF
// Wick-measured set (Both)
IF blockBasis = 2 THEN
tW = $fWH[0]
bW = $fWL[0]
hW = tW - bW
nUpW = 0
nDnW = 0
IF round(hW / ticksize) > 0 AND $jHas[0] = 1 THEN
IF $jHi[0] - tW > 0 THEN
nUpW = min(4, floor(round(($jHi[0] - tW) / ticksize) / round(hW / ticksize) + sdTolPct / 100))
ENDIF
IF bW - $jLo[0] > 0 THEN
nDnW = min(4, floor(round((bW - $jLo[0]) / ticksize) / round(hW / ticksize) + sdTolPct / 100))
ENDIF
ENDIF
dirW = 0
nW = 0
IF nUpW >= 1 AND (nDnW < 1 OR $jHiT[0] <= $jLoT[0]) THEN
dirW = -1
nW = nUpW
ELSIF nDnW >= 1 THEN
dirW = 1
nW = nDnW
ENDIF
okW = 1
IF pipUP > 0 THEN
IF round(hW / pipUP * 1000000) / 1000000 > pipMax THEN
okW = 0
ENDIF
ENDIF
IF dirW <> 0 AND okW = 1 THEN
$kwOn[slotJ] = 1
$kwDir[slotJ] = dirW
$kwN[slotJ] = nW
$kwH[slotJ] = hW
$kwTop[slotJ] = tW
$kwBot[slotJ] = bW
ENDIF
ENDIF
// One name per price: a deviation sitting on a block gives its name to the block
IF $sDevOn[slotJ] = 1 THEN
hiS = $sHi[slotJ]
loS = $sLo[slotJ]
rgS = $sRng[slotJ]
FOR dIx = 0 TO nDm - 1 DO
mlt = $dm[dIx]
FOR sdI = 0 TO 1 DO
jLv = 3 + dIx * 2 + sdI
IF ((sdI = 0 AND wantUp = 1) OR (sdI = 1 AND wantDn = 1)) AND $rm[slotJ * 24 + jLv] = 0 THEN
IF sdI = 0 THEN
pxD = hiS + rgS * mlt
ELSE
pxD = loS - rgS * mlt
ENDIF
hitB = 0
kFrom = 1
IF asBoxes = 1 THEN
kFrom = nBlk
ENDIF
FOR kIx = kFrom TO nBlk DO
IF bDir > 0 THEN
pxB = tE + blkH * kIx
ELSE
pxB = bE - blkH * kIx
ENDIF
IF abs(pxB - pxD) < ticksize / 2 THEN
hitB = 1
ENDIF
NEXT
IF $kwOn[slotJ] = 1 THEN
FOR kIx = 1 TO nBlk DO
IF $kwDir[slotJ] > 0 THEN
pxB = $kwTop[slotJ] + $kwH[slotJ] * ($kwN[slotJ] + 1) * kIx
ELSE
pxB = $kwBot[slotJ] - $kwH[slotJ] * ($kwN[slotJ] + 1) * kIx
ENDIF
IF abs(pxB - pxD) < ticksize / 2 THEN
hitB = 1
ENDIF
NEXT
ENDIF
IF hitB = 1 THEN
$dvOff[slotJ * 10 + dIx * 2 + sdI] = 1
ENDIF
ENDIF
NEXT
NEXT
ENDIF
// London close kill zone and 14:00
IF showLcKz = 1 THEN
IF bDir > 0 THEN
nearPx = tE
farPx = tE + blkH * nBlk
ELSE
nearPx = bE
farPx = bE - blkH * nBlk
ENDIF
zNew = $zCnt[0] + 1
$zCnt[0] = zNew
zs = zNew MOD 10
$zId[zs] = zNew
$zTop[zs] = max(nearPx, farPx)
$zBot[zs] = min(nearPx, farPx)
$zCap[zs] = capMkt
FOR gIx = 0 TO 2 DO
IF gIx = 0 THEN
candL = nyDayStart + 10 * 3600
ELSIF gIx = 1 THEN
candL = nyDayStart + 12 * 3600
ELSE
candL = nyDayStart + 14 * 3600
ENDIF
IF candL < nyT THEN
candL = candL + 86400
ENDIF
IF candL + 14400 >= dstOn AND candL + 14400 < dstOff THEN
candU = candL + 14400
ELSE
candU = candL + 18000
ENDIF
IF gIx = 0 THEN
$zST[zs] = candU
ELSIF gIx = 1 THEN
$zET[zs] = candU
ELSE
$zCT[zs] = candU
ENDIF
NEXT
$zSI[zs] = -1
$zEI[zs] = -1
$zCI[zs] = -1
ENDIF
IF bDir < 0 THEN
$bDayC[0] = 3
ELSE
$bDayC[0] = 4
ENDIF
$bN[0] = bNn
$bBlkC[0] = 3
IF pipUP > 0 THEN
$bV[0] = round(blkH / pipUP * 10) / 10
$bVOk[0] = 1
ELSE
$bV[0] = round(blkH / ticksize) * ticksize
$bVOk[0] = 0
ENDIF
ENDIF
ENDIF
IF $jPend[0] = 1 THEN
IF judasSrc = 0 THEN
jbH = hP
jbL = lP
ELSE
jbH = max(oP, cP)
jbL = min(oP, cP)
ENDIF
IF $jHas[0] = 0 OR jbH > $jHi[0] THEN
$jHi[0] = jbH
$jHiI[0] = idxP
$jHiT[0] = tP
ENDIF
IF $jHas[0] = 0 OR jbL < $jLo[0] THEN
$jLo[0] = jbL
$jLoI[0] = idxP
$jLoT[0] = tP
ENDIF
$jHas[0] = 1
IF bodyBlk = 1 THEN
tL = $fBH[0]
bL = $fBL[0]
ELSE
tL = $fWH[0]
bL = $fWL[0]
ENDIF
sL = tL - bL
fUp = 0
fDn = 0
IF round(sL / ticksize) > 0 THEN
IF $jHi[0] - tL > 0 THEN
fUp = min(4, floor(round(($jHi[0] - tL) / ticksize) / round(sL / ticksize) + sdTolPct / 100))
ENDIF
IF bL - $jLo[0] > 0 THEN
fDn = min(4, floor(round((bL - $jLo[0]) / ticksize) / round(sL / ticksize) + sdTolPct / 100))
ENDIF
ENDIF
$bDayC[0] = 5
$bLonU[0] = fUp
$bLonD[0] = fDn
ENDIF
ENDIF
// ---- A block is a target: once price trades to it inside its window it is spent ----
FOR sIx = 0 TO 4 DO
IF $kOn[sIx] = 1 AND $sId[sIx] > 0 THEN
IF tP > $kBorn[sIx] AND ($kCapT[sIx] = 0 OR tP <= $kCapT[sIx]) THEN
kFrom = 1
IF asBoxes = 1 THEN
kFrom = nBlk
ENDIF
blkH = $kH[sIx] * ($kN[sIx] + 1)
FOR kIx = kFrom TO nBlk DO
IF $rm[sIx * 24 + 12 + kIx] = 0 AND $kSp[sIx * 8 + kIx - 1] = 0 THEN
IF $kDir[sIx] > 0 THEN
pxB = $kTop[sIx] + blkH * kIx
IF hP >= pxB THEN
$kSp[sIx * 8 + kIx - 1] = 1
ENDIF
ELSE
pxB = $kBot[sIx] - blkH * kIx
IF lP <= pxB THEN
$kSp[sIx * 8 + kIx - 1] = 1
ENDIF
ENDIF
ENDIF
NEXT
IF $kwOn[sIx] = 1 THEN
blkHW = $kwH[sIx] * ($kwN[sIx] + 1)
FOR kIx = 1 TO nBlk DO
IF $rm[sIx * 24 + 16 + kIx] = 0 AND $kSp[sIx * 8 + 3 + kIx] = 0 THEN
IF $kwDir[sIx] > 0 THEN
pxB = $kwTop[sIx] + blkHW * kIx
IF hP >= pxB THEN
$kSp[sIx * 8 + 3 + kIx] = 1
ENDIF
ELSE
pxB = $kwBot[sIx] - blkHW * kIx
IF lP <= pxB THEN
$kSp[sIx * 8 + 3 + kIx] = 1
ENDIF
ENDIF
ENDIF
NEXT
ENDIF
ENDIF
ENDIF
NEXT
// ---- London profile (facts only) ----
IF tfOk = 1 AND showProfile = 1 THEN
// The Asian window feeds the profile even when it is not drawn
inAsiaP = $wasIn[1]
wasAsiaP = $prevIn[1]
inMid = 0
IF nyMin < 120 AND nyDow >= 1 AND nyDow <= 5 THEN
inMid = 1
ENDIF
inRet = 0
IF nyMin >= 120 AND nyMin < 180 AND nyDow >= 1 AND nyDow <= 5 THEN
inRet = 1
ENDIF
wasMidP = $wasMid[0]
$wasMid[0] = inMid
wasRetP = $wasRet[0]
$wasRet[0] = inRet
IF bodyBlk = 1 THEN
pHiBar = max(oP, cP)
pLoBar = min(oP, cP)
ELSE
pHiBar = hP
pLoBar = lP
ENDIF
IF inAsiaP = 1 AND wasAsiaP = 0 THEN
$pAsiaSet[0] = 1
$pAsiaHi[0] = pHiBar
$pAsiaLo[0] = pLoBar
$pMidSet[0] = 0
$pMidDone[0] = 0
$pBrkDir[0] = 0
$pRetSet[0] = 0
$pRetDone[0] = 0
ELSIF inAsiaP = 1 AND $pAsiaSet[0] = 1 THEN
$pAsiaHi[0] = max($pAsiaHi[0], pHiBar)
$pAsiaLo[0] = min($pAsiaLo[0], pLoBar)
ENDIF
IF inMid = 1 AND wasMidP = 0 THEN
$pMidSet[0] = 1
$pMidOpen[0] = oP
$pMidHi[0] = hP
$pMidLo[0] = lP
$pMidT[0] = tP
$pMidDone[0] = 0
$pBrkDir[0] = 0
ELSIF inMid = 1 AND $pMidSet[0] = 1 THEN
$pMidHi[0] = max($pMidHi[0], hP)
$pMidLo[0] = min($pMidLo[0], lP)
ENDIF
IF inMid = 1 AND $pMidSet[0] = 1 THEN
$pMidClose[0] = cP
IF $pAsiaSet[0] = 1 THEN
aHi = $pAsiaHi[0]
aLo = $pAsiaLo[0]
ELSE
aHi = hP
aLo = lP
ENDIF
topLvl = aHi
botLvl = aLo
IF $cOk[0] = 1 THEN
IF bodyBlk = 1 THEN
topLvl = max(aHi, $fBH[0])
botLvl = min(aLo, $fBL[0])
ELSE
topLvl = max(aHi, $fWH[0])
botLvl = min(aLo, $fWL[0])
ENDIF
ENDIF
IF $pBrkDir[0] = 0 AND tP < $pMidT[0] + breakMins * 60 THEN
IF hP > topLvl THEN
$pBrkDir[0] = 1
$pBrkM[0] = nyMin
ELSIF lP < botLvl THEN
$pBrkDir[0] = -1
$pBrkM[0] = nyMin
ENDIF
ENDIF
ENDIF
IF inMid = 0 AND wasMidP = 1 AND $pMidSet[0] = 1 THEN
$pMidDone[0] = 1
ENDIF
IF inRet = 1 AND wasRetP = 0 AND $pMidDone[0] = 1 THEN
$pRetSet[0] = 1
$pRetOpen[0] = oP
$pRetHi[0] = hP
$pRetLo[0] = lP
ELSIF inRet = 1 AND $pRetSet[0] = 1 THEN
$pRetHi[0] = max($pRetHi[0], hP)
$pRetLo[0] = min($pRetLo[0], lP)
ENDIF
IF inRet = 0 AND wasRetP = 1 AND $pRetSet[0] = 1 THEN
$pRetDone[0] = 1
ENDIF
ENDIF
// ---- Retire far-off drawings (a level is removed for good once it is too far from price) ----
IF distGate > 0 THEN
FOR rIx = 0 TO 3 DO
IF $rOn[rIx] = 1 THEN
oldest = $cSet[rIx] - nSets + 1
FOR sIx = 0 TO 4 DO
bIx = rIx * 5 + sIx
sidV = $sId[bIx]
IF sidV > 0 AND sidV >= oldest THEN
baseI = bIx * 24
hiS = $sHi[bIx]
loS = $sLo[bIx]
rgS = $sRng[bIx]
IF $rm[baseI] = 0 AND abs(hiS - cP) > distGate THEN
$rm[baseI] = 1
ENDIF
IF $rm[baseI + 1] = 0 AND abs(loS - cP) > distGate THEN
$rm[baseI + 1] = 1
ENDIF
IF $sEqOn[bIx] = 1 AND $rm[baseI + 2] = 0 AND abs((hiS + loS) / 2 - cP) > distGate THEN
$rm[baseI + 2] = 1
ENDIF
IF $sDevOn[bIx] = 1 THEN
FOR dIx = 0 TO nDm - 1 DO
mlt = $dm[dIx]
IF wantUp = 1 AND $rm[baseI + 3 + dIx * 2] = 0 AND abs(hiS + rgS * mlt - cP) > distGate THEN
$rm[baseI + 3 + dIx * 2] = 1
ENDIF
IF wantDn = 1 AND $rm[baseI + 4 + dIx * 2] = 0 AND abs(loS - rgS * mlt - cP) > distGate THEN
$rm[baseI + 4 + dIx * 2] = 1
ENDIF
NEXT
ENDIF
IF $sWBox[bIx] = 1 AND $rm[baseI + 21] = 0 AND abs(($sWH[bIx] + $sWL[bIx]) / 2 - cP) > distGate THEN
$rm[baseI + 21] = 1
ENDIF
IF $sBBox[bIx] = 1 AND $rm[baseI + 22] = 0 AND abs((hiS + loS) / 2 - cP) > distGate THEN
$rm[baseI + 22] = 1
ENDIF
IF rIx = 0 AND $kOn[sIx] = 1 THEN
IF asBoxes = 0 THEN
blkH = $kH[sIx] * ($kN[sIx] + 1)
FOR kIx = 1 TO nBlk DO
IF $kDir[sIx] > 0 THEN
pxB = $kTop[sIx] + blkH * kIx
ELSE
pxB = $kBot[sIx] - blkH * kIx
ENDIF
IF $rm[baseI + 12 + kIx] = 0 AND abs(pxB - cP) > distGate THEN
$rm[baseI + 12 + kIx] = 1
ENDIF
NEXT
ENDIF
IF $kwOn[sIx] = 1 THEN
blkHW = $kwH[sIx] * ($kwN[sIx] + 1)
FOR kIx = 1 TO nBlk DO
IF $kwDir[sIx] > 0 THEN
pxB = $kwTop[sIx] + blkHW * kIx
ELSE
pxB = $kwBot[sIx] - blkHW * kIx
ENDIF
IF $rm[baseI + 16 + kIx] = 0 AND abs(pxB - cP) > distGate THEN
$rm[baseI + 16 + kIx] = 1
ENDIF
NEXT
ENDIF
ENDIF
ENDIF
NEXT
ENDIF
NEXT
ENDIF
ENDIF
// ===================== DRAWING (last bar) =====================
IF islastbarupdate THEN
nowT = opentimestamp
nowI = barindex
adrN = adrDay
adrOkN = 0
IF adrN > 0 THEN
adrOkN = 1
ELSE
adrN = 0
ENDIF
IF pipByTick = 1 THEN
pipUN = pipsize
ELSE
pipUN = adrN / 100
ENDIF
pipOkN = 0
IF pipUN > 0 THEN
pipOkN = 1
ENDIF
lblGap = adrN * labelGapAdr
nSeg = 0
nRec = 0
nLb = 0
IF tfOk = 1 THEN
FOR rIx = 0 TO 3 DO
IF $rOn[rIx] = 1 THEN
cR = $rCr[rIx]
cG = $rCg[rIx]
cB = $rCb[rIx]
lpos = $rLbl[rIx]
lnW = $rW[rIx]
dvW = $rDW[rIx]
oldest = $cSet[rIx] - nSets + 1
FOR sIx = 0 TO 4 DO
bIx = rIx * 5 + sIx
sidV = $sId[bIx]
IF sidV > 0 AND sidV >= oldest THEN
baseI = bIx * 24
winLive = 0
IF nowT - $sBorn[bIx] <= maxAge THEN
winLive = 1
ENDIF
hiS = $sHi[bIx]
loS = $sLo[bIx]
rgS = $sRng[bIx]
xS = $sSI[bIx]
xE = $sEI[bIx] + 1
IF $sRI[bIx] >= 0 THEN
xR = $sRI[bIx]
ELSIF nowT >= $sRT[bIx] THEN
xR = nowI
ELSE
xR = nowI + round(($sRT[bIx] - nowT) / tfSec)
ENDIF
x2D = nowI
IF $sDCT[bIx] > 0 AND $sDCI[bIx] >= 0 THEN
x2D = $sDCI[bIx]
ENDIF
blkLive = 0
blkH = 0
x2K = nowI
IF rIx = 0 THEN
IF $kOn[sIx] = 1 AND nowT - $kBorn[sIx] <= maxAge THEN
blkLive = 1
blkH = $kH[sIx] * ($kN[sIx] + 1)
IF $kCapT[sIx] > 0 AND $kCapI[sIx] >= 0 THEN
x2K = $kCapI[sIx]
ENDIF
ENDIF
ENDIF
IF winLive = 1 AND $sWBox[bIx] = 1 AND $rm[baseI + 21] = 0 THEN
$qrX1[nRec] = xS
$qrY1[nRec] = $sWH[bIx]
$qrX2[nRec] = xR
$qrY2[nRec] = $sWL[bIx]
$qrR[nRec] = cR
$qrG[nRec] = cG
$qrB[nRec] = cB
$qrA[nRec] = 13
$qrFR[nRec] = cR
$qrFG[nRec] = cG
$qrFB[nRec] = cB
$qrFA[nRec] = 13
$qrS[nRec] = 1
$qrW[nRec] = boxBorderW
nRec = nRec + 1
ENDIF
IF winLive = 1 AND $sBBox[bIx] = 1 AND $rm[baseI + 22] = 0 THEN
$qrX1[nRec] = xS
$qrY1[nRec] = hiS
$qrX2[nRec] = xR
$qrY2[nRec] = loS
$qrR[nRec] = cR
$qrG[nRec] = cG
$qrB[nRec] = cB
$qrA[nRec] = 0
$qrFR[nRec] = cR
$qrFG[nRec] = cG
$qrFB[nRec] = cB
$qrFA[nRec] = 46
$qrS[nRec] = 0
$qrW[nRec] = 1
nRec = nRec + 1
tgS = $sTag[bIx]
IF tgS < 3 THEN
stC = 0
IF tgS = 0 THEN
IF $sPart[bIx] = 1 THEN
stC = 1
ELSIF $sOver[bIx] = 1 THEN
stC = 2
ENDIF
ELSIF tgS = 1 THEN
stC = 3
ELSE
stC = 4
ENDIF
$lbK[nLb] = 6
$lbR[nLb] = rIx
$lbX[nLb] = round((xS + xR) / 2)
$lbY[nLb] = hiS
$lbP[nLb] = hiS
$lbA[nLb] = 2
$lbE[nLb] = 0
$lbCr[nLb] = cR
$lbCg[nLb] = cG
$lbCb[nLb] = cB
$lbCa[nLb] = 255
$lbN1[nLb] = stC
$lbN2[nLb] = round(pipMax)
$lbN3[nLb] = 0
$lbN4[nLb] = 0
nLb = nLb + 1
ENDIF
ENDIF
FOR jLv = 0 TO 20 DO
exL = 0
lkL = 0
n1L = 0
n2L = 0
n3L = 0
n4L = 0
lcR = cR
lcG = cG
lcB = cB
lposL = lpos
styL = 0
wdtL = lnW
pxL = 0
axL = xS
sxL = xE
IF jLv = 0 THEN
exL = 1
pxL = hiS
axL = $sHiI[bIx]
styL = 0
wdtL = lnW
IF showLevelTags = 1 THEN
lkL = 1
ENDIF
ELSIF jLv = 1 THEN
exL = 1
pxL = loS
axL = $sLoI[bIx]
styL = 0
wdtL = lnW
IF showLevelTags = 1 THEN
lkL = 2
ENDIF
ELSIF jLv = 2 THEN
exL = $sEqOn[bIx]
pxL = (hiS + loS) / 2
axL = xS
styL = 1
wdtL = eqW
lcR = eqR
lcG = eqG
lcB = eqB
IF showLevelTags = 1 THEN
lkL = 3
ENDIF
ELSIF jLv <= 12 THEN
dIx = floor((jLv - 3) / 2)
sdI = (jLv - 3) MOD 2
IF $sDevOn[bIx] = 1 AND dIx < nDm AND ((sdI = 0 AND wantUp = 1) OR (sdI = 1 AND wantDn = 1)) THEN
exL = 1
mlt = $dm[dIx]
IF sdI = 0 THEN
pxL = hiS + rgS * mlt
ELSE
pxL = loS - rgS * mlt
ENDIF
axL = xE
sxL = x2D
styL = 2
wdtL = dvW
IF $dvOff[bIx * 10 + dIx * 2 + sdI] = 0 THEN
lkL = 4
n1L = sdI
n2L = mlt
IF labelDetail = 1 THEN
IF mlt <= 2 THEN
n4L = 1 + sdI
ELSIF mlt = 3 THEN
n4L = 3
ELSIF mlt = 4 THEN
n4L = 4
ENDIF
ENDIF
ENDIF
ENDIF
ELSIF jLv <= 16 THEN
kIx = jLv - 12
IF rIx = 0 AND blkLive = 1 AND kIx <= nBlk AND (asBoxes = 0 OR kIx = nBlk) THEN
exL = 1
IF $kDir[sIx] > 0 THEN
pxL = $kTop[sIx] + blkH * kIx
lcR = 29
lcG = 78
lcB = 216
ELSE
pxL = $kBot[sIx] - blkH * kIx
lcR = 242
lcG = 54
lcB = 69
ENDIF
IF asBoxes = 1 THEN
axL = $kRI[sIx * 4 + nBlk - 1]
ELSE
axL = $kBornI[sIx]
ENDIF
sxL = x2K
styL = 0
IF $kSp[sIx * 8 + kIx - 1] = 1 THEN
styL = 1
ENDIF
wdtL = cbdrDevW
lposL = cbdrLblPos
lkL = 5
n1L = kIx
n2L = 0
IF asBoxes = 1 THEN
n2L = 2
n3L = round(pxL / ticksize) * ticksize
ENDIF
IF labelDetail = 1 THEN
n4L = ($kN[sIx] + 1) * kIx
ENDIF
ENDIF
ELSE
kIx = jLv - 16
IF rIx = 0 AND blkLive = 1 AND $kwOn[sIx] = 1 AND kIx <= nBlk THEN
exL = 1
blkHW = $kwH[sIx] * ($kwN[sIx] + 1)
IF $kwDir[sIx] > 0 THEN
pxL = $kwTop[sIx] + blkHW * kIx
lcR = 29
lcG = 78
lcB = 216
ELSE
pxL = $kwBot[sIx] - blkHW * kIx
lcR = 242
lcG = 54
lcB = 69
ENDIF
axL = $kBornI[sIx]
sxL = x2K
styL = 2
IF $kSp[sIx * 8 + 3 + kIx] = 1 THEN
styL = 1
ENDIF
wdtL = cbdrDevW
lposL = cbdrLblPos
lkL = 5
n1L = kIx
n2L = 1
IF labelDetail = 1 THEN
n4L = ($kwN[sIx] + 1) * kIx
ENDIF
ENDIF
ENDIF
IF exL = 1 AND $rm[baseI + jLv] = 0 AND (jLv > 12 OR winLive = 1) THEN
$qsX1[nSeg] = axL
$qsY1[nSeg] = pxL
$qsX2[nSeg] = sxL
$qsY2[nSeg] = pxL
$qsR[nSeg] = lcR
$qsG[nSeg] = lcG
$qsB[nSeg] = lcB
$qsA[nSeg] = 255
$qsS[nSeg] = styL
$qsW[nSeg] = wdtL
nSeg = nSeg + 1
IF lkL > 0 AND labelDetail <> 2 AND lposL <> 3 THEN
IF lposL = 0 THEN
lbXv = sxL
lbAv = 0
lbEv = 1
ELSIF lposL = 1 THEN
lbXv = axL
lbAv = 1
lbEv = 0
ELSE
lbXv = round((axL + sxL) / 2)
lbAv = 2
lbEv = 0
ENDIF
$lbK[nLb] = lkL
$lbR[nLb] = rIx
$lbX[nLb] = lbXv
$lbY[nLb] = pxL
$lbP[nLb] = pxL
$lbA[nLb] = lbAv
$lbE[nLb] = lbEv
$lbCr[nLb] = lcR
$lbCg[nLb] = lcG
$lbCb[nLb] = lcB
$lbCa[nLb] = 255
$lbN1[nLb] = n1L
$lbN2[nLb] = n2L
$lbN3[nLb] = n3L
$lbN4[nLb] = n4L
nLb = nLb + 1
ENDIF
ENDIF
NEXT
IF blkLive = 1 THEN
IF asBoxes = 1 THEN
FOR kIx = 1 TO $kN[sIx] DO
IF $kDir[sIx] < 0 THEN
sdA = $kTop[sIx] + $kH[sIx] * (kIx - 1)
sdB = $kTop[sIx] + $kH[sIx] * kIx
ELSE
sdA = $kBot[sIx] - $kH[sIx] * (kIx - 1)
sdB = $kBot[sIx] - $kH[sIx] * kIx
ENDIF
IF kIx = 1 THEN
sR = 160
sG = 160
sB = 160
sA = 140
ELSIF $kDir[sIx] < 0 THEN
sR = 242
sG = 54
sB = 69
sA = 102
ELSE
sR = 29
sG = 78
sB = 216
sA = 102
ENDIF
$qrX1[nRec] = $kSI[sIx]
$qrY1[nRec] = max(sdA, sdB)
$qrX2[nRec] = $kEI[sIx]
$qrY2[nRec] = min(sdA, sdB)
$qrR[nRec] = sR
$qrG[nRec] = sG
$qrB[nRec] = sB
$qrA[nRec] = sA
$qrFR[nRec] = sR
$qrFG[nRec] = sG
$qrFB[nRec] = sB
$qrFA[nRec] = sA
$qrS[nRec] = 0
$qrW[nRec] = 1
nRec = nRec + 1
IF $kPipOk[sIx] = 1 THEN
sdV = round($kH[sIx] / $kPipU[sIx] * 10) / 10
ELSE
sdV = round($kH[sIx] / ticksize) * ticksize
ENDIF
$lbK[nLb] = 8
$lbR[nLb] = 0
$lbX[nLb] = round(($kSI[sIx] + $kEI[sIx]) / 2)
$lbY[nLb] = (sdA + sdB) / 2
$lbP[nLb] = (sdA + sdB) / 2
$lbA[nLb] = 4
$lbE[nLb] = 0
$lbCr[nLb] = inkC
$lbCg[nLb] = inkC
$lbCb[nLb] = inkC
$lbCa[nLb] = 255
$lbN1[nLb] = kIx
$lbN2[nLb] = sdV
$lbN3[nLb] = $kPipOk[sIx]
$lbN4[nLb] = 0
nLb = nLb + 1
NEXT
FOR kIx = 1 TO nBlk DO
IF $kDir[sIx] > 0 THEN
bNear = $kTop[sIx] + blkH * (kIx - 1)
bFar = $kTop[sIx] + blkH * kIx
ELSE
bNear = $kBot[sIx] - blkH * (kIx - 1)
bFar = $kBot[sIx] - blkH * kIx
ENDIF
bLx = $kLI[sIx * 4 + kIx - 1]
bRx = $kRI[sIx * 4 + kIx - 1]
$qrX1[nRec] = bLx
$qrY1[nRec] = max(bNear, bFar)
$qrX2[nRec] = bRx
$qrY2[nRec] = min(bNear, bFar)
$qrR[nRec] = blkR
$qrG[nRec] = blkG
$qrB[nRec] = blkB
$qrA[nRec] = 255
$qrFR[nRec] = blkR
$qrFG[nRec] = blkG
$qrFB[nRec] = blkB
$qrFA[nRec] = blkA
$qrS[nRec] = 0
$qrW[nRec] = 1
nRec = nRec + 1
bMx = round((bLx + bRx) / 2)
bMy = (bNear + bFar) / 2
IF kIx = 1 THEN
bDy = blkH * 0.22
$lbK[nLb] = 9
$lbR[nLb] = 0
$lbX[nLb] = bMx
$lbY[nLb] = bMy + bDy
$lbP[nLb] = bMy + bDy
$lbA[nLb] = 4
$lbE[nLb] = 0
$lbCr[nLb] = inkC
$lbCg[nLb] = inkC
$lbCb[nLb] = inkC
$lbCa[nLb] = 140
$lbN1[nLb] = 1
$lbN2[nLb] = 0
$lbN3[nLb] = 0
$lbN4[nLb] = 0
nLb = nLb + 1
$lbK[nLb] = 10
$lbR[nLb] = 0
$lbX[nLb] = bMx
$lbY[nLb] = bMy
$lbP[nLb] = bMy
$lbA[nLb] = 4
$lbE[nLb] = 0
$lbCr[nLb] = inkC
$lbCg[nLb] = inkC
$lbCb[nLb] = inkC
$lbCa[nLb] = 140
$lbN1[nLb] = $kN[sIx]
$lbN2[nLb] = 0
$lbN3[nLb] = 0
$lbN4[nLb] = 0
nLb = nLb + 1
IF $kPipOk[sIx] = 1 THEN
b1V = round($kH[sIx] / $kPipU[sIx] * 10) / 10
b2V = round(blkH / $kPipU[sIx] * 10) / 10
ELSE
b1V = round($kH[sIx] / ticksize) * ticksize
b2V = round(blkH / ticksize) * ticksize
ENDIF
$lbK[nLb] = 11
$lbR[nLb] = 0
$lbX[nLb] = bMx
$lbY[nLb] = bMy - bDy
$lbP[nLb] = bMy - bDy
$lbA[nLb] = 4
$lbE[nLb] = 0
$lbCr[nLb] = inkC
$lbCg[nLb] = inkC
$lbCb[nLb] = inkC
$lbCa[nLb] = 140
$lbN1[nLb] = $kN[sIx] + 1
$lbN2[nLb] = b1V
$lbN3[nLb] = b2V
$lbN4[nLb] = $kPipOk[sIx]
nLb = nLb + 1
ELSE
$lbK[nLb] = 9
$lbR[nLb] = 0
$lbX[nLb] = bMx
$lbY[nLb] = bMy
$lbP[nLb] = bMy
$lbA[nLb] = 4
$lbE[nLb] = 0
$lbCr[nLb] = inkC
$lbCg[nLb] = inkC
$lbCb[nLb] = inkC
$lbCa[nLb] = 140
$lbN1[nLb] = kIx
$lbN2[nLb] = 0
$lbN3[nLb] = 0
$lbN4[nLb] = 0
nLb = nLb + 1
ENDIF
FOR uIx = 1 TO $kN[sIx] DO
IF $kDir[sIx] > 0 THEN
uPx = bNear + $kH[sIx] * uIx
ELSE
uPx = bNear - $kH[sIx] * uIx
ENDIF
$qsX1[nSeg] = bLx
$qsY1[nSeg] = uPx
$qsX2[nSeg] = bRx
$qsY2[nSeg] = uPx
$qsR[nSeg] = inkC
$qsG[nSeg] = inkC
$qsB[nSeg] = inkC
$qsA[nSeg] = 153
$qsS[nSeg] = 1
$qsW[nSeg] = 1
nSeg = nSeg + 1
NEXT
NEXT
IF $kJud[sIx] = 1 THEN
IF $kDir[sIx] < 0 THEN
stackPx = $kTop[sIx] + $kH[sIx] * $kN[sIx]
jR = 242
jG = 54
jB = 69
jAnc = 2
ELSE
stackPx = $kBot[sIx] - $kH[sIx] * $kN[sIx]
jR = 29
jG = 78
jB = 216
jAnc = 3
ENDIF
$qsX1[nSeg] = $kEI[sIx]
$qsY1[nSeg] = stackPx
$qsX2[nSeg] = $kExI[sIx]
$qsY2[nSeg] = stackPx
$qsR[nSeg] = jR
$qsG[nSeg] = jG
$qsB[nSeg] = jB
$qsA[nSeg] = 255
$qsS[nSeg] = 0
$qsW[nSeg] = 1
nSeg = nSeg + 1
IF labelDetail <> 2 THEN
IF $kPipOk[sIx] = 1 THEN
jV = round($kH[sIx] / $kPipU[sIx] * 10) / 10
ELSE
jV = round($kH[sIx] / ticksize) * ticksize
ENDIF
$lbK[nLb] = 12
$lbR[nLb] = 0
$lbX[nLb] = $kMidI[sIx]
$lbY[nLb] = stackPx
$lbP[nLb] = stackPx
$lbA[nLb] = jAnc
$lbE[nLb] = 0
$lbCr[nLb] = jR
$lbCg[nLb] = jG
$lbCb[nLb] = jB
$lbCa[nLb] = 255
$lbN1[nLb] = $kDir[sIx]
$lbN2[nLb] = $kN[sIx]
$lbN3[nLb] = jV
$lbN4[nLb] = $kPipOk[sIx]
nLb = nLb + 1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
NEXT
IF $fOn[rIx] = 1 AND $fN[rIx] > 0 THEN
IF useWick = 1 THEN
runHi = $fWH[rIx]
runLo = $fWL[rIx]
runHiI = $fWHI[rIx]
runLoI = $fWLI[rIx]
ELSE
runHi = $fBH[rIx]
runLo = $fBL[rIx]
runHiI = $fBHI[rIx]
runLoI = $fBLI[rIx]
ENDIF
IF $fET[rIx] >= $fWE[rIx] THEN
xR = $fEI[rIx] + 1
ELSIF $fWEI[rIx] >= 0 THEN
xR = $fWEI[rIx]
ELSIF nowT >= $fWE[rIx] THEN
xR = nowI
ELSE
xR = nowI + round(($fWE[rIx] - nowT) / tfSec)
ENDIF
xS = $fSI[rIx]
IF showWickRef = 1 THEN
$qrX1[nRec] = xS
$qrY1[nRec] = $fWH[rIx]
$qrX2[nRec] = xR
$qrY2[nRec] = $fWL[rIx]
$qrR[nRec] = cR
$qrG[nRec] = cG
$qrB[nRec] = cB
$qrA[nRec] = 13
$qrFR[nRec] = cR
$qrFG[nRec] = cG
$qrFB[nRec] = cB
$qrFA[nRec] = 13
$qrS[nRec] = 1
$qrW[nRec] = boxBorderW
nRec = nRec + 1
ENDIF
IF showZone = 1 THEN
$qrX1[nRec] = xS
$qrY1[nRec] = runHi
$qrX2[nRec] = xR
$qrY2[nRec] = runLo
$qrR[nRec] = cR
$qrG[nRec] = cG
$qrB[nRec] = cB
$qrA[nRec] = 0
$qrFR[nRec] = cR
$qrFG[nRec] = cG
$qrFB[nRec] = cB
$qrFA[nRec] = 46
$qrS[nRec] = 0
$qrW[nRec] = 1
nRec = nRec + 1
$lbK[nLb] = 7
$lbR[nLb] = rIx
$lbX[nLb] = round((xS + xR) / 2)
$lbY[nLb] = runHi
$lbP[nLb] = runHi
$lbA[nLb] = 2
$lbE[nLb] = 0
$lbCr[nLb] = cR
$lbCg[nLb] = cG
$lbCb[nLb] = cB
$lbCa[nLb] = 255
$lbN1[nLb] = 0
$lbN2[nLb] = 0
$lbN3[nLb] = 0
$lbN4[nLb] = 0
nLb = nLb + 1
ENDIF
$qsX1[nSeg] = runHiI
$qsY1[nSeg] = runHi
$qsX2[nSeg] = xR
$qsY2[nSeg] = runHi
$qsR[nSeg] = cR
$qsG[nSeg] = cG
$qsB[nSeg] = cB
$qsA[nSeg] = 255
$qsS[nSeg] = 0
$qsW[nSeg] = lnW
nSeg = nSeg + 1
$qsX1[nSeg] = runLoI
$qsY1[nSeg] = runLo
$qsX2[nSeg] = xR
$qsY2[nSeg] = runLo
$qsR[nSeg] = cR
$qsG[nSeg] = cG
$qsB[nSeg] = cB
$qsA[nSeg] = 255
$qsS[nSeg] = 0
$qsW[nSeg] = lnW
nSeg = nSeg + 1
ENDIF
ENDIF
NEXT
IF showLcKz = 1 AND $zCnt[0] > 0 THEN
zLast = $zCnt[0]
FOR zIx = 0 TO 9 DO
zid = $zId[zIx]
IF zid > 0 THEN
zTp = $zTop[zIx]
zBt = $zBot[zIx]
IF $zSI[zIx] >= 0 THEN
zx1 = $zSI[zIx]
ELSIF nowT >= $zST[zIx] THEN
zx1 = nowI
ELSE
zx1 = nowI + round(($zST[zIx] - nowT) / tfSec)
ENDIF
IF $zEI[zIx] >= 0 THEN
zx2 = $zEI[zIx]
ELSIF nowT >= $zET[zIx] THEN
zx2 = nowI
ELSE
zx2 = nowI + round(($zET[zIx] - nowT) / tfSec)
ENDIF
IF $zCI[zIx] >= 0 THEN
zx3 = $zCI[zIx]
ELSIF nowT >= $zCT[zIx] THEN
zx3 = nowI
ELSE
zx3 = nowI + round(($zCT[zIx] - nowT) / tfSec)
ENDIF
IF zid > zLast - nSets THEN
$qrX1[nRec] = zx1
$qrY1[nRec] = zTp
$qrX2[nRec] = zx2
$qrY2[nRec] = zBt
$qrR[nRec] = inkC
$qrG[nRec] = inkC
$qrB[nRec] = inkC
$qrA[nRec] = 20
$qrFR[nRec] = inkC
$qrFG[nRec] = inkC
$qrFB[nRec] = inkC
$qrFA[nRec] = 20
$qrS[nRec] = 0
$qrW[nRec] = 1
nRec = nRec + 1
IF $zCap[zIx] = 1 THEN
$qsX1[nSeg] = zx3
$qsY1[nSeg] = zTp
$qsX2[nSeg] = zx3
$qsY2[nSeg] = zBt
$qsR[nSeg] = inkC
$qsG[nSeg] = inkC
$qsB[nSeg] = inkC
$qsA[nSeg] = 255
$qsS[nSeg] = 1
$qsW[nSeg] = 1
nSeg = nSeg + 1
$lbK[nLb] = 14
$lbR[nLb] = 0
$lbX[nLb] = zx3
$lbY[nLb] = zTp
$lbP[nLb] = zTp
$lbA[nLb] = 4
$lbE[nLb] = 0
$lbCr[nLb] = inkC
$lbCg[nLb] = inkC
$lbCb[nLb] = inkC
$lbCa[nLb] = 255
$lbN1[nLb] = 0
$lbN2[nLb] = 0
$lbN3[nLb] = 0
$lbN4[nLb] = 0
nLb = nLb + 1
ENDIF
ENDIF
zKeep = nSets
IF $zCap[zIx] = 0 THEN
zKeep = 2 * nSets
ENDIF
IF zid > zLast - zKeep THEN
$lbK[nLb] = 13
$lbR[nLb] = 0
$lbX[nLb] = round((zx1 + zx2) / 2)
$lbY[nLb] = zTp
$lbP[nLb] = zTp
$lbA[nLb] = 2
$lbE[nLb] = 0
$lbCr[nLb] = inkC
$lbCg[nLb] = inkC
$lbCb[nLb] = inkC
$lbCa[nLb] = 255
$lbN1[nLb] = 0
$lbN2[nLb] = 0
$lbN3[nLb] = 0
$lbN4[nLb] = 0
nLb = nLb + 1
ENDIF
ENDIF
NEXT
ENDIF
ENDIF
nEd = 0
FOR iLb = 0 TO nLb - 1 DO
IF $lbE[iLb] = 1 THEN
$ord[nEd] = iLb
nEd = nEd + 1
ENDIF
NEXT
IF nEd > 1 THEN
FOR iA = 1 TO nEd - 1 DO
keyI = $ord[iA]
keyP = $lbP[keyI]
jB = iA - 1
goOn = 1
WHILE goOn = 1 DO
IF jB < 0 THEN
goOn = 0
ELSE
oj = $ord[jB]
IF $lbP[oj] > keyP THEN
$ord[jB + 1] = oj
jB = jB - 1
ELSE
goOn = 0
ENDIF
ENDIF
WEND
$ord[jB + 1] = keyI
NEXT
ENDIF
hasLast = 0
lastY = 0
FOR iA = 0 TO nEd - 1 DO
oj = $ord[iA]
yv = $lbP[oj]
IF hasLast = 1 AND lblGap > 0 AND yv - lastY < lblGap THEN
yv = lastY + lblGap
ENDIF
$lbY[oj] = yv
lastY = yv
hasLast = 1
NEXT
FOR iQ = 0 TO nRec - 1 DO
x1 = $qrX1[iQ]
y1 = $qrY1[iQ]
x2 = $qrX2[iQ]
y2 = $qrY2[iQ]
qcr = $qrR[iQ]
qcg = $qrG[iQ]
qcb = $qrB[iQ]
qca = $qrA[iQ]
qfr = $qrFR[iQ]
qfg = $qrFG[iQ]
qfb = $qrFB[iQ]
qfa = $qrFA[iQ]
qS = $qrS[iQ]
qW = $qrW[iQ]
IF qS = 0 THEN
IF qW <= 1 THEN
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) FILLCOLOR(qfr, qfg, qfb, qfa) STYLE(line, 1)
ELSIF qW = 2 THEN
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) FILLCOLOR(qfr, qfg, qfb, qfa) STYLE(line, 2)
ELSIF qW = 3 THEN
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) FILLCOLOR(qfr, qfg, qfb, qfa) STYLE(line, 3)
ELSIF qW >= 4 THEN
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) FILLCOLOR(qfr, qfg, qfb, qfa) STYLE(line, 4)
ENDIF
ELSIF qS = 1 THEN
IF qW <= 1 THEN
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) FILLCOLOR(qfr, qfg, qfb, qfa) STYLE(dottedline, 1)
ELSIF qW = 2 THEN
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) FILLCOLOR(qfr, qfg, qfb, qfa) STYLE(dottedline, 2)
ELSIF qW = 3 THEN
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) FILLCOLOR(qfr, qfg, qfb, qfa) STYLE(dottedline, 3)
ELSIF qW >= 4 THEN
DRAWRECTANGLE(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) FILLCOLOR(qfr, qfg, qfb, qfa) STYLE(dottedline, 4)
ENDIF
ENDIF
NEXT
FOR iQ = 0 TO nSeg - 1 DO
x1 = $qsX1[iQ]
y1 = $qsY1[iQ]
x2 = $qsX2[iQ]
y2 = $qsY2[iQ]
qcr = $qsR[iQ]
qcg = $qsG[iQ]
qcb = $qsB[iQ]
qca = $qsA[iQ]
qS = $qsS[iQ]
qW = $qsW[iQ]
IF qS = 0 THEN
IF qW <= 1 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(line, 1)
ELSIF qW = 2 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(line, 2)
ELSIF qW = 3 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(line, 3)
ELSIF qW >= 4 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(line, 4)
ENDIF
ELSIF qS = 1 THEN
IF qW <= 1 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(dottedline, 1)
ELSIF qW = 2 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(dottedline, 2)
ELSIF qW = 3 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(dottedline, 3)
ELSIF qW >= 4 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(dottedline, 4)
ENDIF
ELSIF qS = 2 THEN
IF qW <= 1 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(dottedline2, 1)
ELSIF qW = 2 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(dottedline2, 2)
ELSIF qW = 3 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(dottedline2, 3)
ELSIF qW >= 4 THEN
DRAWSEGMENT(x1, y1, x2, y2) COLOURED(qcr, qcg, qcb, qca) STYLE(dottedline2, 4)
ENDIF
ENDIF
NEXT
FOR iLb = 0 TO nLb - 1 DO
lk = $lbK[iLb]
lr = $lbR[iLb]
lx = $lbX[iLb]
ly = $lbY[iLb]
la = $lbA[iLb]
lcr = $lbCr[iLb]
lcg = $lbCg[iLb]
lcb = $lbCb[iLb]
lca = $lbCa[iLb]
n1 = $lbN1[iLb]
n2 = $lbN2[iLb]
n3 = $lbN3[iLb]
n4 = $lbN4[iLb]
IF la = 0 THEN
IF lk = 1 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR H", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia H", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London H", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom H", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 2 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR L", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia L", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London L", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom L", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 3 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR EQ", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia EQ", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London EQ", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom EQ", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 4 THEN
IF lr = 0 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+CBDR #n2#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+CBDR #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+CBDR #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+CBDR #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-CBDR #n2#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-CBDR #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-CBDR #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-CBDR #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 1 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+Asia #n2#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+Asia #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+Asia #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+Asia #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-Asia #n2#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-Asia #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-Asia #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-Asia #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 2 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+London #n2#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+London #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+London #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+London #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-London #n2#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-London #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-London #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-London #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 3 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+Custom #n2#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+Custom #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+Custom #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+Custom #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-Custom #n2#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-Custom #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-Custom #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-Custom #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ENDIF
ELSIF lk = 5 THEN
IF n2 = 0 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#· #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF n2 = 1 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#W · #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#W", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF n2 = 2 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#· #n3#· #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#· #n3#", lx, ly, monospaced, bold, 10) ANCHOR(left, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ENDIF
ELSIF la = 1 THEN
IF lk = 1 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR H", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia H", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London H", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom H", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 2 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR L", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia L", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London L", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom L", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 3 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR EQ", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia EQ", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London EQ", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom EQ", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 4 THEN
IF lr = 0 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+CBDR #n2#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+CBDR #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+CBDR #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+CBDR #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-CBDR #n2#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-CBDR #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-CBDR #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-CBDR #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 1 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+Asia #n2#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+Asia #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+Asia #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+Asia #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-Asia #n2#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-Asia #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-Asia #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-Asia #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 2 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+London #n2#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+London #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+London #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+London #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-London #n2#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-London #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-London #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-London #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 3 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+Custom #n2#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+Custom #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+Custom #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+Custom #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-Custom #n2#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-Custom #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-Custom #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-Custom #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ENDIF
ELSIF lk = 5 THEN
IF n2 = 0 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#· #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF n2 = 1 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#W · #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#W", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF n2 = 2 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#· #n3#· #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#· #n3#", lx, ly, monospaced, bold, 10) ANCHOR(right, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ENDIF
ELSIF la = 2 THEN
IF lk = 1 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR H", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia H", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London H", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom H", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 2 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR L", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia L", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London L", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom L", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 3 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR EQ", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia EQ", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London EQ", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom EQ", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 4 THEN
IF lr = 0 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+CBDR #n2#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+CBDR #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+CBDR #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+CBDR #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-CBDR #n2#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-CBDR #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-CBDR #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-CBDR #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 1 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+Asia #n2#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+Asia #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+Asia #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+Asia #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-Asia #n2#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-Asia #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-Asia #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-Asia #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 2 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+London #n2#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+London #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+London #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+London #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-London #n2#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-London #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-London #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-London #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lr = 3 THEN
IF n1 = 0 THEN
IF n4 = 0 THEN
DRAWTEXT("+Custom #n2#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("+Custom #n2#Ideal HOD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("+Custom #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("+Custom #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSE
IF n4 = 0 THEN
DRAWTEXT("-Custom #n2#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 2 THEN
DRAWTEXT("-Custom #n2#Ideal LOD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 3 THEN
DRAWTEXT("-Custom #n2#Typical Extreme", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 4 THEN
DRAWTEXT("-Custom #n2#News / Reversal", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ENDIF
ELSIF lk = 5 THEN
IF n2 = 0 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#· #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF n2 = 1 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#W · #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#W", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF n2 = 2 THEN
IF n4 > 0 THEN
DRAWTEXT("Block #n1#· #n3#· #n4#x", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("Block #n1#· #n3#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lk = 6 THEN
IF lr = 0 THEN
IF n1 = 0 THEN
DRAWTEXT("CBDR", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 1 THEN
DRAWTEXT("CBDR Partial", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 2 THEN
DRAWTEXT("CBDR Oversized", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 3 THEN
DRAWTEXT("CBDR · Not valid · over #n2#p", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 4 THEN
DRAWTEXT("CBDR · Not valid · 0 SD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lr = 1 THEN
IF n1 = 0 THEN
DRAWTEXT("Asia", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 1 THEN
DRAWTEXT("Asia Partial", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 2 THEN
DRAWTEXT("Asia Oversized", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 3 THEN
DRAWTEXT("Asia · Not valid · over #n2#p", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 4 THEN
DRAWTEXT("Asia · Not valid · 0 SD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lr = 2 THEN
IF n1 = 0 THEN
DRAWTEXT("London", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 1 THEN
DRAWTEXT("London Partial", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 2 THEN
DRAWTEXT("London Oversized", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 3 THEN
DRAWTEXT("London · Not valid · over #n2#p", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 4 THEN
DRAWTEXT("London · Not valid · 0 SD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lr = 3 THEN
IF n1 = 0 THEN
DRAWTEXT("Custom", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 1 THEN
DRAWTEXT("Custom Partial", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 2 THEN
DRAWTEXT("Custom Oversized", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 3 THEN
DRAWTEXT("Custom · Not valid · over #n2#p", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 = 4 THEN
DRAWTEXT("Custom · Not valid · 0 SD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF lk = 7 THEN
IF lr = 0 THEN
DRAWTEXT("CBDR", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 1 THEN
DRAWTEXT("Asia", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 2 THEN
DRAWTEXT("London", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lr = 3 THEN
DRAWTEXT("Custom", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 12 THEN
IF n1 < 0 AND n4 = 1 THEN
DRAWTEXT("London high +#n2#SD · CBDR #n3#p", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 < 0 THEN
DRAWTEXT("London high +#n2#SD · CBDR #n3#", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("CBDR #n3#p · London low -#n2#SD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("CBDR #n3#· London low -#n2#SD", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 13 THEN
DRAWTEXT("London close", lx, ly, monospaced, bold, 10) ANCHOR(bottom, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF la = 3 THEN
IF lk = 12 THEN
IF n1 < 0 AND n4 = 1 THEN
DRAWTEXT("London high +#n2#SD · CBDR #n3#p", lx, ly, monospaced, bold, 10) ANCHOR(top, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n1 < 0 THEN
DRAWTEXT("London high +#n2#SD · CBDR #n3#", lx, ly, monospaced, bold, 10) ANCHOR(top, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF n4 = 1 THEN
DRAWTEXT("CBDR #n3#p · London low -#n2#SD", lx, ly, monospaced, bold, 10) ANCHOR(top, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("CBDR #n3#· London low -#n2#SD", lx, ly, monospaced, bold, 10) ANCHOR(top, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
ELSIF la = 4 THEN
IF lk = 8 THEN
IF n3 = 1 THEN
DRAWTEXT("#n1#SD · #n2#p", lx, ly, monospaced, bold, 10) ANCHOR(middle, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("#n1#SD · #n2#", lx, ly, monospaced, bold, 10) ANCHOR(middle, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 9 THEN
DRAWTEXT("Block #n1#", lx, ly, monospaced, bold, 10) ANCHOR(middle, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lk = 10 THEN
DRAWTEXT("= CBDR + #n1#SD", lx, ly, monospaced, bold, 10) ANCHOR(middle, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSIF lk = 11 THEN
IF n4 = 1 THEN
DRAWTEXT("= #n1#x #n2#p = #n3#p", lx, ly, monospaced, bold, 10) ANCHOR(middle, index, value) COLOURED(lcr, lcg, lcb, lca)
ELSE
DRAWTEXT("= #n1#x #n2#= #n3#", lx, ly, monospaced, bold, 10) ANCHOR(middle, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ELSIF lk = 14 THEN
DRAWTEXT("14:00", lx, ly, monospaced, bold, 10) ANCHOR(middle, index, value) COLOURED(lcr, lcg, lcb, lca)
ENDIF
ENDIF
NEXT
IF showPanel = 1 THEN
IF tableSize = 0 THEN
pz = 8
ELSIF tableSize = 2 THEN
pz = 12
ELSE
pz = 10
ENDIF
rowH = pz + 8
chW = pz * 0.62
cbdrRow = 0
IF showCbdr = 1 AND $cOk[0] = 1 THEN
cbdrRow = 1
ENDIF
asiaRow = 0
IF (showAsia = 1 OR showProfile = 1) AND $pAsiaSet[0] = 1 THEN
asiaRow = 1
ENDIF
lonRow = 0
IF showLondon = 1 AND $cOk[2] = 1 THEN
lonRow = 1
ENDIF
custRow = 0
IF showCustom = 1 AND $cOk[3] = 1 THEN
custRow = 1
ENDIF
blkRow = 0
IF showCbdr = 1 AND showBlocks = 1 AND tfOk = 1 THEN
blkRow = 1
ENDIF
profRow = 0
IF showProfile = 1 AND tfOk = 1 AND $pAsiaSet[0] = 1 THEN
profRow = 1
ENDIF
asiaOk = 0
asiaHas = 0
asiaPv = 0
IF $pAsiaSet[0] = 1 AND pipOkN = 1 THEN
asiaHas = 1
asiaPv = ($pAsiaHi[0] - $pAsiaLo[0]) / pipUN
IF asiaPv >= asiaMinP AND asiaPv <= asiaMaxP THEN
asiaOk = 1
ENDIF
ENDIF
asiaV = round(asiaPv * 10) / 10
aMinV = round(asiaMinP)
aMaxV = round(asiaMaxP)
moveHas = 0
moveP = 0
IF $pMidSet[0] = 1 AND pipOkN = 1 THEN
moveHas = 1
moveP = ($pMidClose[0] - $pMidOpen[0]) / pipUN
ENDIF
moveV = round(moveP * 10) / 10
moveDir = 0
IF moveHas = 1 THEN
IF moveP >= flatPips THEN
moveDir = 1
ELSIF moveP <= 0 - flatPips THEN
moveDir = -1
ENDIF
ENDIF
brkH = floor($pBrkM[0] / 60)
brkMm = $pBrkM[0] MOD 60
shp = 0
IF $pMidSet[0] = 0 THEN
shp = 1
ELSIF moveDir = 1 AND asiaOk = 1 THEN
shp = 2
ELSIF moveDir = -1 AND asiaOk = 1 THEN
shp = 3
ELSIF moveDir = 1 THEN
shp = 4
ELSIF moveDir = -1 THEN
shp = 5
ELSIF $pMidDone[0] = 1 THEN
shp = 6
ELSE
shp = 7
ENDIF
retRow = 0
IF profRow = 1 AND $pMidDone[0] = 1 AND NOT (asiaOk = 1 AND moveDir <> 0) THEN
retRow = 1
ENDIF
rallyV = 0
dipV = 0
IF $pRetSet[0] = 1 AND pipOkN = 1 THEN
rallyV = round(($pRetHi[0] - $pRetOpen[0]) / pipUN * 10) / 10
dipV = round(($pRetOpen[0] - $pRetLo[0]) / pipUN * 10) / 10
ENDIF
maxLen = 6
IF cbdrRow = 1 OR lonRow = 1 OR custRow = 1 THEN
maxLen = max(maxLen, 14)
ENDIF
IF asiaRow = 1 THEN
maxLen = max(maxLen, 17)
ENDIF
IF blkRow = 1 THEN
maxLen = max(maxLen, 18)
ENDIF
IF profRow = 1 THEN
maxLen = max(maxLen, 40)
ENDIF
IF tfOk = 0 THEN
maxLen = max(maxLen, 23)
ENDIF
nRows = 3 + cbdrRow + asiaRow + lonRow + custRow + 3 * blkRow + 2 * profRow + retRow + (1 - tfOk)
nameW = 11 * chW + 12
valW = maxLen * chW + 14
pRight = -85
pTop = -12
cxN = pRight - valW - nameW / 2
cxV = pRight - valW / 2
DRAWRECTANGLE(pRight - valW - nameW, pTop, pRight, pTop - nRows * rowH) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
pRow = 0
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("CBDR DEV+", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
pRow = pRow + 1
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("TIMEFRAME", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF tfSec = 3600 THEN
DRAWTEXT("1H", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec < 86400 AND tfMin >= 60 AND (tfMin MOD 60) = 0 THEN
tfH = tfMin / 60
DRAWTEXT("#tfH#H", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 60 THEN
DRAWTEXT("1m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 120 THEN
DRAWTEXT("2m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 180 THEN
DRAWTEXT("3m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 300 THEN
DRAWTEXT("5m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 600 THEN
DRAWTEXT("10m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 900 THEN
DRAWTEXT("15m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 1200 THEN
DRAWTEXT("20m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 1800 THEN
DRAWTEXT("30m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec = 2700 THEN
DRAWTEXT("45m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec < 86400 THEN
tfM = round(tfMin)
DRAWTEXT("#tfM#m", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec < 604800 THEN
tfD = round(tfSec / 86400)
DRAWTEXT("#tfD#D", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF tfSec < 2419200 THEN
tfWk = round(tfSec / 604800)
DRAWTEXT("#tfWk#W", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("1M", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
pRow = pRow + 1
IF cbdrRow = 1 THEN
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("CBDR", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF pipOkN = 1 THEN
gV = round($cRng[0] / pipUN * 10) / 10
ELSE
gV = round($cRng[0] / ticksize) * ticksize
ENDIF
gCode = 0
IF $cPart[0] = 1 THEN
gCode = 1
ELSIF $cGrade[0] = 3 THEN
gCode = 2
ELSIF $cGrade[0] = 2 THEN
gCode = 3
ELSIF $cGrade[0] = 1 THEN
gCode = 4
ELSIF $cGrade[0] = 4 THEN
gCode = 5
ENDIF
IF gCode = 1 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Part", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Part", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 2 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p OK", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# OK", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 3 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Over", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Over", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 4 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Ideal", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Ideal", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 5 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Ungated", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Ungated", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 0 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
pRow = pRow + 1
ENDIF
IF asiaRow = 1 THEN
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("ASIA", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF asiaHas = 0 THEN
DRAWTEXT("-", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF asiaOk = 1 AND aMinV = 20 AND aMaxV = 30 THEN
DRAWTEXT("#asiaV#p in 20-30", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF asiaOk = 1 THEN
DRAWTEXT("#asiaV#p in #aMinV#- #aMaxV#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF asiaPv < asiaMinP AND aMinV = 20 AND aMaxV = 30 THEN
DRAWTEXT("#asiaV#p under 20-30", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF asiaPv < asiaMinP THEN
DRAWTEXT("#asiaV#p under #aMinV#- #aMaxV#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF aMinV = 20 AND aMaxV = 30 THEN
DRAWTEXT("#asiaV#p over 20-30", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#asiaV#p over #aMinV#- #aMaxV#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
pRow = pRow + 1
ENDIF
IF lonRow = 1 THEN
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("LON WINDOW", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF pipOkN = 1 THEN
gV = round($cRng[2] / pipUN * 10) / 10
ELSE
gV = round($cRng[2] / ticksize) * ticksize
ENDIF
gCode = 0
IF $cPart[2] = 1 THEN
gCode = 1
ELSIF $cGrade[2] = 3 THEN
gCode = 2
ELSIF $cGrade[2] = 2 THEN
gCode = 3
ELSIF $cGrade[2] = 1 THEN
gCode = 4
ELSIF $cGrade[2] = 4 THEN
gCode = 5
ENDIF
IF gCode = 1 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Part", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Part", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 2 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p OK", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# OK", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 3 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Over", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Over", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 4 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Ideal", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Ideal", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 5 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Ungated", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Ungated", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 0 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
pRow = pRow + 1
ENDIF
IF custRow = 1 THEN
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("CUSTOM", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF pipOkN = 1 THEN
gV = round($cRng[3] / pipUN * 10) / 10
ELSE
gV = round($cRng[3] / ticksize) * ticksize
ENDIF
gCode = 0
IF $cPart[3] = 1 THEN
gCode = 1
ELSIF $cGrade[3] = 3 THEN
gCode = 2
ELSIF $cGrade[3] = 2 THEN
gCode = 3
ELSIF $cGrade[3] = 1 THEN
gCode = 4
ELSIF $cGrade[3] = 4 THEN
gCode = 5
ENDIF
IF gCode = 1 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Part", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Part", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 2 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p OK", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# OK", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 3 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Over", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Over", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 4 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Ideal", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Ideal", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 5 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p Ungated", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV# Ungated", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF gCode = 0 THEN
IF pipOkN = 1 THEN
DRAWTEXT("#gV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("#gV#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
pRow = pRow + 1
ENDIF
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("ADR", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF adrOkN = 0 THEN
DRAWTEXT("-", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF pipOkN = 1 THEN
adrV = round(adrN / pipUN * 10) / 10
DRAWTEXT("#adrV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
adrV = round(adrN / ticksize) * ticksize
DRAWTEXT("#adrV#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
pRow = pRow + 1
IF blkRow = 1 THEN
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("DAY", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF $bDayC[0] = 1 THEN
DRAWTEXT("No CBDR", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bDayC[0] = 2 THEN
DRAWTEXT("No Judas", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bDayC[0] = 3 THEN
DRAWTEXT("Sell", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bDayC[0] = 4 THEN
DRAWTEXT("Buy", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bDayC[0] = 5 THEN
IF judasHour = 0 THEN
DRAWTEXT("at 00:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 1 THEN
DRAWTEXT("at 01:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 2 THEN
DRAWTEXT("at 02:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 3 THEN
DRAWTEXT("at 03:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 4 THEN
DRAWTEXT("at 04:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 5 THEN
DRAWTEXT("at 05:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 6 THEN
DRAWTEXT("at 06:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 7 THEN
DRAWTEXT("at 07:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 8 THEN
DRAWTEXT("at 08:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF judasHour = 9 THEN
DRAWTEXT("at 09:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSE
DRAWTEXT("-", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
pRow = pRow + 1
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("LONDON", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF $bDayC[0] = 2 THEN
DRAWTEXT("inside 1 SD", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bDayC[0] = 3 THEN
lonN = $bN[0]
DRAWTEXT("+#lonN#SD", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bDayC[0] = 4 THEN
lonN = $bN[0]
DRAWTEXT("-#lonN#SD", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bDayC[0] = 5 THEN
lonU = $bLonU[0]
lonD = $bLonD[0]
DRAWTEXT("+#lonU#/ -#lonD#SD", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("-", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
pRow = pRow + 1
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("BLOCK", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF $bBlkC[0] = 1 THEN
blkV = $bV[0]
pmV = round(pipMax)
DRAWTEXT("none, #blkV#p > #pmV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bBlkC[0] = 2 THEN
DRAWTEXT("none", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bBlkC[0] = 3 AND $bVOk[0] = 1 THEN
blkV = $bV[0]
blkM = $bN[0] + 1
DRAWTEXT("#blkM#x = #blkV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $bBlkC[0] = 3 THEN
blkV = $bV[0]
blkM = $bN[0] + 1
DRAWTEXT("#blkM#x = #blkV#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("-", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
pRow = pRow + 1
ENDIF
IF profRow = 1 THEN
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("00-02", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF moveHas = 0 THEN
DRAWTEXT("from 00:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF moveDir = 1 THEN
IF moveV >= 0 THEN
IF $pBrkDir[0] = 1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · above range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · above range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · above range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · above range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · above range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · above range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · above range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · above range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · above range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · above range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · above range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · above range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · below range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · below range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · below range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · below range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · below range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · below range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · below range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · below range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · below range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · below range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p · below range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p · below range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSE
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP +#moveV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP +#moveV#p (running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
ELSE
IF $pBrkDir[0] = 1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · above range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · above range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · above range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · above range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · above range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · above range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · above range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · above range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · above range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · above range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · above range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · above range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · below range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · below range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · below range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · below range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · below range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · below range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · below range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · below range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · below range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · below range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p · below range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p · below range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSE
IF $pMidDone[0] = 1 THEN
DRAWTEXT("UP #moveV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("UP #moveV#p (running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
ENDIF
ELSIF moveDir = -1 THEN
IF moveV >= 0 THEN
IF $pBrkDir[0] = 1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · above range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · above range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · above range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · above range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · above range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · above range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · above range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · above range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · above range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · above range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · above range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · above range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · below range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · below range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · below range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · below range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · below range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · below range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · below range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · below range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · below range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · below range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p · below range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p · below range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSE
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN +#moveV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN +#moveV#p (running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
ELSE
IF $pBrkDir[0] = 1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · above range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · above range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · above range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · above range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · above range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · above range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · above range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · above range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · above range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · above range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · above range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · above range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · below range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · below range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · below range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · below range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · below range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · below range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · below range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · below range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · below range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · below range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p · below range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p · below range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSE
IF $pMidDone[0] = 1 THEN
DRAWTEXT("DOWN #moveV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("DOWN #moveV#p (running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
ENDIF
ELSIF moveDir = 0 THEN
IF moveV >= 0 THEN
IF $pBrkDir[0] = 1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · above range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · above range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · above range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · above range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · above range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · above range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · above range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · above range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · above range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · above range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · above range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · above range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · below range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · below range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · below range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · below range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · below range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · below range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · below range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · below range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · below range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · below range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p · below range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p · below range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSE
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT +#moveV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT +#moveV#p (running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
ELSE
IF $pBrkDir[0] = 1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · above range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · above range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · above range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · above range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · above range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · above range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · above range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · above range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · above range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · above range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = 1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · above range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · above range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · below range 00:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · below range 00:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 0 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · below range 00:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · below range 00:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · below range 01:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · below range 01:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 1 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · below range 01:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · below range 01:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 AND brkMm < 10 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · below range 02:0#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · below range 02:0#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSIF $pBrkDir[0] = -1 AND brkH = 2 THEN
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p · below range 02:#brkMm#", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p · below range 02:#brkMm#(running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ELSE
IF $pMidDone[0] = 1 THEN
DRAWTEXT("FLAT #moveV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("FLAT #moveV#p (running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
ENDIF
ENDIF
ENDIF
pRow = pRow + 1
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("PROFILE", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF shp = 1 THEN
DRAWTEXT("Asia forming", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 2 AND $pMidDone[0] = 1 THEN
DRAWTEXT("Sell normal shape", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 2 THEN
DRAWTEXT("Sell normal forming", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 3 AND $pMidDone[0] = 1 THEN
DRAWTEXT("Buy normal shape", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 3 THEN
DRAWTEXT("Buy normal forming", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 4 AND $pMidDone[0] = 1 THEN
DRAWTEXT("Up, filter not met: delayed watch 02-03", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 4 THEN
DRAWTEXT("Up, normal filter not met", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 5 AND $pMidDone[0] = 1 THEN
DRAWTEXT("Down, filter not met: delayed watch 02-03", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 5 THEN
DRAWTEXT("Down, normal filter not met", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF shp = 6 THEN
DRAWTEXT("Delayed: watch 02-03 retrace", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("No direction yet", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
pRow = pRow + 1
ENDIF
IF retRow = 1 THEN
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("02-03", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
IF $pRetSet[0] = 0 OR pipOkN = 0 THEN
DRAWTEXT("from 02:00", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSIF $pRetDone[0] = 1 THEN
DRAWTEXT("rally +#rallyV#p · dip -#dipV#p", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ELSE
DRAWTEXT("rally +#rallyV#p · dip -#dipV#p (running)", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
ENDIF
pRow = pRow + 1
ENDIF
IF tfOk = 0 THEN
pyR = pTop - rowH * (pRow + 0.5)
DRAWTEXT("CHART", cxN, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
DRAWTEXT("Use 60 minutes or finer", cxV, pyR, monospaced, bold, pz) ANCHOR(TOPRIGHT, XSHIFT, YSHIFT) COLOURED(inkC, inkC, inkC, 255)
pRow = pRow + 1
ENDIF
ENDIF
ENDIF
// ===================== ALERT SERIES (optional, invisible) =====================
up2 = undefined
dn2 = undefined
up3 = undefined
dn3 = undefined
IF alertSeries = 1 AND $cOk[0] = 1 AND $cOver[0] = 0 THEN
up2 = $cHi[0] + $cRng[0] * 2
dn2 = $cLo[0] - $cRng[0] * 2
up3 = $cHi[0] + $cRng[0] * 3
dn3 = $cLo[0] - $cRng[0] * 3
ENDIF
RETURN up2 COLOURED(0, 0, 0, 0) AS "CBDR +2 SD", dn2 COLOURED(0, 0, 0, 0) AS "CBDR -2 SD", up3 COLOURED(0, 0, 0, 0) AS "CBDR +3 SD", dn3 COLOURED(0, 0, 0, 0) AS "CBDR -3 SD"
How do you manage to be so prolific? Gods talk to you, does he?