Acive X

Discussion in 'Trading Software' started by SocalTrader, Apr 12, 2004.

  1. Are there any Active X experts on Elite?
  2. ethos


    What is your question?
  3. No question, my firm is releasing an ActiveX API and I wanted to provide the link to those that have some expertice in ActiveX
  4. ethos


    I'd take a look.
  5. Could someone here help me w/ a timer event. I am writing a VB program which takes quotes from IB's server using ActiveX. i need to pause between my request data functions in order to give IB time to get the quotes. Is there a way to do that. I have been playing around with the timer function to no success. To simplify things, if I want to print "Hello" then "world" but need to print them 10 seconds apart. How can I do that? Thanks in advance.
  6. Go through this example of an alarm clock and you can see how to setup a timer control to check the system time (Time function) every 1/2 second or so. You don't want to bog things down by checking too fast, like every millisec, if you only want a resolution in seconds. Then you can easily count the seconds up to 10. To use this example just drop a Timer control on a form, enable and set the Interval to something like 500.

    Option Explicit
    Dim AlarmTime
    Const conMinimized = 1

    Private Sub Form_Click()
    AlarmTime = InputBox("Enter alarm time", "VB Alarm", AlarmTime)
    If AlarmTime = "" Then Exit Sub
    If Not IsDate(AlarmTime) Then
    MsgBox "The time you entered was not valid."
    Else ' String returned from InputBox is a valid time,
    AlarmTime = CDate(AlarmTime) ' so store it as a date/time value in AlarmTime.
    End If
    End Sub

    Private Sub Form_Load()
    AlarmTime = ""
    End Sub

    Private Sub Form_Resize()
    If WindowState = conMinimized Then ' If form is minimized, display the time in a caption.
    Caption = "Alarm Clock"
    End If
    End Sub

    Private Sub SetCaptionTime()
    Caption = Format(Time, "Medium Time") ' Display time using medium time format.
    End Sub

    Private Sub Timer1_Timer()
    Static AlarmSounded As Integer
    If lblTime.Caption <> CStr(Time) Then
    ' It's now a different second than the one displayed.
    If Time >= AlarmTime And Not AlarmSounded Then
    MsgBox "Alarm at " & Time
    AlarmSounded = True
    ElseIf Time < AlarmTime Then
    AlarmSounded = False
    End If
    If WindowState = conMinimized Then
    ' If minimized, then update the form's Caption every minute.
    If Minute(CDate(Caption)) <> Minute(Time) Then SetCaptionTime
    ' Otherwise, update the label Caption in the form every second.
    lblTime.Caption = Time
    End If
    End If
    End Sub
  7. Thanks for your response !

    I have another ? for the TWS API experts out there.

    My understanding is that there is a 40 ticker limit at any 1 time with Ib's Active X. I created a VB program which uses the reqdata function to get quotes for options. It goes thru an excel spreadsheet and fires off the requests. I have limited it to about 35-38 symbols Ex ibm May80 c and ibm may 80 p are counted as 2 tickers towards my 40. After requesting the set, I then call the cancelmktdata for each of the symbols, wait 10 seconds and fire off another set of 38 symbols. 60% of the time, I get this "You have exceeded maximum allowed amount" Why? Any suggestions? Thanks
  8. In addition to the 40 symbol limit there is a maximum of something like 10,000 per day, otherwise I'm not sure why you would get the message. Maybe your Cancel request is not getting thru?

    A fairly easy way around the whole limitation thing is to use the free program QuoteTracker. QT can get the quotes from a very large selection of venders. I use Money.Net "Screamer" snap quotes. You just send QT your list of symbols or portfolio commands "embedded" in a URL to the local server using the VB Inet control:

    portidstr = Inet1.OpenURL("")

    Here is the QT help page that explains the interface: