Just a cupla ideas: I use templates to load all of the charts for a particular chart viewing session. If you want to make sure that all charts are closed before you start work you can step the windows and close them right before you run your script. If its something else you want to do just ask. d
_____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Joe Landry Sent: Wednesday, June 20, 2007 8:21 AM To: [email protected] Subject: Re: [amibroker] Windows.Add(), NewWindow.Close() Hi Dingo.. thanks for responding. What I'm trying to do is manage the number of charts that show up each time I launch a "daily" job. (using old timey terms like job, and job steps, but I'm sure you'll understand them) As I was reading your response and framing out my answer, I see a few things I could try to check out, to see what's happening, but I thought I'd go ahead, thank you, and show you the original script that caused the issues. For example I start each step as noted below, by making sure the current issue has a long history, so I load the Russell 2000 index before running group average ATCs. At the end of the job (say with 4 job steps) I end up with 4 "windows" usually without the correct window or layout in view. If the script line 7 ABD.Open(ticker); causes a new window to open. Would the complementary method Close() work? Well I haven't tested it out and I'm going to in a short while. Best regards, Joe /* setup filters */ /* SCAN over symbols in the default watchlist built by step above WL #62*/ AA.ClearFilters(); // load a ticker with a long history var ABD = AB.Documents; var ticker = "!RUT"; ABD.Open(ticker); // Point to !RUT - QP3 ticker name Open_Ticker = AB.ActiveDocument.Name; // WScript.Echo ("Current Stock = " + Open_Ticker ); /* set apply to and range */ AA.ApplyTo = 2; // use filters 0 all symbols, 1 current symbol, 2 use filter AA.Filter(0,"watchlist") = 62; AA.RangeMode = 1; // use n last quotations AA.RangeN = 512; // for two years /* run SCAN */ AA.scan(); WScript.Echo("Industry Group Files written to default folder"); /* load formula from external file */ if(AA.LoadFormula("C:\\program files\\amibroker\\afl\\WeeklyJobs\\SSGROUPAVG.afl")) { oWSH.popup("Industry Groups Averages Loaded Successfully",1,"Status",64); } ----- Original Message ----- From: dingo <mailto:[EMAIL PROTECTED]> To: [email protected] Sent: Tuesday, June 19, 2007 7:32 PM Subject: RE: [amibroker] Windows.Add(), NewWindow.Close() Joe, the script appears to be adding 2 windows and closing 1. So each time you run it you get one more window...?? The code you're using from 4.83 was just to show you how you could use some new properties and methods. I doesn't do any management at all. I don't understand what you are trying to do. d _____ From: [EMAIL PROTECTED] <mailto:[email protected]> ps.com [mailto:[EMAIL PROTECTED] On Behalf Of Joe Landry Sent: Tuesday, June 19, 2007 6:05 PM To: [email protected] Subject: [amibroker] Windows.Add(), NewWindow.Close() Hello: I'd like to be able to manage the number of charts that appear, seemingly out of nowhere, as a run a multi step script; so along those lines, I thought I'd explore the attached script that was introduced with 4.83. However when I run this I get a large number of DocsQty on the order of 17, and I can't reason out why this is so high. How are those documents associated with the default window that I'm using? And when I add and close a window I don't see the evidence of this. Like nothing changes. I'm missing something fundamental here and wondering if someone would help me? Thanks in advance Joe L. outBuffer = ""; // global output string buffer function output( string ) { outBuffer = outBuffer + string + "\n"; } AB = new ActiveXObject( "Broker.Application"); Docs = AB.Documents; DocsQty = Docs.Count; WScript.echo("Num of Docs = "+ DocsQty ); for( i = 0; i < DocsQty; i++ ) { Doc = Docs( i ); output( "Document " + i + " name : " + Doc.Name ); Windows = Doc.Windows; WinsQty = Windows.Count; for( j = 0; j < WinsQty; j++ ) { Win = Windows( j ); output( " Window " + j + " Selected tab " + Win.SelectedTab ); } } WScript.echo( outBuffer ); WScript.echo( "Now will add one window" ); Doc = Docs( 0); Windows = Doc.Windows; NewWindow = Windows.Add(); WScript.echo( "Now will add another window" ); NewWindow = Windows.Add(); WScript.echo( "and close it" ); NewWindow.Close();
