New User experience with AmiBroker


I started using AB from a couple of days and i really liked it;
Despite my impression with many unique features of AB , some little problems raised to spoil my overall experience making me struggle to use AB , i will write in a few point for some issues which hinder my use of AB and i hope to find solutions for it

First Issue ...

When i want to Zoom in/out the chart , i have to click multiple times on Zoom in/out button then using horizontal scroll bar and again click multiples times on Zoom in/out , repeating this process many times until Zooming in/out the desired area .. It's inconvenient and time consuming method .. note i know about view --> Zoom --> range It's futile option too

Is there a short and direct way to select and Zoom a specific desired part of chart such as Zoom Box in metastock ?

Second Issue ...

I can't manually stretch in/out the chart to a specific degree that i want the chart to be on it , positioning mouse cursor over Y-axis then press and hold with pulling Y-axes up or down will ONLY move the entire chart , Using view --> Zoom --> range will not adjust chart to the degree which i want

Third Issue ...

For Y-axis , i chooses automatic scale , however it seem that it doesn't work , here's an image for my indicator which hanging on the upper side of pane and i don't know why !!! .. i tried to double click on Y-axis but nothing changed
what should i do to fix this ?


Fourth Issue ...

I build a new indicator , when i plot it on the chart i got the reading of values on the upper part of indicator pane , however i am not able to get more reading cause the first reading is assigned ONLY for first waves .. also wrapping title is not a good solution it will simply hide the main indicator behind it

I tried to use data window , i found many rows as much as the number of waves in my indicator ; when positioning mouse over it then scroll mouse's wheel up or dowm the list remain constant it does not moves neither up nor down .. i need to select one row then use arrows in keyboard to move inside the list

So How can i make reading come through ONLY one row instead of those too many rows ? or
How can i move inside the list using mouse's wheel ?

Fifth Issue ...

A small list with price and date appear wherever i move on chart .. i don't want this list
How can i hide it?


Sixth Issue ...
when i put a vertical line it does not come across the entire chart ( price & indicator pane ) it just exist on the part on which i put it either price pane or indicator pane

So how to make the vertical line come across the entire chart ?


Seventh Issue ...

How can i make bar chart as a default chart style for all new chart ? i tried to save bar chart as a default template but that did not work

AB is really an amazing programme , however these issues annoying me so much so any help to fix these problems is appreciated . thanks


I don't know of built-in solution to that way of custom zooming you require. Ask Tomasz.

Just go to the price axis and click SHIFT-key on your keyboard and hold it and hold your left mouse button down and move your mouse up and down on price axis.

Add styleNoRescale to the plot's style i.e.

Plot( Close, "Close", colorRed ); // sets the scale

Plot( Yourindicator, "Your indicator", colorGold, styleLine | styleNoRescale ); 

I do not have solution to that one in data window. Ask Tomasz.

Add chartDisableTooltips to your SetChartOptions

SetChartOptions( 0, chartShowArrows | chartShowDates | chartDisableTooltips );

It does plot quote marker over all chart panes.

But in your case....

Open parameters window of lower chart pane and set quote marker to "Show"


And in addition check whether there is chartHideQuoteMarker part of your Setchartoptions line of lower pane's AFL. For example if there is:

SetChartOptions( 0, chartShowArrows | chartShowDates | chartHideQuoteMarker);

then remove "| chartHideQuoteMarker" in such case then click Apply button in formula editor.

If your price plots have GetChartPriceStyle() defined as style i.e.

Plot( C, "Close", ParamColor( "Color", colorDefault ), GetPriceStyle() );

then go to View - Price chart style and set to "Bar".

or instead just add styleBar to all price plots you have, i.e.

Plot( C, "Close", ParamColor( "Color", colorDefault ), styleBar );


You can try another way of zooming (which I find really useful). To zoom in / zoom out using mouse wheel, just click on the chart area that you want to analyse, press and hold down CTRL key and roll the wheel.

... but Zoom to range is the most precise way of zooming in. You can easily assign a keyboard shortcut, which suits you, for easy access.


Another way to initially zoom is set the RANGE MARKERS at the desired location for zooming / viewing and then select View / zoom / range, it is pretty quick and efficient then when done just select view / zoom / normal.


He is aware of those zoom to range options but apparently it is NOT what he wants (Quote: "futile"). See bold quoted bold text below.

He seems to be looking for some kind of marking a range via mouse movements (i.e. upper left to lower right) and then AB automatically zooming in after mouse is released. That's what I read in between his lines. But I did not read anything about "exact".


I do not know of MS zoom box.
But is it something like this?


A New BACKTEST Question

After a backtest report completes the date column is in ascending order and I would rather the backtest report default to date descending order.

I can sort the date column to descending order after the backtest is completed but I was seeking advice how to default the date column to Descending order.


I am so grateful for your patience to read all of my long thread and your effort to answer my questions .. Thank you very much Fxshrat :slight_smile:

This is an illustration for what i meant by "Zoom Box" , it's very popular feature in many trading station/software


That have worked fine with me .. thanks :slight_smile:

I tried to do that but the indicator disappear completely , to show it again i forced to modify scale from automatic to custom with identifying min & max for Y-axis
also when i change to custom for Y-axis either in price pane or indicator pane

i am no more able to adjust & fit chart scale by clicking twice on Y-axis

i am no more able to move chart by pressing & hold left mouse button on Y-axis

