ExcelLink supports only Office 2003 & XP. If you need support for newer Excel versions please use XLSgate. XLSgate is also our product.
ExcelLink can connect trading platforms to Excel. It's a DLL library that can be used from any application, such as MetaTrader and TradeStation.
This add-on exchanges data between Excel and other trading tools like TradeStation, Wealth Lab, and MetaTrader. Although they don’t have a native support for Excel, we may occasionally need to use Excel for its capabilities.
You can store strings, integers, and double types from a single application as well as read them from another (or the same) application in real time; for example, storing data from TradeStation and reading it in MetaTrader. Highlights include the following:
ExcelLink is freeware
, so users can embed it anywhere. NO CHARGE.
Installation may vary by application. DLL files must be placed in an application’s DLL include
path or the Windows’ DLL include path; for example, the 64-bit shared library include path
is %windir%\SysWOW64
. In MetaTrader4 (builds 0600 and below), the library path
is %MetaTrader4%\experts\libraries
. In TradeStation, the include path is %TSPATH%\Program\
.
You may need to enable DLL execution because it's sometimes disabled by default (for security reasons). This tool was released as a DLL, so you’ll need to enable DLL Execution.
Here is the first command to start Excel with a given filename. Don’t call this command more than once per code. The filename path must exist, and the current user should have “read/write access” to the directory and its filenames. Function returns an error code. “Code 0” means success. A negative return value means an error has occurred. Double-check the return code before sending additional ExcelLink commands. If you don’t, your Excel link won’t be successful and you’ll be unable to send commands.
Flags indicate how to start Excel:
0 : Start Excel in Default Mode 1 : Enter minimized Mode (to speed things up) 2 : Enable the "Autofit" function
You can use switch multiple flags simultaneously; for example, to start Excel in Minimized Mode and enable autofit at the same time, set the flag parameters to three (2+1). Please note that AutoFit may slow things down.
This function returns the add-on version of ExcelLink
These functions are responsible for sending data to Excel. ExcelPutValue can send integers, floats, and double values. ExcelPutString will send a text line to a given cell. Even numbers are sent through ExcelPutString as text. Please note that row, column, and sheet begin at one. First sheet on the table is one; first cell on the sheet is (1, 1). Both functions return zero to indicate success.
Read cell contents with these functions. Please note that row, column, and sheet begin at one. First sheet on the table is one; first cell on the sheet is (1, 1). Both functions return zero to indicate success. In addition, please read descriptions on the functions ExcelFreeString() and ExcelGetCalc().
This function calculates both row and column coordinates using standard Excel Format; for example, [row one, column one] is the “A1” Excel coordinate. This function is used for ExcelPutCalc functions. (Please read the description on ExcelFreeString function)
Using this function allows Excel to calculate values within cells (supports all Excel internal functions). Please read the ExcelGetCalc() function description. You may also want to check out the demonstration codes below to answer any questions.
If you used ExcelPutCalc on a cell, then you’ve already calculated or manipulated something. To view the result of that calculation, you can use the function ExcelGetCalc; for example, if you use ExcelPutCalc(...,"=A1+A2") and read the same cell with ExcelGetString, you’ll receive the formula "=A1+A2." However, if you read same cell with ExcelGetCalc(...), you’ll receive only the result. Calculations containing string values will give you the result in string values. If you want an integer or a double, you’ll need to convert string values into either integers or doubles manually. This function doesn’t perform autotype casting; thus all results will return as string values.
This function renames only the existing sheet. Please note that the first sheet is numbered 1.
These functions format the color of a cell, font style, and font size. FrontColor and BackGroundColor are compatible with TradeStation. Basically, red indicates red; green indicates green; and so on. Font size can be between one and one hundred. Formatted texts have the following flags:
0 : Solid, unformatted 1 : Bold 2 : Italic 4 : Underlined
It's possible to indicate more than one format simultaneously; for example, if you want a cell to be bold and underlined, then your format code should be 1 + 4 = 5
This function should be used only when the code is complete. Don't call it too often or else you’ll experience lag. This function will store the file under a filename. Remember: The filename path must exist, and the user should have permission to read/write the directory and its filenames. Be careful, though. ExcelLink won’t ask whether you want to overwrite an existing file; it simply won’t provide a confirmation. Typically, you should save the file in ExcelStart. ExcelSave will save all changes from your script. The ExcelStart function loads the filename to Excel. If you want to save changes for next time, use this function.
The following functions of ExcelLink are asynchronous: ExcelPutValue, ExcelPutString, ExcelPutCalc, ExcelFormatCellColor, ExcelFormatCellFontSize, and ExcelFormatCellFont. These functions will be executed in a separate thread to prevent delays in your code. Be careful, though. If your code stops or exits before an asynchronous command is properly executed in Excel, you may end up with unusable results. If you experience issues with formatting or anything related to an asynchronous command, you must use the ExcelEnd() function before exiting; for example, in MetaTrader, you’ll enter the function Deinit(). In TradeStation, you won’t need the aforementioned function since there’s no command that can end an execution before the completion of an asynchronous command.
This function can enable and disable Excel’s “AutoFit” function. AutoFit is a slow asynchronous feature, so use it carefully on big loops.
This function is Excel’s multithread-safe attribute. Sometimes you’ll call ExcelGetString and ExcelCell and, as a result, receive a set of string values. These values will then be stored in the memory so that they can be used elsewhere in the code. Of course, things may slow down once the memory has accumulated thousands of iterations. To release the memory, use the function above (only after using ExcelGetString and ExcelCell). Typically, the memory will release after the study self-terminates. You should release the memory if you’ve been running the study for a long time or continuously calling these two functions. Small codes won’t require it; however, larger codes and continuously running codes will.
This function closes active Excel workbooks. In newer versions of Excel, there may be multiple workbooks within the same application. This function won’t close the application, so you won’t have to worry about any open tables or workbooks. Nonetheless, before closing you should save workbooks with the ExcelSave() function. ExcelClose() doesn’t save automatically; it also ignores Excel’s warnings. At the end of your code, call this function. Why? Because you won’t be able to send Excel commands until this function is finished and you’ve already closed the handle to Excel. To continue working with Excel, start with the ExcelOpen() function again and proceed to open a new handle.
USE EXCELLINK AT YOUR OWN RISK. If you don’t use ExcelLink correctly, it may destroy your existing tables and files. Please report all bugs so that we can address them in the next update. In addition, when sending us information, please don’t forget to include your trading platform, version, operating system, memory, number of screens, and—if possible—a sample of the code.
If you have multiple Excel instances open, ExcelLink may not find correct window. We are still working on this issue.
We provide you two different version of DLL. Versions differ by how strings and managed internally. ANSI version is the traditional version and UNICODE is new unicode version. ExcelLink can be used from different platforms, depending on platform you will need to use proper version. For example Metatrader build < 520 requires ANSI version but > 520 requires UNICODE. Tradestation requires ANSI version etc. Ask your platform support about DLL string handing scheme to make sure you are using correct version.
If you have multiple Excel instances open, ExcelLink may not find correct window. We are still working on this issue.
Version | Description | Download |
---|---|---|
4.0 |
|
Download v4.0 (Bundle) |
3.7 |
|
Download v3.7 (for Metatrader Build >520) |
3.6 |
|
Download v3.6 (for Metatrader Build <=520) |
3.5 |
|
- |
3.4 |
|
- |
3.2 |
|
- |
2.11 |
|
- |