Australian (ASX) Stock Market Forum

Amibroker FAQ

Several dozen pages ago there were a few questions regarding Premium Data and AmiBroker. We have just released a new service called Norgate Data, which is intended to replace our Premium Data service, and has might tighter integration with AmiBroker.

Key features include the backtesting capabilities on current and past index constituents, ability to create dynamic watchlists with configurable filters, overhauled security classifications, fundamental data, configurable price adjustments for different types of corporate actions including cash dividends, configurable data padding and a range of new economic and commodity data.
 
Several dozen pages ago there were a few questions regarding Premium Data and AmiBroker. We have just released a new service called Norgate Data, which is intended to replace our Premium Data service, and has might tighter integration with AmiBroker.

Key features include the backtesting capabilities on current and past index constituents, ability to create dynamic watchlists with configurable filters, overhauled security classifications, fundamental data, configurable price adjustments for different types of corporate actions including cash dividends, configurable data padding and a range of new economic and commodity data.

Missed the chance to try this in Beta, so have been really keen to see this released Richard.
How do we get access?
 
Hi Newt,

Just go https://norgatedata.com and grab yourself a free trial. In AmiBroker it runs independently of our Premium Data systems (or indeed any other AmiBroker database) so can be trialled side-by-side easily.

If you decide to subscribe to Norgate Data, you can elect to convert any remaining Premium Data subscription time over on a pro-rata value basis too.
 
Hi Richard,

I have subscribed to your service for many years. I have written my own software which can quite happily read the old Computrac format along with your watchlists and this system has worked well for me for the last few years. I would like the added benefits of the full delisted stocks and i was wondering if there is going to be an API or such so that people can write their own scans, ie python, c++ etc.

regards,
 
Hi Dave,

There are some internal plans for some such features, but we haven't decided exactly what will be done and exposed to our retail users.

If you haven't done so already, contact us with your preferred development environment(s) so we can keep your contact details/environment on file should we develop such capabilities.
 
Need help to create intraday volume at price using PriceVolDistribution( H, L, V, 100, False, fvb, lvb )
How to get fvb & lvb value (barindex) if want to plot intraday.
vap1.PNG
 
I have recently taken the leap into the Amibroker world and overall I have been enjoying the very steep learning curve.

My question is that as I find snippets of code and piece it all together I am finding that I am having trouble creating a logical sequence within the code to set conditions / variables and then execute and or plot correctly.

I now have errors when compiling as variables are defined out of sequence.

example;

upload_2019-2-2_13-6-19.png

the easy fix is to move the Buy signal code before this line of code above, but then we have a knock on effect with different conditions that I have defined.

Is there something I am missing with planning the code structure, ie creating _Sections then tieing it all together with another command or routine?

Hopefully the above is relatively clear and hints you can give me are appreciated, and in the meantime I will continue googling!

Thanks

Trav

Disclosure - I have not read all 58 pages of this thread, I am only up to page 26 and then I am only understanding 10% of it :eek:
 
I now have errors when compiling as variables are defined out of sequence.
… the easy fix is to move the Buy signal code before this line of code above, but then we have a knock on effect with different conditions that I have defined.

Include this at the start of code

Buy = Sell = Short = Cover = 0;
 
Include this at the start of code

Buy = Sell = Short = Cover = 0;
Thanks @Habakkuk

But the problem I have (well one of them ;) ) is not just restricted to the Buy or Sell location, it is about structuring the code for other conditions like

COND1 = CAMup;
COND2 = Cross( EMA( C, 13), Close );
COND3 = H>Ref(box1,-1) AND H>Ref(box2,-1);
COND4 = C > 0.25;
COND5 = EMA(V*C,21) > 250000;


Where I am referencing each variable and defining it prior to using it either in a loop, plot or buy / sell.
 
Include this at the start of code

Buy = Sell = Short = Cover = 0;
Actually you got me going in the right direction again as your line of code enabled me restructure / tidy up other areas and then compilation was successful.

Awesome work Habakkuk :xyxthumbs
 
