The upper and downer oscillations of the RSI mid line is the extension of the RSIMH I have been working on, and due to not being able to get a clean trending reading from the RSIMH group implementation I'm now looking to split the rsi oscillation between the above 50 for macd 100,50,30 main above signal, so that when the trend flips (up) in the macd indicator the rsi will report a crossing above the rsi 50 mid line giving a clear unambiguous signal.
So macd histogram values above the 50 line (macd main above signal) will vary from 50 to 100, I have noticed that the general height of macd main above signal line do not exceed an average value, observed in many stocks. So the value is definable of the oscillations of the RSI from 50 to 100. I just need a snippet of formula code to get started, which was my request to point me in the right direction for a cut n paste scrap.
To my thinking it would require the rsi 0 to 100 index to be subdivided in two an re expressed as 0 to 50 as -0 to -100 (macd main< signal ) and 50 to 100 as +0 to +100 (macd main > signal) for the rsi of the macd histogram to work within. But my formula expression building ability is limited to cut n paste from other indicator code to experiment with. Do you think the above explanation will work as a formula?
I've been through the many meta stock sites but as yet are unable to locate above formula description.
One formula I am looking at is the Moving Average Oscillator, but need to re express it through the macd histogram output in the RSI of the macd histogram

What I need is a Qudro indexed rsi

maybe I'm over thinking this?
I mean already I'm dealing with the following MACD states plus four 6x2 additional rsi macd histogram states, why would I want to add another 4 rsi states??
MACDM1 := FMLVAR("MACD1","MACDM1");
MACDS1 := FMLVAR("MACD1","MACDS1");
MACDH1 := FMLVAR("MACD1","MACDH1");
MACDM2 := FMLVAR("MACD2","MACDM2");
MACDS2 := FMLVAR("MACD2","MACDS2");
MACDH2 := FMLVAR("MACD2","MACDH2");
MACDM3 := FMLVAR("MACD3","MACDM3");
MACDS3 := FMLVAR("MACD3","MACDS3");
MACDH3 := FMLVAR("MACD3","MACDH3");
{MACD STATES}
{MACD_1 - RISING / FALLING}
MACDM1_UP := MACDM1 > REF(MACDM1, -1);
MACDM1_DN := MACDM1 < REF(MACDM1, -1);
{MACD_2 - RISING / FALLING}
MACDM2_UP := MACDM2 > REF(MACDM2, -1);
MACDM2_DN := MACDM2 < REF(MACDM2, -1);
{MACD_3 - RISING / FALLING}
MACDM3_UP := MACDM3 > REF(MACDM3, -1);
MACDM3_DN := MACDM3 < REF(MACDM3, -1);
{MACD STAGES }
{MACD_1 ABOVE ZERO - POSITIVE & NEGATIVE}
MACDM1_A0_UP1 := MACDM1_UP and MACDM1 > 0 and MACDM1 > MACDS1;
MACDM1_A0_DN1 := MACDM1_DN and MACDM1 > 0 and MACDM1 > MACDS1;
MACDM1_A0_UP2 := MACDM1_UP and MACDM1 > 0 and MACDM1 < MACDS1 ;
MACDM1_A0_DN2 := MACDM1_DN and MACDM1 > 0 and MACDM1 < MACDS1;
{MACD_1 BELOW ZERO - POSITIVE & NEGATIVE}
MACDM1_B0_UP1 := MACDM1_UP and MACDM1 < 0 and MACDM1 > MACDS1;
MACDM1_B0_DN1 := MACDM1_DN and MACDM1 < 0 and MACDM1 > MACDS1;
MACDM1_B0_UP2 := MACDM1_UP and MACDM1 < 0 and MACDM1 < MACDS1;
MACDM1_B0_DN2 := MACDM1_DN and MACDM1 < 0 and MACDM1 < MACDS1;
{MACD_2 ABOVE ZERO - POSITIVE & NEGATIVE}
MACDM2_A0_UP1 := MACDM2_UP and MACDM2 > 0 and MACDM2 > MACDS2;
MACDM2_A0_DN1 := MACDM2_DN and MACDM2 > 0 and MACDM2 > MACDS2;
MACDM2_A0_UP2 := MACDM2_UP and MACDM2 > 0 and MACDM2 < MACDS2;
MACDM2_A0_DN2 := MACDM2_DN and MACDM2 > 0 and MACDM2 < MACDS2;
{MACD_2 BELOW ZERO - POSITIVE & NEGATIVE}
MACDM2_B0_UP1 := MACDM2_UP and MACDM2 < 0 and MACDM2 > MACDS2;
MACDM2_B0_DN1 := MACDM2_DN and MACDM2 < 0 and MACDM2 > MACDS2;
MACDM2_B0_UP2 := MACDM2_UP and MACDM2 < 0 and MACDM2 < MACDS2;
MACDM2_B0_DN2 := MACDM2_DN and MACDM2 < 0 and MACDM2 < MACDS2;
{MACD_3 ABOVE ZERO - POSITIVE & NEGATIVE}
MACDM3_A0_UP1 := MACDM3_UP and MACDM3 > 0 and MACDM3 > MACDS3;
MACDM3_A0_DN1 := MACDM3_DN and MACDM3 > 0 and MACDM3 > MACDS3;
MACDM3_A0_UP2 := MACDM3_UP and MACDM3 > 0 and MACDM3 < MACDS3;
MACDM3_A0_DN3 := MACDM3_DN and MACDM3 > 0 and MACDM3 < MACDS3;
{MACD_3 BELOW ZERO - POSITIVE & NEGATIVE}
MACDM3_B0_UP1 := MACDM3_UP and MACDM3 < 0 and MACDM3 > MACDS3;
MACDM3_B0_DN1 := MACDM3_DN and MACDM3 < 0 and MACDM3 > MACDS3;
MACDM3_B0_UP2 := MACDM3_UP and MACDM3 < 0 and MACDM3 < MACDS3;
MACDM3_B0_DN2 := MACDM3_DN and MACDM3 < 0 and MACDM3 < MACDS3;
In fact, I will not be going down "the comprehensive system rabbit hole", but simply using a MA60:90 or MACD 120,260,90 above signal and above zero line, and not bother with any other variations of the states. KISS is the example you have set with SWS SPA3 Trader, although maybe a bit too generalised i.e. far too may moderate to even trades making it a full time job watching to see if they look like turning into limp biscuits, but what does make the SPA3 system work is the 'trade with the pack' approach that seems to help after day or two. Maybe I'm reflecting on a very difficult period to trade when so many sectors are high risk? and nothing seems to be moving.
I might add; it's all very good selling a long term approach to investments like 20 year future equity curve time frame approach to a portfolio, but if you are looking at retirement down the barrel (and who isn't) with smallish superannuation then you really need to optimise whatever tools you have bought into. And that's the real kicker here; optimisation of the trade within system parameters to keep it safe, being able to get enough from the trade to have fortnightly expenses income, as well as optimised trades for growth, because it's what I'll be living off until pension age; the scalping of profits for income while letting the better trades run for growth. Now if I had 400K plus at this time then I could do both; have solid income and bank 1 to 2 baggers for redeployment. Not everyone is in this position, I think most people? This is why I persist with optimisations.