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

Re: DLL adventure



PureBytes Links

Trading Reference Links

----Original Message-----
From: Barry Kaufman <102577.325@xxxxxxxxxxxxxx>
To: omega-list@xxxxxxxxxx <omega-list@xxxxxxxxxx>; code-list@xxxxxxxxxxxxx
<code-list@xxxxxxxxxxxxx>
Date: Saturday, May 29, 1999 4:15 PM
Subject: DLL adventure

>1)   Omega's USERDLLS.WRI states that the EL DLL interface will support
>the following data types:  BYTE, CHAR, INT, WORD, LONG, DWORD, FLOAT,
>DOUBLE, BOOL.  I thought that EL was limited to single precision float,
>character string and TRUE - FALSE.  Basic will handle all of those other
>data types but what good is it to pass them back and fourth to EL?

They mean the DLL interface was supposed to support all those types, but it
doesn't seem to.   There doesn't seem any way to return a BOOL (True-False)
value to Easy Language.   Perhaps sometime in the late 80's Omega intended that
capability would exist.
>
>2)  Regarding TS_KIT that comes with TS and SC.  I sort of see the
>usefulness of TS_KIT.DLL.  However, what use is TS_KIT.H and TS_KIT.LIB
>to me?  Perhaps for "C", but compiled Basic needs no header file and the
>Basic DLL can call another DLL.  So, are the H and LIB files strictly
>for C?

You can put you own headers in or whatever your program requires to compile.
In order to do a static link you will need to reference TS_KIT.LIB in the list
of your link libraries.   TS Charting seems to do a dynamic link to the user
program so you will need to generate a DLL that uses the standard "C" linkage
that TS Charting expects.

>
>3)  The only documentation I've seen on interfacing EL to a DLL is
>Omega's USERDLLS.WRI, the Investment Engineering's Global Variables
>documentation and HASHNUMS documentation.  The Omega DLL stuff is
>vintage 1992.  Has Omega ever updated?  Is there any other documentation
>on this subject?

Omega is in the process of releasing the 32-bit version of TS 2000 now, but even
userdlls.wri seems to have been dropped for TS 2000.   I'm not aware of any
other documentation.

It seems Omega (Bill Cruz) is convinced that Omega users only want Easy Language
and users will pay Solution Providers to do everyting else.     However support
for the Easy Language DLL API and data base API is provided by Developer support
at Omega: devsupport@xxxxxxxxxxxxxxxxxx    Be aware if you ask about a
capability that the Omega DLL API doesn't have "no reponse" means "we don't have
that capability".

I wonder why it's called "Developer" support, but perhaps Omega thinks a
developer is another name for a "Solution Provider".   In any case they have
answered a few questions.   Perhaps they haven't noticed I'm not a Solution
Provider.

>
>Questions for this case are:
>
>a)  Say the DLL gets the data series from TS and calculates the
>delayless MA for each bar in the series when CurrentBar = 1?  TS then
>gets the delayless MA for each bar from the DLL as TS moves forward for
>each bar (when CurrentBar is > 1).  So, how can we get data for bars in
>the future while CurrentBar = 1?  That data does exist in a file
>previously downloaded by the Omega Downloader.  And, when we key in an
>optimization run, how do we prevent TS from re-running CurrentBar = 1
>over and over again?  Is it as simple as setting a switch after the
>first pass, to skip initialization (calculating MA's) forever more?

For TS 4, TS Charting will likely return 0 for any price or value beyond the
current bar.   TradeStation Charting doesn't seem to be oriented around "data
series".
>
>b)  If it is not possible for TS to look forward in the historical data
>series when CurrentBar = 1, then can TS be forced to do two passes?  On
>first pass get and move the data to the DLL which will calculate MA's.
>On second pass run the trading system or plot the indicator.  On
>optimization runs, don't make the DLL calculate MA's again.

You can manually turn the indicator Status off and on again.   Also using your
DLL you could save whatever data you want in a dll array and re-read the array
in your dll.     You seems to be correct that using a DLL seems to get around
the code size limitations of Easy Language and it's considerably  more accurate.

__ Chris Baker