PureBytes Links
Trading Reference Links
|
Tony,
I don't use PowerBasic, but the way I see your code working is that
you are trying to deal with the long date data as a MSXDataInfoRec
structure inside the MSXDataRec; when the date is MSXDateTime structure.
The psDate is a pointer to an array of MSXDateTime structres so must
be dealt with accordingly.
--- In equismetastock@xxxxxxxxxxxxxxx, Tony M <t4tonym@xxx> wrote:
>
> Hi,
>
> Anyone writing their own Metastock External Functions (MSX) with the
MDK who either:
> a) writes in (Power) BASIC rather than C++, and/or
> b) has enough experience with MSX DLL's to be able to help me ,
> could you please advise me regarding getting the Date array as a
function output from the MSX data structure.
>
> Below is an example of part of the code that I wrote to access
"DOHLCV" data.
> It works fine for the "OHLCV" part (the example shows "H"), but it
doesn't work for the "D" part.
> I assume that I am simply missing some required step, due to that
fact that the "OHLCV" parts are floating point variables,
> but "D" is data type "long". However the MDK manual does not make it
clear exactly what the required syntax is.
>
> I think that the MSX part of the MDK is great, but the manual is not
quite adequate.
> Please help, anyone .....
>
>
> Regards,
> Tony M
>
> Metastock MSX example follows:
>
> ===================================================================
>
> FUNCTION MyDate SDECL ALIAS "MyDate"(BYVAL a_psDataRec AS MSXDataRec
PTR, _
> BYVAL
a_psDataInfoArgs AS MSXDataInfoRecArgsArray PTR, _
> BYVAL
a_psNumericArgs AS MSXNumericArgsArray PTR, _
> BYVAL
a_psStringArgs AS MSXStringArgsArray PTR, _
> BYVAL
a_psCustomArgs AS MSXCustomArgsArray PTR, _
> BYVAL
a_psResultRec AS MSXResultRec PTR) _
> EXPORT AS LONG
>
> LOCAL l_bRtrn AS LONG
> l_bRtrn = %MSX_SUCCESS
>
> LOCAL l_psData AS MSXDataInfoRec PTR
> LOCAL l_iStartIndex AS LONG
> LOCAL l_iMaxIndex AS LONG
> DIM i AS INTEGER
> l_psData = @a_psDataInfoArgs.psDataInfoRecs(0) 'Input
data array
> l_iStartIndex = @l_psData.iFirstValid
> l_iMaxIndex = @l_psData.iLastValid
> @a_psResultRec.@xxx = @l_psData.iFirstValid
> @a_psResultRec.@xxx = @l_psData.iLastValid
>
> ' *** So far, down to here is all standard stuff for MSX functions
*****************
>
> LOCAL l_psHigh AS MSXDataInfoRec PTR '*** For
the "H" part of "DOHLC" data array ***
> l_psHigh = VARPTR(@a_psDataRec.sHigh)
>
>
>
> LOCAL l_psDate AS MSXDataInfoRec PTR '*** For
the "D" part of "DOHLC" data array ***
>
> l_psDate = VARPTR(@a_psDataRec.psDate)
>
> FOR i = l_iStartIndex TO l_iMaxIndex
> @a_psResultRec.@xxxxxxxxxxxxxx@pfValue[i] =
CSNG(@l_psHigh.@xxxxxxx[i]) '*** "H": THIS WORKS ***
> @a_psResultRec.@xxxxxxxxxxxxxx@pfValue[i] =
CLNG(@l_psDate.@xxxxxxx[i]) '*** "D": THIS DOESN'T ***
> NEXT i
>
> MyDate = l_bRtrn
> END FUNCTION
>
>
>
>
>
>
>
>
____________________________________________________________________________________
> The fish are biting.
> Get more visitors on your site using Yahoo! Search Marketing.
> http://searchmarketing.yahoo.com/arp/sponsoredsearch_v2.php
>
> [Non-text portions of this message have been removed]
>
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/equismetastock/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/equismetastock/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:equismetastock-digest@xxxxxxxxxxxxxxx
mailto:equismetastock-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
equismetastock-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|