You can't trap COM errors but you can do a check to avoid assignments outside 
scope.

Best regards,
Tomasz Janeczko
amibroker.com
  ----- Original Message ----- 
  From: Paul Ho 
  To: [email protected] 
  Sent: Saturday, July 05, 2008 3:50 AM
  Subject: RE: Ah Tomasz: RE: [amibroker] Ping Paul Ho---Re: Import Data into 
OI field? Using a Watchlist


  Hello Ken
  It seems that everything was sorted while I was hibernating down the deep 
south.
  The isDirty flag just tells AB to data has changed so when the user press 
save, that area of the database is saved. 
  On another note, I finally found out why I was getting COM error 18. It was 
because I checked the pad and align box, When AB tries to assign a value to a 
bar that isnt there. it complains.
  While I'm on this topic, and if Tomasz is reading it. - Is there a way to 
trap the COM error in afl?



----------------------------------------------------------------------------
    From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Ken 
Close
    Sent: Saturday, 5 July 2008 5:44 AM
    To: [email protected]
    Subject: RE: Ah Tomasz: RE: [amibroker] Ping Paul Ho---Re: Import Data into 
OI field? Using a Watchlist



    Thanks Tomasz: critical piece of information.  I assume you wanted to warn 
people (to remind themselves) when they are using a data series with a value in 
one of the fields that is not truly representative of what the field is 
supposed to hold.  One wonders how the IsDirty flag shows up.  Did you set it 
up to show a warning if anyone uses the OI field in some other calculation or 
indicator? (I have been listing it with AddColumn to no effect).  Or was it 
just to remind the person at the time it was set up that they had done 
something outside the "normal" use of the field contents?

    Anyway, thanks for sharing that information.

    Ken



----------------------------------------------------------------------------
    From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of 
Tomasz Janeczko
    Sent: Friday, July 04, 2008 2:40 PM
    To: [email protected]
    Subject: Re: Ah Tomasz: RE: [amibroker] Ping Paul Ho---Re: Import Data into 
OI field? Using a Watchlist


    Hello,

    Of course the field WILL contain any value you put into it...
    BUT your changes will NOT be saved until you set dirty flag.

    ab = createobject("broker.Application");
    target = ab.Stocks(name());
    qts = target.Quotations; 
    AA = AB.Analysis;
    AA.ApplyTo = 2;
    for(i = 0; i < Barcount; i++)
     {
         qt = qts.Item(i);
         qt.OpenInt = Ranking[i];
     }
    target.IsDirty = True; /// MUST SET 
    buy = sell = 0;

    Best regards,
    Tomasz Janeczko
    amibroker.com
      ----- Original Message ----- 
      From: Ken Close 
      To: [email protected] 
      Sent: Friday, July 04, 2008 8:13 PM
      Subject: RE: Ah Tomasz: RE: [amibroker] Ping Paul Ho---Re: Import Data 
into OI field? Using a Watchlist


      Tomasz:

      Figured out the (now) simple looking commands to use the Watchlist.


      Ranking = C; // replace this with something you want to store
      ab = createobject("broker.Application");
      target = ab.Stocks(name());
      qts = target.Quotations;
      AA = AB.Analysis;
      AA.ApplyTo = 2;
      for(i = 0; i < Barcount; i++)
       {
           qt = qts.Item(i);
           qt.OpenInt = Ranking[i];
       }
      buy = sell = 0;

      I would still be interested to know what happens to Amibroker operation 
if the IsDirty Flag is NOT set, if the OI field now contains a value put there 
by this OLE code.
      Secondly, I can "clear" the value by changing the Ranking value to 0 in 
the first line above.  This inserts a zero.  Does this mean the symbol is still 
"Dirty"?

      Ken



--------------------------------------------------------------------------
      From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of 
Ken Close
      Sent: Friday, July 04, 2008 12:10 PM
      To: [email protected]
      Subject: Ah Tomasz: RE: [amibroker] Ping Paul Ho---Re: Import Data into 
OI field? Using a Watchlist


      Ah, Tomasz:

      Couldn't you have also tossed in the few statements I need to make it 
work with a Watchlist. And where do you put the target.IsDirty = True 
statement.  And what do you do when you remove the value from the OI field? And 
what happens if you forgot (or never knew) to set the IsDirty Flag to True?  
What happens to program operation when that symbol is used by some other code?

      Thanks for adding some more information.

      Ken

      Ranking = C; // replace this with something you want to store
      ab = createobject("broker.Application");
      target = ab.Stocks(name());
      qts = target.Quotations;
      for(i = 0; i < Barcount; i++)
       {
           qt = qts.Item(i);
           qt.OpenInt = Ranking[i];
       }
      buy = sell = 0;



