[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] amiquote lack of control



PureBytes Links

Trading Reference Links

Is there a way to go around this problem?

The main reason why I want to automate Amiquite is that I am often at work in the evening...  But that's also when I run my optimizations...

Louis

2008/5/22 dingo <dingo@xxxxxxxxxxx>:

You can't run anything else in AB while doing imports - think about it.
 
d


From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Louis Préfontaine
Sent: Thursday, May 22, 2008 12:58 PM
To: amibroker@xxxxxxxxxxxxxxx

Subject: Re: [amibroker] amiquote lack of control

Here is the bug:

AmiBroker version 5.09.0.4880
 ( cooltool.dll 5.9.0,  mfc42.dll 6.2.4131,  msvcrt.dll 7.0.2600 )

Microsoft Windows XP version 5.1 (Build 2600)
Service Pack 2.0
Common Controls: 6.0

Unhandled exception
Type:    CSysException
Code:    c0000005
Description:    ACCESS VIOLATION
Address:    00424A4C



AFL Parser status:
Processing stage: NONE
Formula ID: 0 ()
Action 5 (BACKTEST)

Additional information:

Empty stock database.

Workspace:
Data source = (local), Data local mode = 1, NumBars = 1000

Preferences:
Data source = (local), Data local mode = 1, NumBars = 1000

Command history:
2938 - Shows database settings--Database settings
2863 - Organize assignments to markets, groups, industries--Organize assignments
2863 - Organize assignments to markets, groups, industries--Organize assignments
2823 - Displays categories: groups, markets, sectors, industries--Categories
2863 - Organize assignments to markets, groups, industries--Organize assignments
3044 - Export watch list
2828 - Shows Analyser - a tool to test systems & explore market--Auto-Analyser
57617 - Open this workspace
2940 - Refresh charts only--Refresh

Cache manager stats:
Number of list elements: 0
Number of map elements: 0
Hash table size: 5987

Memory status:
  MemoryLoad: 42 %
  TotalPhys:      1564144K  AvailPhys:       897744K
  TotalPageFile:  3509328K  AvailPageFile:  3020988K
  TotalVirtual:   2097024K  AvailVirtual:   1926916K

Last Windows message:
HWnd:    0x1802ea
Msg:    0x0110
wParam:    0x00170380
lParam:    0x00000000

Detailed exception information:
Broker.exe caused a EXCEPTION_ACCESS_VIOLATION in module Broker.exe at 001B:00424A4C

Call Stack:
001B:00424A4C Broker.exe

CPU Registers:
EAX=00000000  EBX=00000001  ECX=0012F5E8  EDX=0000BCE6  ESI=01F6C696
EDI=01F6C588  EBP=00000D72  ESP=00000D7A  EIP=00000000  FLG=00010246
CS=001B   DS=0023  SS=0023  ES=0023   FS=003B  GS=0000


2008/5/22 Louis Préfontaine <rockprog80@xxxxxxxxx>:
Hi again again again, (lol),

Sorry for all the messages.  I am just so excited about this, cause this will help me a lot since I often work in the evening and can't use Yahoo current day data.

I worked a bit and it seems the second code you sent me works fine.  Works perfectly!

The only problem...  is that it corrupts the optimization I was doing.  It's bug it seems, because at the moment when Amiquote tries to update the database (which is optimizing at the same time) it created a situation where a window pops up and asks me if I want to continue even if Amibroker is now unstable.  Even if I click "yes" the optimization is dead and I have to re-begin it from scratch.. A bit frustrating!


Thanks,
Louis

2008/5/22 Louis Préfontaine <rockprog80@xxxxxxxxx>:
Hi again,

Ok, I think that I understand a bit more how it works.  The file.js will open Amiquote, who will then save the files to a .adq file, which is Yahoo daily.  But this file is only good for one day (until the next time I run the script), so if for whatever reason I can't manuallu import the ASCII to the database then I am in trouble.

Would it be possible with the same type of script to run Amiquote, to download the quotes AND to save them to the database (current, or chosen one) directly so that whatever happens the quotes will always be there when I come back?


Thanks,

Louis

2008/5/22 Louis Préfontaine <rockprog80@xxxxxxxxx>:
Ok I ran an exploration with phony parameter (C>1) and saved the result to a watchlist and then exported the watchlist to a .tsl file. 

Now I ran the script; it said "No tickers found in Amibroker" but then it began downloading the information as I wanted it to do.

But then, my question is: how to take that information back to the Database I am using?  If I understand correctly (I did some research on the site) the .tls is simply a ticker list with no more information, so where is going the information and how to make sure that that information will go straight back to the database?

Thanks,

Louis

2008/5/22 Louis Préfontaine <rockprog80@xxxxxxxxx>:

Hi Chris,

Thanks for your help.

The problem I have is that...  I am not sure how to use the .tls files!  In fact, I never used them; instead I would simply use the "Auto-updated quotes" from the "Tools" menu in AB to automatically download the quotes from Amibroker.   So, I see in the code that you posted that I need to have the .tls files setted, and I am not sure how to do this. 

1) How to take the tickers in my current database and put them in the .tls;
2) How to be sure that the next morning when I will open AB it will open the good database and that the database will contain the new information from the .tls file.

I guess this must be a really simple thing, but I still didn't get it... yet!


Thanks,

Louis

2008/5/22 Chris DePuy <cdepuy@xxxxxxxxx>:

You could try this.. (where big = your database name).  If you have questions about detailing this, then you might want to do a "site:www.amibroker.com AB.LoadDatabase" search and see what is on the ami site.
Good luck
 
 
/********************Amibroker open to database***********************/
AB = new ActiveXObject("Broker.Application");
AB.LoadDatabase("C:\\Program Files\\Amibroker\\Big");
AB.Visible = true;
 
