Central Pivot Range (CPR) is one of the most popular indicators for intraday trading. Similar to traditional pivot points, it shows support/resistance levels for the day along with the pivot point. However, the pivot point in the case of CPR consists of 3 levels – Pivot, BC, and TC. In this post, we are going to look at the CPR AFL code with built-in exploration. Using this exploration code, you would not only see the CPR levels of your watchlist but also scan for the narrow range CPR symbols.
To understand CPR in-depth, its calculation, uses and interpretation please follow the below link.
CPR Exploration – Overview
This exploration code is based on the standard calculation formulas for CPR levels:
TC = (Pivot – BC) + Pivot
Pivot = (High + Low + Close)/3
BC = (High + Low)/2
Here High, Low, and Close prices are the previous day’s price levels. So, if you want to see the CPR levels for the current day, then the high, low, and close prices should correspond to the previous day (from EOD timeframe).
Below are some of the important columns from the exploration:
Pivot – The CPR pivot level
TC – CPR top central level
BC – CPR bottom central level
NarrowRange – Indicates if the CPR width is narrow or not
R1/R2/R3/R4 – Resistance Levels
S1/S2/S3/S4 – Support levels
CPR AFL Code – Download Link
You may download the exploration code from the below link. The file is in zip format, you’ll have to unzip it before use.
The code has been tested in Amibroker version 6 and above. The trial version of Amibroker can be downloaded from this link.
How to use this Exploration Code?
Step 1: Open Amibroker, Click on File–>New–>Formula and copy-paste the exploration code you downloaded.
Step 2: Click on File–>New–>Analysis. Set time frame to Daily.
Step 3: In the “Apply to” drop-down select ‘All symbols’ or filter based on the list of stocks you want to watch. In the range drop-down, select ‘1 recent day(s)’ to run exploration only for the current day. And select the AFL code in the “Formula” box.
Note – You’ll need EOD data loaded into Amibroker to use this exploration.
Also Read: CPR Spreadsheet with Narrow Range Indicator
Understanding the Exploration Code
Let’s understand the exploration code in detail.
First of all, this is purely an exploration code, so you won’t be able to superimpose it in charts.
There are 3 primary variables in the AFL code; PrevLow, PrevHigh, and PrevClose. They store the Low, High, and Close prices respectively of the previous trading day.
If your database is updated up to the previous trading day, the PrevDay variable should be 0. But if you are using a real-time DB which is updated up to the current day, the PrevDay variable should be 1.
Next, the Pivot, BC, and TC levels are calculated using the formulas mentioned before in this article.
The narrow range CPR levels are calculated by comparing the absolute difference of TC and BC values with the previous close price. If the percentage difference is less than a defined threshold (NRThreshold variable) then the narrow range condition is satisfied. The default value of the threshold is 0.2.
Then the support resistance levels are calculated using the standard formulas:
Finally, all the calculated variables are added to the exploration using AddColumn() or AddTextColumn() functions.
The values are appropriately color-coded for easy interpretation. Also, there is a filter condition “C>10” to filter out all penny stocks.
All the AFL’s posted in this section are for learning purpose. Trading Tuitions does not necessarily own these AFL’s and we don’t have any intellectual property rights on them. We might copy useful AFL’s from public forums and post it in this section in a presentable format. The intent is not to copy anybody’s work but to share knowledge. If you find any misleading or non-reproducible content then please inform us at firstname.lastname@example.org