- The CCI is a market indicator used to track market movements that may indicate buying or selling
- The CCI Compares current price to average price over a specific time period
- Different strategies can use the CCI in different ways, including using it across multiple timeframes to establish dominant trends, pullbacks, or entry points into that trend
- Some trading strategies based on CCI can produce multiple false signals or losing trades when conditions turn choppy.
- What is the Commodity Channel Index (CCI)?
- Key points about the CCI
- How to add the CCI to my script?
- How to use the CCI to generate buy and sell signals?
What Is the Commodity Channel Index(CCI)?
The CCI is a momentum-based oscillator used to help determine when an asset is reaching a condition of being overbought or oversold. The CCI was originally developed to spot long-term trend changes but has been adapted by traders for use on all markets or time-frames. Trading with multiple time frames provides more buy or sell signals for active traders. Traders often use the CCI on the longer-term chart to establish the dominant trend and on the shorter-term chart to isolate pull-backs and generate trade signals.
Key points about the CCI
How to add the CCI to my script?
Below you will find a short example of using the CCI in your script.
//Inputs length = intInput("Length of the CCI", 20) //Indicator cci = cci(length) //Plot plot(cci, "cci", "#996A15", 2, PlotStyle.LINE, 0, false) band1 = plot(seriesOf(100.0), "Upper Band", "#c0c0c0", 1, PlotStyle.LINE, 0, false) band2 = plot(seriesOf(-100.0), "Lower Band", "#c0c0c0", 1, PlotStyle.LINE, 0, false) fill(band1, band2, "#9C6E1B", 80, "Background", false) //Signal Push out(NEVER_ORDER)
The above image is how the plot should look on the chart.
How to use the CCI to generate buy and sell signals?
For the example I will use the default settings, Length = 20, And use this on the daily chart
To generate signals we will use the most basic method of setting a crossover and crossunder of the zero line to generate either an long, or a short.
crossover the zero line = Long trade
crossunder the zero line = Short trade
//Inputs length = intInput("Length of the CCI", 20) //Indicator cci = cci(length) //Conditions buy = crossover(cci, seriesOf(0.0)) sell = crossunder(cci, seriesOf(0.0)) //Plot plot(cci, "cci", "#996A15", 2, PlotStyle.LINE, 0, false) band1 = plot(seriesOf(100.0), "Upper Band", "#c0c0c0", 1, PlotStyle.LINE, 0, false) band2 = plot(seriesOf(-100.0), "Lower Band", "#c0c0c0", 1, PlotStyle.LINE, 0, false) fill(band1, band2, "#9C6E1B", 80, "Background", false) //Signal Push out(signalIf(buy, sell))
Below is a screenshot of how your chart should look
So now you have learnt what CCI is, how to use it and how to put it in a script and generate signals from it.
Have fun scripting!
Price Action Series Chapter 4 – Time Frames Confluence
In today’s price action post, we will cover time frames, the importance of confluence between…
What is MACD and How to Use It in Tuned Script
What Is Moving Average Convergence Divergence (MACD)? Moving Average Convergence Divergence (MACD) is a trend-following…
Creating Better Trading Strategies — The Results
Welcome back, data science fans! Continuing from the second article, where I discussed the clustering…
The Pitfalls of Backtesting – How to Avoid Overfitting and Disappointment
Table of Contents: What is overfitting?How do I avoid overfitting? For the investors reading this…