您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 其他期货软件知识>>正文内容

爱好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;     //扩展数据,分笔成交买卖盘,注意:可能为 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.

    [此贴子已经被作者于2011-5-8 16:12:24编辑过]

     

  • 金字塔客服: 另再补充一个,关于参数的问题,if (@pData.m_pfParam1 <> nil) and (@pData.m_pfParam2 <> nil) then
    采用如是方式

     

  • 用户回复: 不好意思,再补充下,ResultBuf: PSingleArray;  通过这个返回序列值

     

  • 网友回复:

    不错


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容