经本人测试,ok没问题
unit FxjFunc;
interface
uses Types;
type
///////////////////////////////////////////////////////////////////////////
//分析周期
TDataType = (
TICK_DATA=2, //分笔成交
MIN1_DATA, //1分钟线
MIN5_DATA, //5分钟线
MIN15_DATA, //15分钟线
MIN30_DATA, //30分钟线
MIN60_DATA, //60分钟线
DAY_DATA, //日线
WEEK_DATA, //周线
MONTH_DATA, //月线
MULTI_DATA //多日线
);
///////////////////////////////////////////////////////////////////////////
//基本数据
PStkData = ^TStkData;
TStkData = packed record
Time: LongWord; //时间,UCT
Open: Single; //开盘
High: Single; //最高
Low: Single; //最低
Close: Single; //收盘
Volume: Single; //成交量
Amount: Single; //成交额
Advance: Word; //上涨家数(仅大盘有效)
Decline: Word; //下跌家数(仅大盘有效)
end;
////////////////////////////////////////////////////////////////////////////
//基本数据 [数组]
PStkDataArray = ^TStkDataArray;
TStkDataArray = array[0..$EFFF] of TStkData;
////////////////////////////////////////////////////////////////////////////
//扩展数据,用于描述分笔成交数据的买卖盘
PStkDataEx = ^TStkDataEx;
TStkDataEx = packed record
case Integer of
0: (
BuyPrice: array[0..2] of Single; //买1--买3价
BuyVol: array[0..2] of Single; //买1--买3量
SellPrice:array[0..2] of Single; //卖1--卖3价
SellVol: array[0..2] of Single; //卖1--卖3量
);
1: (
DataEx: array[0..11] of Single; //保留
);
end;
/////////////////////////////////////////////////////////////////////////////
//函数数据结构
TSingleArray = array[0..$EFFF] of Single;
PSingleArray = ^TSingleArray;
PCalcInfo = ^TCalcInfo;
TCalcInfo = packed record
Size: DWORD; //结构大小
Version: DWORD; //调用软件版本(V2.10 : 0x210)
Serial: DWORD; //调用软件序列号
StkLabel: PChar; //股票代码
Index: LongBool; //大盘
NumData: Integer; //数据数量(pData,pDataEx,pResultBuf数据数量)
Data: PStkDataArray; //常规数据,注意:当m_nNumData==0时可能为 NULL
DataEx: PStkDataEx; //扩展数据,分笔成交买卖盘,注意:可能为 NULL
Param1Start: Integer; //参数1有效位置
Param1: PSingle; //调用参数1
Param2: PSingle; //调用参数2
Param3: PSingle; //调用参数3
Param4: PSingle; //调用参数4
ResultBuf: PSingleArray; //结果缓冲区
DataType: TDataType; //数据类型
FinData: PSingle; //财务数据
end;
implementation
var
pr : array[0..$EFFF] of Tpr;
prNum, duNum : integer;
//============================================================================
// 将数据拷贝到 pr数组中
procedure CopyDataTo_Pr(data: PCalcInfo);
var
i:integer;
begin
prNum := data.NumData;
for i := 0 to prNum-1 do
begin
pr[i].hprice := data.Data[i].High;
pr[i].lprice := data.Data[i].Low;
pr[i].Time := data.Data[i].Time;
end;
end;
//=============================================================================
function xx1(data: PCalcInfo):integer;stdcall;
CopyDataTo_Pr(data);
//这里直接调用pr数组当K线数组用就行了
end;
function xx2(Data:PCalcInfo):integer;stdcall;
end;
exports
xx1,xx2;
end.
不错