i am no more able to stretch chart by pressing & hold on Shift + left mouse button

The Price/Indicator become frozen and it doesn't respond at all to any of these previous orders

That have worked fine .. :slight_smile:

Actually Quote marker exist and is showed for all panes and the option for quote marker is still "Show" , in addition to that i did not use [setchartoption] function before , so no need for such modification

And to be more clear i was talking about horizontal line not quote marker

That also have worked fine too ..Thanks :slight_smile:


I did that before posting this thread , however AB don't enable me to select the part of chart that i want to zoom in .. instead it zoom the far right side of chart


@Sasha_99 It is possible that you have something incorrectly coded in your indicator and without seeing the code it is hard to correct.

Also in another thread you mentioned that you are using v5.6? Some of the guidance you will receive on this forum assumes you are using version 6.0 and above.

Also you say you are a new user. How is it that you are using a 6 year old version of Amibroker if you are a new user?


It's not true:


But if you are really using Amibroker 5.6 - which is an ancient version (by the way such ancient versions are not supported on this forum) it might not work this way.

I'm still of the opinion, that zoom to range is exactly what you need. If you assign a shortcut to it, then all you need to do, to zoom to the exact part of the chart you need, is a double click to mark the beginning of the range, another double click to mark the end of the range and pressing appropriate keyboard shortcut. That's all. 100% precision guaranteed.

I really don't know why you call Zoom to range a futile option ... It works for me (and many other users) very well ...



i made such a "zoom tool" last year for an Amibroker user. However, it uses OLE functions and it is not supposed to be used for this. But it is possible (see second link that Milosz gave)

i made something that looks like this:


It's nor really about the code but anyway here it's

_SECTION_BEGIN("Neowave_5 March 1 1 1 1");
//Function Section ...////////////////////////////////////////////////////////////////////////////////////////


for ( I=M ; i<=(LastValue(Cum(ValueWhen(Year()>=Y,(Ref(Day(),0)<Ref(Day(),-1) AND Ref(Day(),0)<Ref(Day(),1)),1)))-1) ; I++)

A=Year()==IIf(I>12,int((I-1)/12)+Y,Y)  AND Month()==IIf(I>12,IIf(I%12==0,12,I%12),I);
T1=Cum(IIf(Cum(A AND H==P1)>=1,1,IIf(Cum(A AND H==P1)<1,0,1)));
T2=Cum(IIf(Cum(A AND L==P2)>=1,1,IIf(Cum(A AND L==P2)<1,0,1)));

Z=LastValue(Cum(1)-Cum(Year()==Y AND Month()==M)-BarsSince(Year()==Y AND Month()==M));



Plot( MWT, "Neowave", colorGold); 


A=Year()==IIf((I+1)>12,int((I)/12)+Y,Y) AND Month()==N;
T1=Cum(IIf(Cum(A AND H==P1)>=1,1,IIf(Cum(A AND H==P1)<1,0,1)));
T2=Cum(IIf(Cum(A AND L==P2)>=1,1,IIf(Cum(A AND L==P2)<1,0,1)));



Plot( MWT, "Neowave", colorGold); 


Take a look and tell me if something is with it

That's right , i use now the (6.2 v) _ Trial Version before going on and purchasing license to test and discover the advantage and disadvantage of AB

6 year version of AB belong to one of my friend it's not mine :slight_smile:


It is about the code.

Read my first post again where I posted example.
You have to set some scale before plot that may return empty.

So add this line before the loop.

Plot( C, "", colorDefault, styleNoDraw );

That should basically fix it. (You might have to add styleNoRescale to the two plot lines within the loop if it still compresses plot).

BTW, the rest of your code is really bad programming (it's nothing personal just saying). Lots of work to make it better and I am not eager to fix it.


@Sasha_99 maybe you should combine your line arrays in a single line.

See this KB example (scroll down to the improved version)


There is no such thing as 6.20 trial version. 6.20 is ONLY for registered users available ONLY from members zone. You are not registered so how come you got 6.20? If it is from your "friend" then it is illegal.

People need to realize then if they don't buy legal software it won't be developed.


I assure you that using ctrl+mouse wheel just zoom in the far right side of chart with no chance to determine which part that i want to zoom in , may you are using latest version for that reason we got dissimilar results

Also may be i exaggerated when i said "futile option" for zoom range , but on the same time i still believes it's not a good option at least if you comparing it with "zoom box"

Any way i understand that all of these differences consider as personal preferences and it's not a core element of trading software


Thanks empottasch for sharing your idea , it's not exactly the same as zoom box but it still good tool
AS a novice in programming world , I ask you to tell me what's the proramme you have used to write OLE function and how you embedded this tool with Amibroker


That code fix the problem , however when i put trend lines / fibo expansion or retracement it snap to hidden price not the indicator it self !

For programming code , i understand your opinion cause i am not a professional expert in programming ,

This indicator is my first attempt for coding indicator and almost the entire code had written by me with nobody's help

So it may look bad to you or so primitive way to write such code cause its written by a beginner who just stepped into programming world recently and barely know the basic concept

I ask you kindly ( if possible ) to guide and tell me in a few words about what i have to do in writing codes and what should i avoid in the future
and i will search for details and any practical information relating to your advice like the helpful post of beppe :slight_smile:


Thank you very much beppe for the informative link , i was searching for a valid method to linking the indicator in one line and your link is exactly what i needed :slight_smile: