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

[amibroker] Re: OLE Automation problem



PureBytes Links

Trading Reference Links

--- In amibroker@xxxxxxxxxxxxxxx, "dingo" <dingo@xxxx> wrote:
> anytime you have a problem and don't include the code you're 
using - you
> assume that we're mind readers, duude..
>  
> Can't help you.
>  
> d
> 
> 
>   _____  
> 
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] 
On Behalf
> Of angus_83210
> Sent: Friday, July 01, 2005 6:09 PM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] OLE Automation problem
> 
> 
> I can't get OLE Optimization to work. I open the database and 
close 
> all the documents and open a new document with the ticker(in this 
> case "A").  I set the active document to that document and open 
the 
> analysis.  I then load the formula and settings then clear the 
> filters.  I set applyto = 1, rangemode=0,showwindow = 1 and then 
> optimize = 1.  This is where I am having my problems.  I get a 
dialog 
> box to ok the number of opt. steps.  Need away to bypass the 
dialog 
> box when doing OLE.  The next problems is that I don't have any 
data 
> to optimize.  I have tried to run the windows scripts that are in 
the
> OLE automation but they don't run.  I get a windows script host 
> error "No jobs are defined in the file"  Any ideas on how to make 
OLE 
> work with 4.70? Also it would be nice to make the 
Broker.Application 
> Module have a visible field like Excel does so a developer can 
watch 
> what is going on.
> 
> Thanks
> 
> 
> 
> 
> 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 other support material please check also:
> http://www.amibroker.com/support.html
> 
> 
> 
> 
> 
>   _____  
> 
> YAHOO! GROUPS LINKS 
> 
> 
> 	
> *	 Visit your group "amibroker
> <http://groups.yahoo.com/group/amibroker> " on the web.
>   
> 
> *	 To unsubscribe from this group, send an email to:
>  amibroker-unsubscribe@xxxxxxxxxxxxxxx
> <mailto:amibroker-unsubscribe@xxxxxxxxxxxxxxx?subject=Unsubscribe> 
>   
> 
> *	 Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
Service
> <http://docs.yahoo.com/info/terms/> . 
> 
> 
>   _____

Here is the code:


Dim abapp As Broker.Application
Dim abal As Broker.Analysis
Dim absts As Broker.Stocks
Dim abst As Broker.Stock
Dim abdocs As Broker.Documents
Dim abdoc As Broker.Document
Dim actdoc As Broker.Document
Dim abqts As Broker.Quotations
Dim abqt As Broker.Quotation
Dim filname As String
Dim xlapp As Excel.Application
Dim xlwb As Excel.Workbook
Dim xlws As Excel.Worksheet

Dim Gcnt As Integer


Private Sub Form_Load()
  Dim dbload As Boolean
 
  Set xlapp = New Excel.Application
  Set abapp = New Broker.Application
  Set absts = abapp.Stocks
  
  dbload = abapp.LoadDatabase("C:\Program Files\AmiBroker\ETF")
  Gcnt = absts.Count
  
  Stop
   
End Sub

Private Sub Form_Unload(Cancel As Integer)
  abapp.Quit
  xlapp.Application.Quit
End Sub

Private Sub START_Click()
  Dim i As Integer
  Dim Frmload As Boolean
  Dim good As Boolean
  
  filname = "C:\program files\amibroker\dump.csv"
  Set abdocs = abapp.Documents
  If abdocs.Count > 0 Then abdocs(0).Close
  For i = 0 To Gcnt - 1
    Set abst = absts(i)
    Set abdoc = abdocs.Open(abst.Ticker)
    Call abdoc.Activate
    Set actdoc = abapp.ActiveDocument
    Set abal = abapp.Analysis
    Frmload = abal.LoadFormula("C:\Program 
Files\AmiBroker\Formulas\Custom\Weight.AFL")
    Frmload = abal.LoadSettings("C:\Program 
Files\AmiBroker\Formulas\Custom\Long.ABS")
    Call abal.ClearFilters
    abal.ApplyTo = 1
    abal.RangeMode = 3
    abal.RangeToDate = DateAdd("D", -1, Now)
    abal.RangeFromDate = DateAdd("m", -6, abal.RangeToDate)
    abal.ShowWindow 1
    abal.Optimize 1
    Kill (filname)
    good = abal.Export(filname)
    If good Then
      Call Get_Dump
    End If
   Stop
  Next
End Sub


Private Sub Get_Dump()

  Set xlwb = xlapp.Workbooks.Open(filname)
  xlapp.Visible = True
  For i = 1 To xlapp.Worksheets.Count
    Set xlws = xlwb.Sheets(i)
    
    '      ts2 = "A" & Trim(CStr(lop))
    '      ts3 = xlws.Range(ts2).Value
    '      If IsNumeric(ts3) Then
    '        num = CInt(ts3)
    '        ts2 = "B" & Trim(CStr(lop))
    '        ts3 = xlws.Range(ts2).Value
  Next
  xlwb.Close
End Sub





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 other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/