I use like foundation the LazyBear "Volume Flow Indicator" "honor a quien honor merece"
I think the as the price could be represented by candles or other graphic to use indicators and strengthen their analysis, due to lack of registration of this it is first necessary to calculate a graph, if the candle traditionally negative price brand then the total is taken as negative for the period. An example of this is in the indicator, the problem is that there is no way to analyze the using other methods. An approximate of the spread could be the use of the price spread to make a synthetic behavior
As traditionally is observed if Open> Close then the candle and the will be negative and vice versa; the next step, is estimate the amounts of the candle necessary to calculate the ratio to use for the and thus idealize their spread within the candle:
VLOW = x Low
vHigh = x High
VOpen = vClose
vClose = x Close
This graph can show a stable synthetic form of fluctuations in the trend affected by price.
ideas, comments and suggestions (or corrections).They are always welcome
// // Volume Flow Indicator Original by: [LazyBear] // Oscillator and volume candle [devicemxl] // study(title = "Propagation Volumes and Trends", shorttitle="PVT") length = input(130, title="VFI length") coef = input(0.2) vcoef = input(2.5, title="Max. vol. cutoff") signalLength=input(14) smoothVFI=input(false, type=bool) ma(x,y) => smoothVFI ? sma(x,y) : x typical=hl2 inter = log( typical ) - log( typical ) vinter = stdev(inter, 30 ) cutoff = coef * vinter * close vave = sma( volume, length ) vmax = vave * vcoef vc = iff(volume < vmax, volume, vmax) //min( volume, vmax ) mf = typical - typical vcp = iff( mf > cutoff, vc, iff ( mf < -cutoff, -vc, 0 ) ) vfi = alma(sum( vcp , length )/vave, 3, 0, 6) vfima=wma( vfi, signalLength ) plot( vfi, title="Volume Flow", color=red,linewidth=1) plot( vfima, color=black,linewidth=2) /// oscilador profundidad = input(20, title="RSI Length") //////////// volumex=volume*(close>close ? 1 : -1) V_OPEN = V_CLOSE V_CLOSE = close*volumex V_HIGH = max(max(high*volumex,V_CLOSE),V_OPEN) V_LOW = min(min(low*volumex,V_OPEN),V_CLOSE) V_HL2 = ( V_HIGH + V_LOW ) / 2 /////////// side = open > close ? -1 : 1 vols = side * rsi(V_HL2,profundidad) tendencia = sma(vols,profundidad) showHisto=input(true, type=bool) plot(showHisto ? tendencia : na, color = (tendencia>tendencia ? (tendencia >0 ? green : red) : (tendencia >0 ? olive : maroon)), style=histogram, title="Power",linewidth=3) //plot(showHisto ? tendencia : na, color = black, style=histogram, title="Tendencia", transp=85,linewidth=2)
Congratulations! You were very efficient and innovative. This project is simple and very efficient, and you are on the right track. See that the best idea on this topic is everything a trader really needs.
I liked it very much, because it is close to the best of all, see what I'm talking about: OFA (https://www.orderflowanalytics.com/)
In i make a more refined idea of the model, with that you can put an other indicator like RSI, CCI, stoch, etc.
The idea behind the model is show a graphical affectation of the volume over the price, if you see the pics ( https://www.tradingview.com/x/TEswaAfA/) you can see how some times a great drop-down in price not is in volume and the model soft the effect of this, but other occasions the price not change too much but have a high volume, and the model reflect this.
Like another data modeling algorithm him function pretend simply show a simplification of the price affected by volume and reduce the "noise".
I tested at 1w and 1D a strategy RSI in OANDA:MXNUSD, AXP, LUK, JPM, QQQ, CX, etc. The strategy is a raw RSI without stop-loss or other thing, and the results are acceptable, the percent profitable is always over 50%, the profit factor sometimes ok too, but is a raw exercise:
strategy("Volume Spread Analysis3", shorttitle="VSA3")
//Volume Spread Analysis
//Analisis de propagacion en Volumen
// devicemxl --> TradingView Site
volumex=log(volume)//*(close>close ? 1 : -1)
V_OPEN = n > 10 ? (V_CLOSE+V_OPEN)*0.5 : ((close*volumex)+(open*volumex))*0.5
V_CLOSE = n > 2 ? ( (close*volumex) + (high*volumex) + (low*volumex) + V_OPEN ) *0.25 : ( (close*volumex) + (high*volumex) + (low*volumex) ) / 3
//V_CLOSE = ( (close*volumex) + (high*volumex) + (low*volumex) + V_OPEN ) *0.25
///V_HIGH = max(max(high*volumex,V_CLOSE),V_OPEN)
//V_LOW = min(min(low*volumex,V_OPEN),V_CLOSE)
//V_HL2 = ( V_HIGH + V_LOW ) / 2
//ploter = ( senial == "CLOSE" ) ? V_CLOSE : ( senial == "OPEN" ) ? V_OPEN : ( senial == "HL2" ) ? V_HL2 : ( senial == "HIGH" ) ? V_HIGH : ( senial == "LOW" ) ? V_LOW : 0
//signal = plot(ploter, color=silver, style=circles)
//plotcandle(V_OPEN, V_HIGH, V_LOW, V_CLOSE, title='VSA', color = V_OPEN < V_CLOSE ? #f8f2ec : #53402d, wickcolor=black)
cciL = input(title="RSI Length", type=integer, defval=12, minval=3, maxval=210)
smas = input(title="signal", type=integer, defval=4, minval=3, maxval=210)
smok = input(title="smooth", type=integer, defval=6, minval=1, maxval=210)
b = true
a = 50
sourc = V_CLOSE//input(title="source",defval=close)
ccix = sma(rsi(sourc, cciL),smok)-a
cci14 = wma(ccix, smas)
plot(ccix, title="Main", color=navy, style=line, linewidth=1)
plot(cci14, title="Signal", color=red, style=line, linewidth=2)
//hline(50-a, title="Axis", color=gray, linestyle=dashed)
sc=input(10, title="Sobre-Compra" )
ei=input(20, title="Exuberancia Irracional" )
sv=input(-10, title="Sobre-Venta" )
pp=input(-20, title="Panico Psicotico" )
LG01 = ( ccix < pp )
LG02 = ( ccix > sv ) and ( ccix < sv )
SH01 = ( ccix > ei )
SH02 = ( ccix < sc ) and ( ccix > sc )
longCondition = LG01 or LG02
strategy.entry("My Long Entry Id", strategy.long, qty=1)
shortCondition = SH01 or SH02
strategy.entry("My Short Entry Id", strategy.short, qty=0)
I do not understand much of script, but by the line of reasoning I realize that this generates a good result. Congratulations!