Its pretty rare you have to resort to looping through bars unless you're doing something particularly tricky. Amibroker makes working with arrays so easy and powerful its generally easy to program and much faster code to say in the "array world".

Glad you got it working in the end though.
 
Glad you got it working in the end though.
Thanks Newt

i just had to take a step back and think about the structure a bit more. When I was piecing everything together I found I lost the logical sequence and crashed. Probably an issue with information overload as well.

You can read so much online then go down several different paths before coming back to the original issue.

I am sure that I will be back for me help or just using the thread as a sounding board adds great value.

Cheers
 
Hello, Please help with this loop.
If condition 4 is satisfied, then I want the next condition to be satisfied should be 1 i.e. if condition 2 or 3 occurs after 4 then avoid them and take only 1 when it comes. I have written this loop for this but it is not plotting the desired buy signals. So in a nutshell, I only want condition 1 to take place after condition 4 and ignore 2 and 3 if they come. Please help.
Also kindly tell me how to use trace function so that I can debug my codes in the future.
Thanks

Condition1 = Close > MA(Close,10);
Condition2 = Close > MA(Close,15);
Condition3 = Close > MA(Close,20);
Condition4 = Close > MA(Close,25);
Buy = 0;

for ( i = 0 ; i < BarCount - 1 ; i++)
{ if (Condition4)
{ for ( j = i + 1 ; j < BarCount - 1 ; j ++)
{ if (Condition2[j])
{};
if (Condition3[j])
{};
if (Condition1[j])
(Buy[j]); } } }

PlotShapes( IIf( Buy, shapeUpArrow, shapeNone ), colorGreen, 0, L, Offset = -30 );
 
Hello, Please help with this loop.
If condition 4 is satisfied, then I want the next condition to be satisfied should be 1 i.e. if condition 2 or 3 occurs after 4 then avoid them and take only 1 when it comes. I have written this loop for this but it is not plotting the desired buy signals. So in a nutshell, I only want condition 1 to take place after condition 4 and ignore 2 and 3 if they come. Please help.
Also kindly tell me how to use trace function so that I can debug my codes in the future.
Thanks

Condition1 = Close > MA(Close,10);
Condition2 = Close > MA(Close,15);
Condition3 = Close > MA(Close,20);
Condition4 = Close > MA(Close,25);
Buy = 0;

Im not sure i would complicate using a loop - have you tried using different buys e.g.:


Condition1 = Close > MA(Close,10);
Condition2 = Close > MA(Close,15);
Condition3 = Close > MA(Close,20);
Condition4 = Close > MA(Close,25);
Buy1 = Condition1 OR Condition2;
Buy2 = Condition1 AND Condition2 And Condition3;

Buy = Buy1 OR Buy2;
 
well I have just spent half the day trying to figure out how to display my target price on the chart. Why....well not sure really put I got it done so pretty chuffed with myself :laugh:, next will be putting a horizontal line as well. Fun times !

upload_2019-4-21_16-41-26.png
 
I'm not a coder but would appreciate any help in being able to integrate a breakout to turn on my index filter
IndexFilterup = Index > MA(Index,MAPeriod);

BOut = Close > Ref(HHV(C,BP),-1);
 
I'm not a coder but would appreciate any help in being able to integrate a breakout to turn on my index filter
IndexFilterup = Index > MA(Index,MAPeriod);

BOut = Close > Ref(HHV(C,BP),-1);

Can I clarify?

Do you want index to reach a x-day high to turn filter and turn off if index<MA.

If this might work
Filter on = Barssince(Bout)>Barssince(indexfilterdown);
 
I'm not a coder but would appreciate any help in being able to integrate a breakout to turn on my index filter
IndexFilterup = Index > MA(Index,MAPeriod);

BOut = Close > Ref(HHV(C,BP),-1);

SetForeign("^AORD");
MAPeriod = Optimize("op",2,2,100,1);
IndexFilterup = C > MA(C,MAPeriod);
RestorePriceArrays();

Buy = IndexFilterup AND...
 
Thanx for the reply Gringotts Banks , i am actually trying to add my BOut to my IndexFilterup if possible?
The IndexFilterup becomes true with both?
 
Top