/* retrieve automatic analysis object */
AA = AB.Analysis;
 

/********************Amiquote retrieve current***********************/

AQ = new ActiveXObject("AmiQuote.Document");
AQ.Open("C:\\Program files\\Amibroker\\amiquote\\Big.tls");
AQ.GetSymbolsFromAmiBroker();
FromDate = new Date(2006,7,1,0,0,0);

/* year, month-1, day, hour, min, sec (required by JScript date constructor) */
ToDate = new Date; // current time
/* getVarDate is required to convert from JScript Date to OLE-automation date */
AQ.From = FromDate.getVarDate();
AQ.To = ToDate.getVarDate();
AQ.AutoImport = true; // import automatically
AQ.Source = 1; // Yahoo Current

AQ.Download(); // starts download
// wait until download and import is finished
while( AQ.DownloadInProgress || AQ.ImportInProgress )
{
    WScript.sleep(5000); // wait 5 seconds before querying status again
}
 
/********************Amiquote retrieve current (end)***********************/
 
 
----- Original Message -----
Sent: Thursday, May 22, 2008 8:33 AM
Subject: Re: [amibroker] amiquote lack of control

Thanks,

This is what I was looking for...

Unfortunately, I know nothing  (nada, niet, rien) of this language.   I don't use any .tls folder; is it possible to build such script that would automatically look into AB and update the quotes in the selected database?  Or would it be better to save my current databse in .tls?

Thanks,

Louis

2008/5/22 Chris DePuy <cdepuy@xxxxxxxxx>:

Yuki had asked in "Re: [amibroker] amiquote lack of control"  now Louis has asked in "Is it possible to run Amiquote automatically".  Here is how to get Amiquote to run by itself from "outside" of Amibroker.
 
 
Amibroker and its related programs are easy to make work from other programs, like DOS boxes, or by double clicking in windows.
 
 
2) Now, here's some code to try (copy this into notepad).

AQ = new ActiveXObject("AmiQuote.Document");
AQ.Open("C:\\mysymbols.tls");

FromDate = new Date(1995,5,1,0,0,0);
/* year, month-1, day, hour, min, sec (required by JScript date constructor) */

ToDate = new Date; // current time

/* getVarDate is required to convert from JScript Date to OLE-automation date */
AQ.From = FromDate.getVarDate();
AQ.To = ToDate.getVarDate();

AQ.AutoImport = true; // import automatically
AQ.Source = 0; // Yahoo Historical

AQ.Download(); // starts download

// wait until download and import is finished
while( AQ.DownloadInProgress || AQ.ImportInProgress )
{
    WScript.sleep(5000); // wait 5 seconds before querying status again
}

WScript.echo("Download and import complete");

 
3) Keep in mind, that you have to use notepad to create this.  And call it, yuki.js and then save it.  Then, double click yuki.js and it'll run a bunch of stuff in amiquote automatically.
 
4) If you are interested, you can use "Scheduled Tasks" to run yuki.js at scheduled times (See ramvilas 's email from 5/22/08)
 
 
 
----- Original Message -----
From: Yuki Taga
Sent: Sunday, May 11, 2008 5:35 PM
Subject: Re: [amibroker] amiquote lack of control

Is there anything for "normal" people? I mean people who look at the
link you have provided and say, "Gee, that looks like it should be
useful, somehow, but what now?" People who think OLE is something you
shout in Spain, at a bullfight?

Yuki

Saturday, May 10, 2008, 5:29:13 AM, you wrote:

TJ> Hello,

TJ> Automation via "keyboard simulation" is not reliable.
TJ> Reliable way to automate is to use OLE interface
TJ> and that is proper way to automate AmiQuote

TJ> http://www.amibroker.com/guide/aqobjects.html

TJ> Best regards,
TJ> Tomasz Janeczko
TJ> amibroker.com
TJ> ----- Original Message -----
TJ> From: "Yuki Taga" <yukitaga@xxxxxxxxxxxxx>
TJ> To: <amibroker@xxxxxxxxxxxxxxx>
TJ> Sent: Friday, May 09, 2008 1:37 PM
TJ> Subject: [amibroker] amiquote lack of control

>>I use a keyboard automation program (Automate) to do a lot of routine
>> tasks, including tasks that must get done when I'm on vacation.
>> (When I'm on vacation, it means I don't even log into a computer for
>> *any* reason -- in fact, I don't even want to *see* a computer when
>> I'm on vacation.)
>>
>> I also keep a database of selected US indices and symbols (not
>> large), that I update with Yahoo (dead-on accuracy is not necessary).
>> But with Amiquote, I cannot toggle between 'Current' and
>> 'Historical', because there is no way to do this via the keyboard.
>>
>> Unfortunately, some Yahoo symbols have daily data, but no historical
>> data. I like to run 'Current' in the morning (my time), and
>> 'Historical' in the afternoon. Then I'm covered.
>>
>> I have asked on more than one occasion that keyboard control be added
>> to Amiquote, but it is apparently a very low priority. However, my
>> next paid Amibroker upgrade will be an equally low priority unless
>> there is a way to accomplish what I feel I need to do.
>>
>> Anyone?
>>
>> Yuki
>>
>>
>> ------------------------------------
>>
>> Please note that this group is for discussion between users only.
>>
>> To get support from AmiBroker please send an e-mail directly to
>> SUPPORT {at} amibroker.com
>>
>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
>> http://www.amibroker.com/devlog/
>>
>> For other support material please check also:
>> http://www.amibroker.com/support.html
>> Yahoo! Groups Links
>>
>>
>>







No virus found in this incoming message.
Checked by AVG.
Version: 8.0.100 / Virus Database: 269.24.0/1460 - Release Date: 5/22/2008 7:06 AM


__._,_.___

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___