Custom Indicator

Most trading systems offer a variety of standard, built-in indicators that allow traders to carry out technical analysis before executing trades. However, there may be situations when traders wish to modify the variables used in analysis in order to assign their own conditions for examining market trends or executing trades.

What Is A Custom Indicator?

A custom indicator is a charting tool that allows the user to modify parameters freely within charts that generate trading signals and alerts. Generally, custom indicators can be created using electronic trading platforms offered through online brokerages and dealers. They're typically created using simple algorithms with existing variables. Some systems for custom indicators require knowledge of coding, while others provide a user interface that eliminates the need for coding.

MetaTrader 4 and MetaTrader 5 are some of the commonly used platforms, also known as MT4 and MT5. The MetaTrader platforms were developed by MetaQuotes Software using the MQL4 and MQL5 programming languages.

Any number of custom indicators can be created according to the desire of the trading platform user. Possible uses for custom indicators include creating alerts when prices hit certain levels or when market movements trigger a level on a technical indicator setup. A trader, for example, may want to compare price movements with trading volume over a moving average of days to see if there is a relationship between those two factors.

Regardless of which trends they choose to examine, traders should be able to define verbally and mathematically the factors that describe the trends before creating the indicators. Custom indicators are also available from independent developers.[1]

Standard Charting Techniques

While it is possible to create a custom indicator entirely from scratch, the following is a list of standard charting techniques that are also frequently customised according to trader's particular interests.

  • Candlestick values – One common use of custom properties is to modify the values of portions of candlestick charts. With this procedure, traders can alter the properties of heads, tails and bodies of candlesticks. They can also set parameters to compare the values of candles with previous highs and lows.
  • Bollinger bands – This is a charting technique developed by John Bollinger in the 1980s. The bands are commonly used to measure price swings through standard deviation. They are formed by a simple moving average surrounded by upper and lower trendlines. When the price volatility contracts, the two bands narrow. When the market becomes more volatile, the two bands widen. With Bollinger bands, the upper and lower lines are typically set at two standard deviations, in comparison with a 20-period simple moving average. However, both the amount of standard deviation and the number of periods can be customised according to specific parameters set by traders.
  • Donchian Channels – Analyst Richard Donchian developed this technique, which helps measure volatility by comparing the highest price level with the lowest price level over a given number of periods. With this indicator, custom values can be set for time periods to be measured, and sell and buy signals can be set for market prices that appear outside of normal volatility ranges.[2]
  • Keltner Channels – Keltner channels were introduced in 1960 by analyst Chester Keltner, and they are frequently used to identify price breakouts, trend reversals and overbought and oversold conditions. Keltner channels plot a middle line based on a moving average, which is determined by user-defined time periods and upper and lower limits that hinge on a user-defined average true range.[3]

Any opinions, news, research, analyses, prices, other information, or links to third-party sites are provided as general market commentary and do not constitute investment advice. FXCM will not accept liability for any loss or damage including, without limitation, to any loss of profit which may arise directly or indirectly from use of or reliance on such information.

Russell Shor

Russell Shor

Senior Market Specialist

Russell Shor (MSTA, CFTe, MFTA) is a Senior Market Specialist at FXCM. He joined the firm in October 2017 and has an Honours Degree in Economics from the University of South Africa and holds the coveted Certified Financial Technician and Master of Financial Technical Analysis qualifications from the International Federation…

View Profile


Any opinions, news, research, analyses, prices, other information, or links to third-party sites contained on this website are provided on an "as-is" basis, as general market commentary and do not constitute investment advice. The market commentary has not been prepared in accordance with legal requirements designed to promote the independence of investment research, and it is therefore not subject to any prohibition on dealing ahead of dissemination. Although this commentary is not produced by an independent source, FXCM takes all sufficient steps to eliminate or prevent any conflicts of interests arising out of the production and dissemination of this communication. The employees of FXCM commit to acting in the clients' best interests and represent their views without misleading, deceiving, or otherwise impairing the clients' ability to make informed investment decisions. For more information about the FXCM's internal organizational and administrative arrangements for the prevention of conflicts, please refer to the Firms' Managing Conflicts Policy. Please ensure that you read and understand our Full Disclaimer and Liability provision concerning the foregoing Information, which can be accessed here.

Risk Warning: Our service includes products that are traded on margin and carry a risk of total loss of your deposited funds. The products may not be suitable for all investors. Please ensure that you fully understand the risks involved.

${} / ${getInstrumentData.ticker} /

Exchange: ${}

${} ${getInstrumentData.divCcy} ${getInstrumentData.priceChange} (${getInstrumentData.percentChange}%) ${getInstrumentData.priceChange} (${getInstrumentData.percentChange}%)