RedKTrader

Indicators: My Issues with BoP

Education
RedKTrader Updated   
NASDAQ:MSFT   Microsoft Corp.
I guess it's the same story with many traders, few years ago, when i first got introduced to the world of technical analysis and indicators, i was fascinated. trading is such an easy thing, just follow the indicator signals, right? then i started to dig deeper only to learn, each indicator shows something specific - and you need to know what is it that you need to see for your trading style, then choose the right indicator and the right values.. etc. my trading setup started changing from there endlessly.
then came the other lesson, indicators alone do not make a successful trader - nothing can predict the future, and an indicator only shows specific "signs" at a specific time - what happens next is subject to so many variables, and some of these variables are even sometimes influenced by big players who may not be all playing in the same direction .. however, indicators still help - but in that case, less is more, and a cleaner chart setup with less indicators would then be the right way to go. so take your pick, MACD, RSI, Stoc, ...etc - and throw in couple of moving averages on the top chart, and you're good to go.

that's where BoP comes into play. the Balance of Power is a very interesting indicator that has the potential to show "leading signs" - BoP has been around since the '70's and there are various stories about who is the original "father" of BoP - in all cases, the BoP formula is not a secret anymore - BoP simply divides the "body" by the "range" of a bar - so take (close - open) and divide it by the (high - low). since (high - low) is always a positive value, if it's a down bar (closes lower than the open), you will get a negative result - if it's an up bar, positive. now the Bulls get the positive value (and for that bar, the bears get a zero), and bears get the negative value (and again, the bulls get a zero) - so BoP shows who is in control of price movement (bulls vs bears), and if we know that - then we can expect, for example, a trend up to continue or dissipate, right?

i will post further analysis on this if there's interest, and dive into each of the "issues" i highlighted here - but i thought to share initially those "issues with BoP" here in this community - and why i think that the Balance of Power comes short of delivering on the premise - and it's time for an upgrade - leveraging the available computing power and scripting languages we now have available at our fingertips.

the attached chart shows 6 issues that the BoP indicator doesn't address in its classic calculation - for my own education, i decided i wanted to "see BoP" for each bar - so the "value cards" we see here are the classic BoP values for each bar - then these values are taken and smoothed using a moving average to produce the green line in the lower panel. i modified the calculation slightly to make it oscillate between +/- 100 , then smoothed with a WMA(3) .. on the value card, we can see that modified "BoPx" value for each bar. my thoughts are "if BoP is right and reliable, why would a well-known bearish chart pattern like a shooting star not have a negative value" - right?

those who are like me, curious about technical indicators and like to create their own, may find this analysis as interesting as i did. Let's here from you folks. if you have the chance to re-develop or improve "the BoP", how would you approach that to ensure that it really brings the accurate insights that it should ?

Let me know your thoughts. feel free to post here or PM.

(the code i use here is open and available, but it's really not an indicator - it's more of a research code)

----------------------------------------------------------------------------
//@version=4

study("BoP Lower #1")
// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org/MPL/2.0/
// © RedKTrader

// this is a research study - it plots the value of the Balance of Power on each bar

length = input(title="Length", type=input.integer, defval=7, minval=3, step=1)

body = close - open
range = high - low
score = body / range * 100

bulls = if score > 0
score
else
0

bears = if score < 0
-score
else
0

//create an index scaled from +100 to -100
dx = wma(bulls, length) / wma(bears,length)
dxi = 2 * (100 - 100 / (1+dx)) - 100

// -----------------------------------------------------------------------------------
//print values on top chart

//alternate labels once above and once below
//c = bar_index % 2 == 0
//T = "Bulls = " + tostring(round(bulls)) + "\nBears = " + tostring(round(bears)) + "\n----------" + "\nBoP = " + tostring(round(dxi))

//label.new (bar_index, c ? low : high , text = T, size = size.normal, textalign = text.align_left , style = c ? label.style_labelup : label.style_labeldown, color = color.white, textcolor = color.black )

// ==================================================================================================================================
// lower plot --
hline(0, color = color.yellow, linestyle = hline.style_solid)
plot (wma(score, length), title = 'Classic BoP', color = color.green)
plot(dxi, title='BoPx',style=plot.style_line , color = color.gray , linewidth=1)
plot(wma(dxi,3), title='BoP II',style=plot.style_line , color= dxi >=0 ? color.aqua : color.orange , linewidth=2)
Comment:
Forgot to mention, Issue #7, BoP doesn't also take into considerations opening gaps - and the "true" range of a bar -- when it opens with a gap up or down that doesn't close by the bar itself.
Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.