The MCDX (Market Composite Detector) is a lower-window oscillator that tries to break a single price series into the footprints of three different types of market participants: the Banker (institutional / “smart” money), the Hot Money (aggressive short-term speculation) and the Retailer (the crowd). Rather than plotting one line, it stacks three histograms so you can compare, bar by bar, which kind of money is currently driving the move.
The whole construction is built on a single, well-understood building block — the RSI — applied with different periods and rescaled to a common 0–20 range. The result is a compact “who-is-in-control” panel that pairs naturally with any price-based method.
Each of the two computed hands is a Relative Strength Index measured over its own period and then linearly rescaled:
value = sensitivity * ( RSI[period](close) - base )
The Banker uses a long RSI period (50) with a high base (50) and a strong sensitivity (1.5), so it only lights up when sustained, deep strength is present — the kind of persistent pressure associated with institutional accumulation. The Hot Money uses a shorter period (40) with a lower base (30) and a gentler sensitivity (0.7), so it reacts earlier and more often to fast, speculative pushes.
The Retailer is not a calculation at all: it is a fixed line plotted at the constant value 20. It acts as the visual ceiling of the panel — the reference height against which the Banker and Hot Money histograms are read. Three horizontal reference lines at 5, 10 and 15 complete the scale so you can judge the magnitude of each histogram at a glance.
RSIPeriodBanker: 50 – RSI period for the Banker hand. Longer = slower, only reacts to sustained strength.
RSIBaseBanker: 50 – Neutral level subtracted from the Banker RSI before rescaling.
SensivityBanker: 1.5 – Amplification factor for the Banker reading.
RSIPeriodHotMoney: 40 – RSI period for the Hot Money hand. Shorter = faster, more reactive.
RSIBaseHotMoney: 30 – Neutral level subtracted from the Hot Money RSI before rescaling.
SensivityHotMoney: 0.7 – Amplification factor for the Hot Money reading.
//-----------------------------------------------------------------//
//PRC_MCDX (rsi)
//version = 0
//09.07.2024
//Iván González @ www.prorealcode.com
//Sharing ProRealTime knowledge
//-----------------------------------------------------------------//
//-----Inputs------------------------------------------------------//
RSIBaseBanker=50 //Banker Base
RSIPeriodBanker=50 //Banker RSI Period
RSIBaseHotMoney=30 //Hot Money RSI base
RSIPeriodHotMoney=40 //Hot Money RSI Period
SensivityBanker=1.5 //Sensivity banker
SensivityHotMoney=0.7 //Sensivity Hot Money
//-----------------------------------------------------------------//
//-----RSI Banker--------------------------------------------------//
rsiBanker=SensivityBanker*(rsi[RSIPeriodBanker](close)-RSIBaseBanker)
if rsiBanker>20 then
rsiBanker=20
elsif rsiBanker<0 then
rsiBanker=0
endif
//-----------------------------------------------------------------//
//-----RSI HotMoney------------------------------------------------//
rsiHotMoney=SensivityHotMoney*(rsi[RSIPeriodHotMoney](close)-RSIBaseHotMoney)
if rsiHotMoney>20 then
rsiHotMoney=20
elsif rsiHotMoney<0 then
rsiHotMoney=0
endif
//-----------------------------------------------------------------//
//-----------------------------------------------------------------//
return 20 as "Retailer" coloured(0,94,7)style(histogram), rsiHotmoney as "Hot Money" coloured(216,194,0)style(histogram), rsiBanker as "Banker" coloured(255,0,0)style(histogram), 5 as "5" coloured("silver")style(line,2), 10 as "10" coloured("fuchsia")style(line,2),15 as "15"coloured("silver")style(line,2)