How to read highest high value of future bars
Built in HHV and LLV functions allow to read highest high or lowest low of n-past bars. If we want to refer to future values, there is an easy way to do it using simple Ref function and just shift HHV...
View ArticleAdding custom grid levels to RSI indicator
Built-in RSI indicator offers the ability to display one of predefined grid levels to indicate oversold and overbought regions. This can be done in Axes&Grid tab of Parameters window available...
View ArticleHow to execute part of the formula only when new bar is added
In realtime conditions we may be interested in executing some parts of our formula only once per bar, when a new bar is created (e.g. for auto-trading purposes or just for notification). To do that –...
View ArticleHow to increase maximum periods of built-in indicators
Built-in indicators and averages which are shipped with AmiBroker use Param() function calls to provide the ability to adjust parameter values through Parameters window. Param function in the code...
View ArticlePositioning area plots behind the grid lines
When we want to paint the background with custom colors to indicate certain states or conditions – we can use area plots style for this purpose. The code example presented below shows green background...
View ArticleHigh-Low of certain hours of the day
When we want to calculate high / low of selected hours of the trading session (e.g. first two trading hours), we can refer to TimeNum() function to identify timestamps of the bars. Then with use of...
View ArticleDrawing indicators on a subset of visible bars
By default, the Plot function draws the graph for all visible bars. In some situations however, we may want to draw some selected bars, leaving remaining chart space unaffected. To achieve that – we...
View ArticleHow to add full name to the Price chart title
The full name of the security can be retrieved in AFL using FullName() function. In order to add such information to the built-in Price chart, we need to do the following: Click on the chart with right...
View ArticleUsing loops with TimeFrame functions
AmiBroker features a powerful set of TimeFrame functions that allow combining different time intervals in single system formula. There is one aspect of TimeFrame functions that is important to...
View ArticleHow to plot daily High and Low on intraday chart
The AFL offers a set of time-frame functions which allow to use multiple intervals within a single formula (the topic is explained in details in the following tutorial chapter:...
View ArticleIndicators based on user values rather than standard OHLC prices
Sometimes we may want to calculate indicators based not only on standard OHLC prices but on some other user-definable values. Some functions like RSI or CSI have additional versions (RSIa, CCIa...
View ArticleUsing per-symbol parameter values in charts
Parameter values in AmiBroker are stored separately for each ChartID. A ChartID is a number that uniquely identifies chart. This makes it possible that parameters having same name can hold different...
View ArticleTime compression of data retrieved from another symbol
AmiBroker’s Time-Frame functions (http://www.amibroker.com/guide/h_timeframe.html) allow to use multiple intervals within a single formula and combine them together. Another set of functions in AFL...
View ArticleHow to draw regression channel programatically
Built-in drawing tool allows to place regression channel on the chart manually and the study works on regular Close array as input. The power of AFL allows to automate this task and draw a customizable...
View ArticleStudy() function in logarithmic scale
IMPORTANT: This article applies ONLY to AmiBroker version 5.24 and earlier. Version 5.25 includes native support for log scale in Study() function and this workaround is no longer needed. Some of you...
View ArticleHow to convert from bar-value to pixel co-ordinates
Sometimes when using low-level graphics functions it is needed to convert from bar number to pixel X co-ordinate and from price level to pixel Y co-ordinate. Converting between them needs knowing...
View ArticleQuickAFL facts
QuickAFL(tm) is a feature that allows faster AFL calculation under certain conditions. Initially (since 2003) it was available for indicators only, as of version 5.14+ it is available in Automatic...
View ArticleBig symbol text in the background
Recently I heard the suggestion to add a security symbol written in big letters in the chart background. Well, actually it is pretty simple to do using low-level gfx. Just add this code sniplet...
View ArticleLow-level gfx example: Yearly/monthly profit chart
The code below is an little bit more complex example of Low Level Graphics functions (see http://www.amibroker.com/guide/a_lowlevelgfx.html) It allows to display three kinds of charts: yearly/monthly...
View ArticleHow to detect the divergences
There are many different ways to check for divergences. One of the simplest is to use Rate of change indicator and EXPLORATION feature of Automatic Analysis window: - Analysis -> Formula Editor -...
View Article