The Pollan indicator is an advanced technical tool designed to provide buy and sell signals based on the combination of two popular technical analysis indicators: the Commodity Channel Index (CCI) and the Relative Strength Index (RSI).
The main goal of the Pollan indicator is to identify key moments when the market shows overbought or oversold conditions and combine these signals with an adjusted moving average to improve the accuracy of market entries and exits.
Throughout this article, we will explore in detail how the Pollan indicator works, how to configure it, and how to interpret its signals to enhance your trading strategies.
The Pollan indicator combines the calculations of the Commodity Channel Index (CCI) and the Relative Strength Index (RSI) to generate more accurate trading signals. Below is a detailed description of how the key components of the indicator are calculated.
The core of the Pollan indicator is based on calculating the differences between the CCI and RSI at several historical points, adjusted according to the coefficient (koef). These differences are calculated as follows:
The coefficient (koef) is a key parameter that determines how many historical periods will be considered in the calculations. This coefficient can take values from 0 to 8, and according to its value, the sums of the calculated differences are adjusted.
Example of difference calculation:
The Pollan indicator can be configured with several parameters to adapt it to different market conditions and trader preferences. Below are the configurable parameters and their impact on the indicator’s behavior.
The Pollan indicator uses a combination of calculations based on the CCI and RSI to generate buy and sell signals. Below is a step-by-step description of the calculation process and the logic for generating signals.
Calculation example:
a = cci[CCIper](typicalprice)[i] - rsi[RSIper](typicalprice)[i]
a1 = cci[CCIper](typicalprice)[i-1] - rsi[RSIper](typicalprice)[i+1]
Calculation example:
b = rsi[RSIper](typicalprice)[i] - cci[CCIper](typicalprice)[i]
b1 = rsi[RSIper](typicalprice)[i-1] - cci[CCIper](typicalprice)[i+1]
Example of coefficient application:
if koef >= 8 then
tt1max = a + a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8
tt2min = b + b1 + b2 + b3 + b4 + b5 + b6 + b7 + b8
elsif koef = 7 then
tt1max = a + a1 + a2 + a3 + a4 + a5 + a6 + a7
tt2min = b + b1 + b2 + b3 + b4 + b5 + b6 + b7
elsif koef = 6 then
tt1max = a + a1 + a2 + a3 + a4 + a5 + a6
tt2min = b + b1 + b2 + b3 + b4 + b5 + b6
elsif koef = 5 then
tt1max = a + a1 + a2 + a3 + a4 + a5
tt2min = b + b1 + b2 + b3 + b4 + b5
elsif koef = 4 then
tt1max = a + a1 + a2 + a3 + a4
tt2min = b + b1 + b2 + b3 + b4
elsif koef = 3 then
tt1max = a + a1 + a2 + a3
tt2min = b + b1 + b2 + b3
elsif koef = 2 then
tt1max = a + a1 + a2
tt2min = b + b1 + b2
elsif koef = 1 then
tt1max = a + a1
tt2min = b + b1
elsif koef = 0 then
tt1max = a
tt2min = b
endif
Example:
Diff1 = average[MaPeriod](tt1max)
Diff2 = average[MaPeriod](tt2min)
Example:
if Diff1 >= Diff2 and Diff1[1] < Diff2[1] then
drawarrowup(barindex, Diff1) coloured("green")
elsif Diff1 <= Diff2 and Diff1[1] > Diff2[1] then
drawarrowdown(barindex, Diff1) coloured("red")
endif
The Pollan indicator provides visual signals on the chart using arrows that indicate possible buy and sell moments. Below is an explanation of how to interpret these signals and how to use them to enhance your trading strategies.
In the chart, green arrows indicate suggested entry points for long positions, while red arrows indicate suggested entry points for short positions. The colored lines show the moving averages of the calculated differences (Diff1 in green and Diff2 in red).
The Pollan indicator is a powerful tool that combines two popular technical indicators, the CCI and RSI, to generate more accurate trading signals. By adjusting the indicator parameters and using it in combination with other technical analysis tools, traders can improve their market entry and exit strategies.
//---------------------------------------------------------------//
//PRC_Pollan Indicator
//version = 0
//06.05.24
//Iván González @ www.prorealcode.com
//Sharing ProRealTime knowledge
//---------------------------------------------------------------//
//-----Inputs----------------------------------------------------//
CCIper = 14
RSIper = 14
MaPeriod = 2
koef = 8
showarrows = 1
//---------------------------------------------------------------//
//-----Components Calculation------------------------------------//
i=8
//---Diff. CCI-RSI
a=cci[CCIper](typicalprice)[i]-rsi[rsiper](typicalprice)[i]
a1=cci[CCIper](typicalprice)[i-1]-rsi[rsiper](typicalprice)[i+1]
a2=cci[CCIper](typicalprice)[i-2]-rsi[rsiper](typicalprice)[i+2]
a3=cci[CCIper](typicalprice)[i-3]-rsi[rsiper](typicalprice)[i+3]
a4=cci[CCIper](typicalprice)[i-4]-rsi[rsiper](typicalprice)[i+4]
a5=cci[CCIper](typicalprice)[i-5]-rsi[rsiper](typicalprice)[i+5]
a6=cci[CCIper](typicalprice)[i-6]-rsi[rsiper](typicalprice)[i+6]
a7=cci[CCIper](typicalprice)[i-7]-rsi[rsiper](typicalprice)[i+7]
a8=cci[CCIper](typicalprice)[i-8]-rsi[rsiper](typicalprice)[i+8]
//---Diff. RSI-CCI
b=rsi[rsiper](typicalprice)[i]-cci[CCIper](typicalprice)[i]
b1=rsi[rsiper](typicalprice)[i-1]-cci[CCIper](typicalprice)[i+1]
b2=rsi[rsiper](typicalprice)[i-2]-cci[CCIper](typicalprice)[i+2]
b3=rsi[rsiper](typicalprice)[i-3]-cci[CCIper](typicalprice)[i+3]
b4=rsi[rsiper](typicalprice)[i-4]-cci[CCIper](typicalprice)[i+4]
b5=rsi[rsiper](typicalprice)[i-5]-cci[CCIper](typicalprice)[i+5]
b6=rsi[rsiper](typicalprice)[i-6]-cci[CCIper](typicalprice)[i+6]
b7=rsi[rsiper](typicalprice)[i-7]-cci[CCIper](typicalprice)[i+7]
b8=rsi[rsiper](typicalprice)[i-8]-cci[CCIper](typicalprice)[i+8]
//---------------------------------------------------------------//
//-----Switch Koef-----------------------------------------------//
if koef >=8 then
tt1max = a+a1+a2+a3+a4+a5+a6+a7+a8
tt2min = b+b1+b2+b3+b4+b5+b6+b7+b8
elsif koef = 7 then
tt1max = a+a1+a2+a3+a4+a5+a6+a7
tt2min = b+b1+b2+b3+b4+b5+b6+b7
elsif koef = 6 then
tt1max = a+a1+a2+a3+a4+a5+a6
tt2min = b+b1+b2+b3+b4+b5+b6
elsif koef = 5 then
tt1max = a+a1+a2+a3+a4+a5
tt2min = b+b1+b2+b3+b4+b5
elsif koef = 4 then
tt1max = a+a1+a2+a3+a4
tt2min = b+b1+b2+b3+b4
elsif koef = 3 then
tt1max = a+a1+a2+a3
tt2min = b+b1+b2+b3
elsif koef = 2 then
tt1max = a+a1+a2
tt2min = b+b1+b2
elsif koef = 1 then
tt1max = a+a1
tt2min = b+b1
elsif koef = 0 then
tt1max = a
tt2min = b
endif
//---------------------------------------------------------------//
//---------------------------------------------------------------//
Diff1 = average[maperiod](tt1max)
Diff2 = average[maperiod](tt2min)
//---------------------------------------------------------------//
//---------------------------------------------------------------//
if showarrows then
if Diff1 >= Diff2 and Diff1[1] < Diff2[1] then
drawarrowup(barindex,Diff1)coloured("green")
elsif Diff1 <= Diff2 and Diff1[1] > Diff2[1] then
drawarrowdown(barindex,Diff1)coloured("red")
endif
endif
//---------------------------------------------------------------//
return Diff1 coloured("green")style(line,2), Diff2 coloured("red")style(line,2)