germanburrito
Active member

Twiggs Money Flow is often considered superior to other money flow indicators because it incorporates "True Range" in its calculation, which allows it to better identify buying and selling pressure, especially when significant price gaps occur, unlike other indicators like Chaikin Money Flow that might be distorted by such gaps; additionally, Twiggs Money Flow utilizes exponential smoothing for a smoother signal, providing a more reliable indication of potential trend changes.
Key points about Twiggs Money Flow's advantages:
True Range Consideration:
Unlike other money flow indicators that might only use the standard range (high minus low), Twiggs Money Flow uses True Range, which takes price gaps into account, providing a more accurate picture of market volatility and potential buying/selling pressure, especially when large price gaps happen.
Wilders Smoothing:
This Twiggs Money Flow employs Wilders smoothing, which is considered a more responsive and accurate method of smoothing price data compared to simple moving averages, leading to clearer signals and less noise.
Identifying Accumulation and Distribution:
By analyzing the values above and below zero, traders can effectively identify periods of strong accumulation (positive values) and distribution (negative values)
Code:
declare lower;
input periods = 21;
input over_Bought = .20;
input over_Sold = -.20;
def C = close;
def H = high;
def L = low;
def V = volume;
def TRH = Max(H,C[1]);
def TRL = Min(L, C[1]);
def TR = TRH - TRL;
def ADV =((C-TRL)-(TRH-C))/ (If TR == 0 then 999999 else TR) * V;
plot NewCMF = if WildersAverage(V,periods) == 0
then 0
else WildersAverage(ADV, periods) / WildersAverage(V, periods);
plot ZeroLine = 0;
ZeroLine.SetDefaultColor(GetColor(5));
plot OverSold = over_Sold;
plot OverBought = over_Bought;
NewCMF.DefineColor("OverBought", GetColor(5));
NewCMF.DefineColor("Normal", GetColor(7));
NewCMF.DefineColor("OverSold", GetColor(1));
NewCMF.AssignValueColor(if NewCMF > over_Bought then NewCMF.color("OverBought") else if NewCMF < over_Sold then NewCMF.color("OverSold") else NewCMF.color("Normal"));
Last edited by a moderator: