Australian (ASX) Stock Market Forum

Amibroker FAQ

I'm new to Amibroker, trying to import one year of Yahoo EOD data for the ASX. My question is more data related, but it could be something I'm doing wrong with Amibroker or Amiquote so I thought I'd ask here...

I went to the Yahoo Finance page, selected ^AORD, clicked "Components" and manually copied and pasted all of the tickers into the Amiquote Ticker List I created. However, I noticed there are only 489 tickers. I thought the ASX had about 1800 listed companies? Does Yahoo not provide data for the others or am I doing something incorrect?

Check it out at:

http://www.asx.com.au/research/companies/index.htm


Look under "Listed Companies Directory" & download the csv file.
 
Hi Gringots, I am aware of Yahoo's accuracy (or lack of). At the moment I am just getting a feel for Amibroker and learning how to use it. When I am ready to trade a system I have made myself, I will be using paid data. I will look into cooltrader.com.au too.

Wysiwyg, thanks heaps for that txt document! That's exactly what I was after!

I renamed the file to a .tls file, however it still remains as a text file, just with a .tsl on the end of it :eek: In Amiquote I click "open" and it's not there, yet when I select "all files" it appears. It still downloads the data into Amibroker, so I'm happy. Thank-you very much :)
 
Wysiwyg, thanks heaps for that txt document! That's exactly what I was after!
Appreciation is a rare quality. :)

I renamed the file to a .tls file, however it still remains as a text file, just with a .tsl on the end of it :eek: In Amiquote I click "open" and it's not there, yet when I select "all files" it appears. It still downloads the data into Amibroker, so I'm happy. Thank-you very much :)

That's easy. Open Amiquote -> File -> Open. Then from the drop down menu in the Look in: window, locate the .tls file and open it in Amiquote.

Then to save the list. File -> Save As... -> Save in: Amiquote
 

Attachments

  • untitled.jpg
    untitled.jpg
    117.4 KB · Views: 4
Gav. Just realised in that list Amiquote will not download many symbols because they are non stock. I am editing same list now. Sorry.
 
Problem with Cross(..., ...) and Exploration

Hi all!

Could someone please help me to solve a cross function problem when using it in an exploration.

Cross is getting recognized but when using periodicity 1 Minute it always output the time of the last cross not the first one but I want it to output only the times of the first appearing cross of a day period. When using hourly as periodicity the outputs are different (please look at pics below) from those of periodicity of 1 minute

Here is an example code

Code:
//---- pivot points calculation
DayH = TimeFrameGetPrice("H", inDaily, -1);// yesterdays high 
DayL = TimeFrameGetPrice("L", inDaily, -1);//low 
DayC = TimeFrameGetPrice("C", inDaily, -1);//close 
DayO = TimeFrameGetPrice("O", inDaily);// current day open 
HiDay = TimeFrameGetPrice("H", inDaily); 
LoDay = TimeFrameGetPrice("L", inDaily); 

PP = (DayL + DayH + DayC)/3 ;
R1  =  (2 * PP) - DayL;
S1  =  (2 * PP)  - DayH;
R2  =  (PP - S1) + R1;
S2  =  PP - (R1 - S1);
R3  =  R1 +(DayH-DayL);
S3  =  S1 - (DayH-DayL);
//------------------------------

starttime = Param("Start Time of Period",80000,00100,235900,00100);
endtime = Param("End Time of Period",175500,00100,235900,00100);
ppsct = ParamList("Pivot Selection","R1|R2|R3|S1|S2|S3");

tn = TimeNum();
timecond = tn >= starttime AND tn <= endtime;

myClose = ValueWhen(timecond,Close);
myR1 = ValueWhen(timecond,R1);
myR2 = ValueWhen(timecond,R2);
myR3 = ValueWhen(timecond,R3);
myS1 = ValueWhen(timecond,S1);
myS2 = ValueWhen(timecond,S2);
myS3 = ValueWhen(timecond,S3);

DT = DateTime(); 
Timer1 = TimeFrameCompress(ValueWhen(Cross(Ref(myClose,-0),myR1), DT), inDaily);
Timer1 = TimeFrameExpand(Timer1, inDaily,expandFirst );
Timer2 = TimeFrameCompress(ValueWhen(Cross(Ref(myClose,-0),myR2), DT), inDaily);
Timer2 = TimeFrameExpand(Timer2, inDaily,expandFirst );
Timer3 = TimeFrameCompress(ValueWhen(Cross(Ref(myClose,-0),myR3), DT), inDaily);
Timer3 = TimeFrameExpand(Timer3, inDaily,expandFirst );
Times1 = TimeFrameCompress(ValueWhen(Cross(myS1,Ref(myClose,-0)), DT), inDaily);
Times1 = TimeFrameExpand(Times1, inDaily,expandFirst );
Times2 = TimeFrameCompress(ValueWhen(Cross(myS2,Ref(myClose,-0)), DT), inDaily);
Times2 = TimeFrameExpand(Times2, inDaily,expandFirst );
Times3 = TimeFrameCompress(ValueWhen(Cross(myS3,Ref(myClose,-0)), DT), inDaily);
Times3 = TimeFrameExpand(Times3, inDaily,expandFirst );

SetOption("NoDefaultColumns",True);

AddTextColumn(Name(),"Pair",1.0,colorLightGrey,colorDarkGrey,52);
AddColumn(DateTime(),"Date/Time",formatDateTime,colorLightGrey,colorDarkGrey,80);
AddColumn(PP,"Pivot",1.5,colorTan,colorDarkGrey,55);
if(ppsct == "R1"){
Filter = DateTime() == timer1;
AddColumn(R1,"R1",1.5,colorLime,colorDarkGrey,55);
AddColumn(Timer1, "Time Cross(C,R1)", formatDateTime,colorLightGrey, colorDarkGrey,111);
}
else if(ppsct == "R2"){ 
Filter = DateTime() == timer2;
AddColumn(R2,"R2",1.5,colorLime,colorDarkGrey,55);
AddColumn(Timer2, "Time Cross(C,R2)", formatDateTime,colorLightGrey, colorDarkGrey,111);
}
else if(ppsct == "R3"){
Filter = DateTime() == timer3;
AddColumn(R3,"R3",1.5,colorLime,colorDarkGrey,55);
AddColumn(Timer3, "Time Cross(C,R3)", formatDateTime,colorLightGrey, colorDarkGrey,111);
}
else if(ppsct == "S1"){
Filter = DateTime() == times1;
AddColumn(S1,"S1",1.5,colorRed,colorDarkGrey,55);
AddColumn(Times1, "Time Cross(S1,C)", formatDateTime,colorLightGrey, colorDarkGrey,111);
}
else if(ppsct == "S2"){
Filter = DateTime() == times2;
AddColumn(S2,"S2",1.5,colorRed,colorDarkGrey,55);
AddColumn(Times2, "Time Cross(S2,C)", formatDateTime,colorLightGrey, colorDarkGrey,111);
}
else{
Filter = DateTime() == times3;
AddColumn(S3,"S3",1.5,colorRed,colorDarkGrey,55);
AddColumn(Times3, "Time Cross(S3,C)", formatDateTime,colorLightGrey, colorDarkGrey,111);
}

This is how the chart looks like for last Friday EURUSD

http://img600.imageshack.us/img600/5442/20101219230912.png

So this code is giving these results (pic below) for EURUSD and by choosing period 00100 to 235900 (CET) (using periodicity of 1 Minute). It's choosing the last cross and puting out the time of that cross.

http://img802.imageshack.us/img802/5277/20101219230000.png

When using periodicity Hourly in the AA settings and same parameters it is giving me these results that are different from those of periodicity of 1 minute

http://img690.imageshack.us/img690/3015/20101219230043.png

Remember that I always want to output the first cross.

Any help much appreciated, thank you!
 
Gav. Just realised in that list Amiquote will not download many symbols because they are non stock. I am editing same list now. Sorry.

Yeah I noticed that a few of the symbols wouldn't download. No need to be sorry, it's far closer to what I wanted than simply the ^AORD. As I mentioned earlier, I'm just learning how to use Amibroker, when I'm ready to trade a system I've created, I'll subscribe to a paid data service. Would appreciate a PM (or just post here) when you've edited the list. Many thanks :)
 
Cross is getting recognized but when using periodicity 1 Minute it always output the time of the last cross not the first one but I want it to output only the times of the first appearing cross of a day period.
Any help much appreciated, thank you!

Reply :-
Sorry but don't know why the last cross and not the first cross is registering on the exploration. Maybe it is something to do with n last quotations?


Waffling :-
Yes I know what you mean but if I am trading live I want to know the event when it happens. Not some time later or at the end of the trading session. I use EOD (daily) exploration for that.

Waffling :-
So I have set up the Alerts function to Sound and display whenever criteria are met. In AA I check ... All symbols // Run Every: 1min // n last quotations n = 1 // Hit exploration and AA will run exploration every 1 minute. Using 1 minute periodicity setting in AA and the Alert Output window open. Alert Output window shows ticker, time of event and what criteria were met.
I turn the volume up and do other things and when I hear the sound of a 44 magnum going off or bugs bunny meep meeping I check out the cause.

Waffling :-
For example below I set up a Hammer Alert tonight on forex and the Alert shows a Hammer at the time it happened at 5:50 pm.
 

Attachments

  • untitled.jpg
    untitled.jpg
    87.7 KB · Views: 8
gav, if you use cooltrader.com.au...

Download one days data. Put into a spreadsheet. Add suffix ".AX" to each symbol using find/replace function, delete all the other columns. Copy/paste into notepad. Use import wizard to import tickers. Go to amiquote. Click 'get tickers from AB'. Save as...
 
Would appreciate a PM (or just post here) when you've edited the list. Many thanks :)

There are still some symbols that show error but you can delete them from your "Symbols" window in Amibroker.

Remember to create a Folder in the Amibroker Folder. You can create several folders in your pertaining to specific index, sector or characteristics. Name them appropriately and they can be opened via File -> Open Database...

The corresponding symbols you put in AmiQuote so when you first open the Folder it will be a blank screen. Then go to Tools -> Auto-update quotes (Amiquote only) and the Amiquote screen will show "No tickers found in Amibroker".

So we click OK and in Amiquote go to File -> Open and in there we see our ticker list in the shape of a Q and .tls file type. Click on the corresponding .tls ticker list and those symbols will load into Amiquote to begin downloading quotes for whatever data period we set.

After downloading in Amiquote, the Folder is now loaded with the quotes.

That is the easiest way I know.
 

Attachments

  • ASX List.txt
    15.6 KB · Views: 11
Reply :-
Sorry but don't know why the last cross and not the first cross is registering on the exploration. Maybe it is something to do with n last quotations?

Thanks I solved the problem in the meantime. Reasons were Timeframecompress and Timeframeexpand. Did it without both. Now it's exploring all values of a daily period but I can live with that. Also deleted myclose and changed to myhigh for R1, R2, R3 and changed to mylow for S1,S2,S3. Periodicity problem is gone, too.

If someone has found an idea to filter to only the first occurrence of a cross please let me hear it. I will think about a solution too.
 
Hi to all you AB programmers out there,
I just came across a Dummies book for beginner programmers using C++.
Before i buy i wondered if this is the same programming language that Amibroker uses
which would be a real bonus as it starts at my level of programming knowledge,which is zip.
I tried to go via the AB help guides etc but the assumed level of programming knowledge resulted in my losing the will to live.:banghead:I am hoping said book may be my missing link to the nirvana that is PROGRAMMING!!:eek:

Here's hoping,
Sparfarkle:confused:
 
Emerging Companies Index ... Constituents = 154

• Liquidity. Stocks must meet a minimum six-month daily
trading average of A$ 200,000. Stocks are excluded if
the six-month daily average trade minimum is less than
A$ 75,000 at the rebalancing.
 

Attachments

  • Emerging Companies Index.txt
    1.2 KB · Views: 14
Hi to all you AB programmers out there,
I just came across a Dummies book for beginner programmers using C++.
Before i buy i wondered if this is the same programming language that Amibroker uses
which would be a real bonus as it starts at my level of programming knowledge,which is zip.
I tried to go via the AB help guides etc but the assumed level of programming knowledge resulted in my losing the will to live.:banghead:I am hoping said book may be my missing link to the nirvana that is PROGRAMMING!!:eek:

Here's hoping,
Sparfarkle:confused:
AB is not the same as C++. C++ I reckon is an easier and more logical language than is AB. The help guides only really give tips on how to program the beast, they aren't geared to be a comprehensive beginner’s guide to programming. Some concepts I find simple to program in AB and others I spend months on and off trying to program only to get nowhere.

I wouldn't give up the will to live. There's more to life than AB... ;)
 
Happy New Year to you all

Is it possible to make the Williams%R..... zeroed based
See code....Tks

function PercentR( periods )
{
return -100 * ( HHV( H, periods ) - C )/( HHV( H, periods ) - LLV( L, periods ) );
}

Plot( PercentR( Param("Periods", 14, 2, 100 ) ),
_DEFAULT_NAME(),
ParamColor("Color", ColorCycle ) );
 
Happy New Year to you all

Is it possible to make the Williams%R..... zeroed based
See code....Tks

function PercentR( periods )
{
return -100 * ( HHV( H, periods ) - C )/( HHV( H, periods ) - LLV( L, periods ) );
}

Plot( PercentR( Param("Periods", 14, 2, 100 ) ),
_DEFAULT_NAME(),
ParamColor("Color", ColorCycle ) );

Do you mean to simply have zero as the lowest value? If so, one way to go is to just add 100 in Plot():

Plot( PercentR( Param("Periods", 14, 2, 100 ) ) + 100, ...
 
Thanks Colion...
Thats what I want. I am trying to compare a bunch of zero-based indicators to see if they compare similiar to one another.
I dont know much about share investing or in fact charting but find amibroker quite good to play around with.
Thank you again.
 
Hi folks,

Just a quick one.

When I type the stock code into the box at the top of AB, the code changes but the chart doesn't. Same if I'm going through a list of exploration results. I'm stuck on the one chart no matter what I do.

'Sync chart on select' is checked.


Any ideas? Fairly urgent!!!
 
Hi folks,

Just a quick one.

When I type the stock code into the box at the top of AB, the code changes but the chart doesn't. Same if I'm going through a list of exploration results. I'm stuck on the one chart no matter what I do.

'Sync chart on select' is checked.


Any ideas? Fairly urgent!!!

if you are using version 5.3, make sure that the lock symbol icon isn't checked(down the bottom next to the chart sheets, it's a little padlock symbol)
 
Top