A small program to assist IB login for users with Security cards.

IB now provides account holders with a plastic security card that has 224 numbers (1-224)  listed next to each number’s corresponding three digit unique key. To login, the user must look up two numbers provided by IB at login and then find and type in the corresponding two keys. Many find the process cumbersome and opt out of being required to use the security device. Opting out requires the account holder to sign forms giving up certain rights and is not a great choice considering that IB for some reason limits password maximum length to 8 characters.



LogFast_et is a small program to assist the cumbersome process of logging in. Once the program is set up, The user opens the small program, enters the 2 numbers displayed by IB and the resulting code is copied automatically to the clipboard so that it can be pasted in  IB’s login area to complete the login.

Logfast (641.5 KiB, 2530 downloads)

Initial Setup: Download and install the program. To setup the program, there is a form in place available from the settings menu to enter the values from the security card. The setup should take most people around 20 minutes to enter all 224 entries. Fortunately you’ll only have to do it once.

After you install the program you will have two files in the program’s directory. One is the executable and the other is the .sdf file which is the database. The keys that you enter from your card are kept on your computer in a local database (sdf) that is encrypted and password protected.  The program retains your encrypted password in it’s settings so you do not have to enter it each time the program opens. You can change the password from the Settings menu. This means that no one can view your database of keys directly unless they know your password. On the other hand anyone who opens the program can view each key by manually entering three digit numbers. Upon install it is recommended to change the default password (which is “password” and is auto filled as the old password) to a different password that you can remember.

Below is a short video showing the program in action.  Please use the comment form below for any questions, comments, feature requests.

Fixing Run-Time error ‘6’ Overflow when using Excel twsdde.xls to send orders to IB

Twsdde.xls (the sample excel file provided by Interactive Brokers) contains a procedure that creates order ID’s using a calculation based on the current date and time. The variable “ongoingID” is defined as type Long. On 8/26/2012 the calculation began producing a value higher than the maximum value for a Long in Excel which is 2147483647 [wiki].

To solve this error I currently recommend the following steps:

From TWS (Trader Workstation) menu:

  1. Navigate “edit”>global configuration>API
  2. Press the “Reset Order ID and ID sequence” button


In any workbook that you use such as Twsdde.xls or any custom Excel/VBA workbook used to send orders to IB:

  1. Open the workbook and press Alt+F11 to open the vba editor
  2. Press CTRL+F (or use menu) to open the Find (search) box. Search for and change “Const orderMult = 1000000″ to “Const orderMult = 100000″ (one less zero)



Now you should once again be able to successfully send order to IB via Excel.




Excel Benchmark 2011: An Excel Speed Test (with trading functions)

Live Analysis of Benchmark Results

Of 3625 Benchmark results, currently the Excel version with the highest *average Total Score of 57.54 is Excel 2013. Excel 2010 has an average Total Score of 49.28. Excel 2002 has an average Total Score of 48.99. Excel 2003 has an average Total Score of 42.36 and the worst average Total Score is Excel 2007 at 23.15.

Of the top 30 scores, 96.67% of the processors brand name is Intel. Followed by AMD which is the processor in 3.33% of the top 30 results. The exact processor with the current top score of 123.8243 is Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz. It's likely that this processor is overclocked beyond what is shown on the benchmark results page and is not necessarily the top performing processor at default settings.

Of the six tests used to determine Total score, Test 3 shows the most variance between Excel Versions. For example the best score for test 3 in Excel 2003 is 56785 while the best test 3 score for 2010 is 24137896 so for test three, Excel 2003 performs 0.24% better when only the best scores are considered. Test 3 measures how many ticks can be displayed on a stock chart within a 30 second time period. The other tests composing Total Score involve more intensive calculation tests than this charting display test. Although this difference is large, Test 3 should only be considered over Total Score for the most charting intensive Excel programs where VBA and/or formula based calculations are relatively minimal. For most Trading applications Total Score which is a composite of the 6 tests is the most useful score to use for evaluating Excel versions/Processors/OS etc.

Of the 3625 current results 556 are below 0. I would not consider any system scoring below 0 adequate for running an excel based trading system. A modern system scoring below 0 should be checked for unnecessary startup programs, spyware, viruses etc.

*Scores below 0 are set to zero for purposes of calculating average total score.

If your score is low and you’re considering a desktop upgrade, I currently recommend this high benchmark scoring Acer Predator Intel Core i7 3.4GHz Desktop with 12GB SDRAM and Microsoft Office Home & Business 2010.

