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

Anyone using HASHNUMB.DLL in TradeStation or MultiCharts?



PureBytes Links

Trading Reference Links


Hi,

I am a former TS4,.0 user who is currently using Qcharts and considering either trading with the www.tradestation.com people or using MultiCharts with my current broker's feed (interactive brokers). I still have the HASHNUMB.DLL (Kim Horn) that I used with TS4.0 (brings back memories from 1998 - how soon we forget!). I have included the top summary of the DLL from the MS-Word documentation. Is anyone using this DLL with either of these two newer charting products (assuming it still works that is). I emailed Kim with a 10 year old email address to see if there may be an upgraded version but that email may bounce. Maybe he will pick it up here.

Thanks,
John.

HASHNUMB.DLL

This DLL is used to enhance Tradestation and SuperCharts programs by adding global variables to Easy Language. The main use of the DLL is to get around the 64K size limitation of Tradestation systems. A common problem, when writing large systems, is the error: "EXE CODE TOO LARGE". The DLL gets around this problem by allowing you to cascade Multiple Tradestation systems with each accessing a pool of global variables. The DLL also allows data to be shared between and across pages, systems, indicators, paintbars, and studies.

Another feature of the DLL is that it provides a means to read and write data from files. The global variables can be written to and read from CSV files, to allow easy integration with other programs such as Excel, AI or statistical packages. CSV (Comma Separated Values) files are a standard text format for data files under windows. A problem with Tradestation's Easy language print function is that when used in multiple systems to output large amounts of data, multiple line feeds are inserted into the record. This DLL allows data to be collected across multiple systems but appended to a file as one record.

The main advantage of this DLL, over others on the market, is the ability to store values symbolically (as well as by index). To store a value symbolically you just use a representative variable name. Most other DLLs only allow values to be stored by using a numeric index.

The global variables are represented as an object-attribute-value dictionary. The DLL provides a way to store a floating point value or a string at a specified objects attribute name. You can then retrieve the value by specifying the object and attribute names. The use of objects allows attributes to be grouped together in a meaningful way. For example a ‘Person’ object may have the attributes: age, sex, height and a ‘car’ object may have the attributes: color, cost, engine-size. In this DLL, values can also be stored in an object by an index, much like an array. For example, we may have an ‘Inflation rate’ object and store the actual rate by a numeric index made up from month and day, eg, 397, 697, 1297.

The system uses a hashing scheme to store data and so lookup is fast. All memory is dynamically allocated and the only limits are what windows can supply.

The DLL can be used with any Windows application, not just Tradestation. A demo program, HASHTEST.EXE, written in Visual Basic, is provided to demo the functionality of the DLL. The program employs a simple windows interface so you can play with the DLL.

There are 40 functions in the DLL that can be grouped into 5 based on functionality:

1) Storing (put) and Retrieving (get) by Symbolic Attribute (At)

1.1 Functions to Store Numbers

putAt
putAtPrec
putAtDef
getAt
getAtDef

1.2 Functions to Store Strings

putStringAt
putStringAtDef
getStringAt
getStringAtDef

getTypeAt


2) Storing and Retrieving by Index Number (No)

2.1 Functions to Store Numbers

putNo
putNoPrec
putNoDef
getNo
getNoDef

2.2 Functions to Store Strings

putStringNo
putStringNoDef
getStringNo
getStringNoDef

getTypeNo

3) Writing to File
openWriteCSV
appendCSV
appendDefCSV

4) Reading from File
openReadCSV
readNextCSV
readLineCSV
readNextDefCSV
readLineDefCSV
openWriteReadCSV

5) Miscelaneous Functions
cleanUp
setDefObj
setDefPrec
setMissing
setCrLf