```
declare upper;
input length = 14;
input over_Bought = 70;
input over_Sold = 30;
input length_connor = 2;
input overbought_connor = 90;
input oversold_connor = 3;
input price = close;
input averageType = AverageType.WILDERS;
input overSold_MFI = 20;
input overBought_MFI = 80;
input length_MFI = 14;
input movingAvgLength_MFI = 1;
def NetChgAvg = MovingAverage(averageType, price - price[1], length);
def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;
def RSI = 50 * (ChgRatio + 1);
def NetChgAvg_connor = MovingAverage(averageType, price - price[1], length_connor);
def TotChgAvg_connor = MovingAverage(averageType, AbsValue(price - price[1]), length_connor);
def ChgRatio_connor = if TotChgAvg_connor != 0 then NetChgAvg_connor / TotChgAvg_connor else 0;
def RSI_connor = 50 * (ChgRatio_connor + 1);
def MoneyFlowIndex = Average(moneyflow(high, close, low, volume, length_MFI), movingAvgLength_MFI);
AssignPriceColor(if RSI < over_Sold and RSI_connor < oversold_connor and MoneyFlowIndex < overSold_MFI then color.CYAN else color.CURRENT);
```