BenchMark_ET.xls measures Excel performance with 6 trading related Excel/VBA tests. Once the benchmark is complete, your results can be submitted to the Database (just press “Submit”). All submitted results are available here (all results are sortable). The default view is most recently submitted result topmost (so your result should be on top until you sort). System Information is listed along with each test result (processor name, OS, Clock Speed, Cores, Excel Version, File type). A composite Scoring system is in place, but each individual test result is also listed in the results database. All results can be sorted in ascending/descending order by clicking each result’s title. For best results disable autosave and background error checking in Excel options.


  1. Download Benchmark_ET.xls.
  2. Open Benchmark_ET.xls and press the button “Start Benchmark”
  3. (optional) Submit and view your results.

Benchmark for Excel by Exceltrader

Below is an explantion of each test:

Test 1: Data Build Time

Measures the time it takes VBA to create 5 columns * 65535 rows of random tick data.

Test 2: MACD VBA Calculation

Measures the time it takes VBA to calculate the MACD indicator for the 5 columns * 65535 rows of data created in test one. (The VBA code for the MACD calculation is here.)

Test 3: Dispayed Ticks (30 Sec)

Measures the number of ticks (price changes) than can be displayed in 30 seconds. In my original benchmark this was the only type of test. The results varied so greatly that newer versions of excel took hours to complete the benchmark while older versions took just minutes making the benchmark annoying to run. By limiting this test to 30 seconds the total time to run the benchmark will be similar among all systems tested.

Test 4: 63000 ticks converted to OHLC

After 63000 ticks are created, this test converts the tick data to OHLC data. The result is measured in time.

Test 5: Live formula Test

This test begins with with 5000 bars of OHLC and a series of formula based indicators. The last price changes in E5000 as rapidly as possible but waits for all formulas to calculate between each price change.  The benchmark result is the number of price changes that can be completed with formula recalculations within 30 seconds.  Below is the list of indicators calculated with live formulas in this test.

  1. SMA (100,200,300)
  2. RSS
  3. RSI
  4. Fisher Transform of RSI

Test 6: Live formula Test

This test is identical to test 5 except that all formulas also refer to and are dependent on the changing cell, E5000. Test 6  compared to Test 5  is meant to test the “smart recalculation engine” promoted by Microsoft.  More info can be found in this Microsoft article under the section titles “Understanding Calculation Methods in Excel”.


A composite scoring system is in place and the result is listed in column two on the results data base page and also at the top of the benchmark results form upon completion. With the exception of test 3 all tests are counted equally. Test 3, which tests displayed ticks on a stock chart is counted 3 times because for trading it’s an important result to consider. To establish the composite score 20 tests were run on various systems and excel versions. The best and worst scores for each test were used to establish the benchmark score. The best scores from the initial tests resulted in a score of 100 and the worst scores resulted in a score of 0 therefore scores greater than 100 and below 0 are possible.  On the results page idle processor speed is shown and overclocked systems may not show the true processor speed. If you see two systems that look the same with significantly different scores, the higher score is likely from an overclocked system. Thanks for trying my Excel benchmark and submitting your system’s result!


Bond Data Converter

U.S. Government Bonds and Notes quotes are not easily understood by excel. A quote’s fractional part is often separated by a colon or space and the denominator is assumed. For example 100:02 is the form given by the Wall Street Journal. From other sources it might appear as 100 02. In this quote the 02 is the numerator and the denominator (32) is assumed. To put back in general number form that excel can read the math is 100 + 02/32 which is 100.0625. The below code that I wrote is from
Bondconvert.xls. The code will convert all the data in columns B-E to number form if it has a space between the the two parts. The code can be adapted easily.
For example: to convert data with a colon instead of a space you would change the line y = Split(x," ") to y = Split(x,":")

In addition to the code based conversion, the function can also be used with live data. For example the function can be used in a formula like Bconver("120 01.5"). In that case "120 01.5" could be replaced with a dde link.

Option Explicit

Function Bconver(x As Variant)
Dim y As Variant
y = Split(x, " ")
If UBound(y) = 1 Then
Bconver = y(0) + y(1) / 32
Bconver = x
End If
End Function

Sub bondconvert()
Dim wsET As Worksheet
Dim lr As Long
Dim r As Range
Dim x As Variant
'Set wsET = ThisWorkbook.Worksheets("Data")
Set wsET = ThisWorkbook.ActiveSheet
With wsET
lr = .Cells(Rows.Count, "A").End(xlUp).Row
For Each r In .Range("B2:E" & lr)
r.Value = Bconver(r.Value)
Next r
End With
End Sub

'www.Exceltrader.net, Copyright © 2011 Excel Trader - All Rights Reserved