--------------------------------------------------------------------------
      From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of 
Tomasz Janeczko
      Sent: Friday, July 04, 2008 11:54 AM
      To: [email protected]
      Subject: Re: [amibroker] Ping Paul Ho---Re: Import Data into OI field? 
Using a Watchlist


      Hello,

      You need to know that AB caches data.
      If you are writing directly to quote array thru OLE you need to 
      set "IsDirty" flag, after you are done with writing to given symbol.

      target.IsDirty = True;


      Best regards,
      Tomasz Janeczko
      amibroker.com
        ----- Original Message ----- 
        From: Ken Close 
        To: [email protected] 
        Sent: Friday, July 04, 2008 5:47 PM
        Subject: [amibroker] Ping Paul Ho---Re: Import Data into OI field? 
Using a Watchlist


        Paul:

        Sorry to bother you again.

        I have proven that your small COM object code stuck at the end of a 
very complex AFL will successfully stuff the one parameter I want to save into 
the OI field.  Yea!

        But, is a scan supposed to work on all symbols within a Watchlist?  I 
tried to run the code (scan) against a three symbol watchlist but it did not 
work (only updated the current symbol).

        I see there is an Analysis object Analysis.ApplyTo and there is 
something called a SCAN Method, but by trial and error, I can not come up with 
a statement(s) that works.

        Would you be so kind to show me the statement(s) that need to be added 
so that I can run through the symbols in a watchlist, and stick the "Ranking" 
variable into the OI field of each one of them?

        It would get me so very close to a major milestone in my quest.

        Thank you so much.

        Ken



------------------------------------------------------------------------
        From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of 
Paul Ho
        Sent: Thursday, July 03, 2008 9:10 PM
        To: [email protected]
        Subject: RE: [amibroker] Ping Paul Ho---Re: Import Data into OI field?


        Ken
        I presume you are using the latest version of AB.
        I have just tried it myself and I have come back with a COM object error
        run it in previous version and is working fine.
        Can you try it on an old version of AB, if you have the same result. It 
is time to call on Tomasz to fix it.




----------------------------------------------------------------------
          From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf 
Of Ken Close
          Sent: Friday, 4 July 2008 2:17 AM
          To: [email protected]
          Subject: [amibroker] Ping Paul Ho---Re: Import Data into OI field?


          Paul:

          I tried the code you shared below to see if I could stick the
          "Ranking=C" value into the OI filed of a single symbol, and I got
          nothing. I ran Scan over a short date range, clicked "Refresh All",
          and then looked in the Quote Editor for the change, but none was 
there.

          What needs to be done to make this work?
          Can the COM OBJECT application be put onto the end of an AFL file
          (which generates the Ranking value), and still be expected to work?

          Need help. Thanks for any suggestions.
          Ken

          --- In [email protected], "Paul Ho" <[EMAIL PROTECTED]> wrote:
          >
          > Bob
          > You can't do it in Amiquote or fget, but you can do it with COM 
objects.
          > The following example gives you a means
          > Ranking = C; // replace this with something you want to store
          > ab = createobject("broker.Application");
          > target = ab.Stocks(name());
          > qts = target.Quotations;
          > for(i = 0; i < Barcount; i++)
          > {
          > qt = qts.Item(i);
          > qt.OpenInt = Ranking[i];
          > }
          > buy = sell = 0;
          > 
          > Run scan over tickers that you want. and Remember to refresh all to
          see the
          > changes
          > It is very important to know that AB does not detect the OI field 
for
          > changes, so if there is no other changes in your database, pressing 
save
          > doesnt save your changes in OI (at least that was the case in the
          past), To
          > force save, choose save database as, or make some sure there are
          some other
          > changes in your database and press save. Otherwise, the OI fields
          would be
          > blank next time you open it.
          > Good luck.
          > 
          > 
          > 
          > _____ 
          > 
          > From: [email protected] [mailto:[EMAIL PROTECTED]
          On Behalf
          > Of [EMAIL PROTECTED]
          > Sent: Friday, 21 March 2008 10:38 AM
          > To: [email protected]
          > Subject: [amibroker] Import Data into OI field?
          > 
          > 
          > 
          > 
          > 
          > Although I understand that additional AB data arrays [and means of
          > populating them] are planned for the future, I'd like to store a 
weekly
          > value into the OI field.of existing tickers.
          > 
          > Any way to do this with AmiQuote?
          > If not, how about with fget, etc?
          > 
          > TIA,
          > Bob
          >




   

Reply via email to