愛好delphi的朋友嗎,有個例子,可以用delphi玩下金字塔的dll [金字塔]
- 咨詢內容:
經本人測試,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; //擴展數據,分筆成交買賣盤,注意:可能為 NULLParam1Start: Integer; //參數1有效位置
Param1: PSingle; //調用參數1
Param2: PSingle; //調用參數2
Param3: PSingle; //調用參數3
Param4: PSingle; //調用參數4ResultBuf: PSingleArray; //結果緩沖區
DataType: TDataType; //數據類型
FinData: PSingle; //財務數據
end;
implementationvar
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;
exportsxx1,xx2;
[此貼子已經被作者于2011-5-8 16:12:24編輯過]
end. - 金字塔客服:
另再補充一個,關于參數的問題,if (@pData.m_pfParam1 <> nil) and (@pData.m_pfParam2 <> nil) then
采用如是方式 - 用戶回復:
不好意思,再補充下,ResultBuf: PSingleArray; 通過這個返回序列值
- 網友回復:
不錯
- 上一篇:統計盈利天數
- 下一篇:誰有倉位初始化的原碼模版 謝謝
相關文章
-
沒有相關內容