当前位置:→ 股海网数据接口软件 → 正文
  • VS2015下的大智慧C语言接口宏文件FXJ.h

  • 相关简介:使用提示: 1.新建一个WIN32下的dll项目; 2.在上述项目中的头文件夹中新建FXJ.h文件,拷贝文件到其中; 3.在源文件夹中新建源文件,写入你的源文件代码; 4.在源文件夹中新建.def文件,建后不用动 5.生成项目的解决方案,即dll.

  • 文章来源:佚名发布时间:2021-01-24浏览次数:下载次数:0收藏:

使用提示:
1.新建一个WIN32下的dll项目;
2.在上述项目中的头文件夹中新建FXJ.h文件,拷贝文件到其中;
3.在源文件夹中新建源文件,写入你的源文件代码;
4.在源文件夹中新建.def文件,建后不用动
5.生成项目的解决方案,即dll. 


//#include <windows.h>
//#include <time.h>


#ifndef __DzhFUNC_H_INCLUDE
#define __DzhFUNC_H_INCLUDE

//如果是64位的下面语句就改为#define WIN64
#define WIN32

/*
///////////////////////////////////////////////////////////////////////////
大智慧扩展函数规范V1.10
1.本规范适用于大智慧1.10标准版和专业版公式系统.
2.扩展函数用于实现系统函数不能实现的特殊算法.
3.扩展函数用windows 32位动态连接库实现,建议使用Microsoft Visual C++编程.
4.调用时在公式编辑器中写"动态库名称@函数名称"(参数表)即可,例如下面函数可以写为"DZHFUNC@MYCMALOSE"(5)
5.动态连接库名称和函数名称可以自己定义.
6.使用时可以将动态库拷贝到大智慧目录下使用.
*/

#ifdef __cplusplus
extern "C"
{
#endif //__cplusplus

        ///////////////////////////////////////////////////////////////////////////
        //分析周期
        enum DATA_TYPE
        {
                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                                        //多日线
        };

        /////////////////////////////////////////////////////////////////////////
        //基本数据

        typedef struct tagSTKDATA
        {
                __time32_t        m_time;                        //时间,UCT
                float        m_fOpen;                //开盘
                float        m_fHigh;                //最高
                float        m_fLow;                        //最低
                float        m_fClose;                //收盘
                float        m_fVolume;                //成交量
                float        m_fAmount;                //成交额
                WORD        m_wAdvance;                //上涨家数(仅大盘有效)
                WORD        m_wDecline;                //下跌家数(仅大盘有效)
        } STKDATA;






        ////////////////////////////////////////////////////////////////////////////
        //扩展数据,用于描述分笔成交数据的买卖盘

        typedef union tagSTKDATAEx
        {
                struct
                {
                        float m_fBuyPrice[3];                //买1--买3价
                        float m_fBuyVol[3];                        //买1--买3量
                        float m_fSellPrice[3];                //卖1--卖3价       
                        float m_fSellVol[3];                //卖1--卖3量
                };
                float m_fDataEx[12];                        //保留
        } STKDATAEx;

        /////////////////////////////////////////////////////////////////////////////
        /*财务数据顺序(m_pfFinData内容)

        序号        内容

        0        总股本(万股),
        1        国家股,
        2        发起人法人股,
        3        法人股,
        4        B股,
        5        H股,
        6        流通A股,
        7        职工股,
        8        A2转配股,
        9        总资产(千元),
        10        流动资产,
        11        固定资产,
        12        无形资产,
        13        长期投资,
        14        流动负债,
        15        长期负债,
        16        资本公积金,
        17        每股公积金,
        18        股东权益,
        19        主营收入,
        20        主营利润,
        21        其他利润,
        22        营业利润,
        23        投资收益,
        24        补贴收入,
        25        营业外收支,
        26        上年损益调整,
        27        利润总额,
        28        税后利润,
        29        净利润,
        30        未分配利润,
        31        每股未分配,
        32        每股收益,
        33        每股净资产,
        34        调整每股净资,
        35        股东权益比,
        36        净资收益率
        */

        /////////////////////////////////////////////////////////////////////////////
        //函数数据结构



#ifdef WIN64

        typedef struct tagCALCINFO
        {
                const INT32                        m_dwSize;                                //结构大小
                const INT32                        m_dwVersion;                        //调用软件版本
                const INT64                        m_dwSerial;                                //调用软件序列号   //这里修改了
                const char*                        m_strStkLabel;                        //股票代码
                const BOOL                        m_bIndex;                                //大盘

                const INT32                  m_nNumData;                                //数据数量(pData,pDataEx,pResultBuf数据数量)
                const STKDATA*                m_pData;                                //常规数据,注意:当m_nNumData==0时可能为 NULL
                const STKDATAEx*        m_pDataEx;                                //扩展数据,分笔成交买卖盘,注意:可能为 NULL

                const INT32                        m_nParam1Start;                        //参数1有效位置
                const INT32                        spare;                                    //保留占位
                const float*                m_pfParam1;                                //调用参数1       
                const float*                m_pfParam2;                                //调用参数2
                const float*                m_pfParam3;                                //调用参数3
                const float*                m_pfParam4;                                //调用参数3

                float*                                m_pResultBuf;                        //结果缓冲区
                const DATA_TYPE                m_dataType;                                //数据类型
                const float*                m_pfFinData;                        //财务数据
        } CALCINFO;

#else

        typedef struct tagCALCINFO
        {
                const DWORD                        m_dwSize;                                //结构大小
                const DWORD                        m_dwVersion;                        //调用软件版本(V2.10 : 0x210)
                const DWORD                        m_dwSerial;                                //调用软件序列号
                const char* m_strStkLabel;                        //股票代码
                const BOOL                        m_bIndex;                                //大盘

                const int                        m_nNumData;                                //数据数量(pData,pDataEx,pResultBuf数据数量)
                const STKDATA* m_pData;                                //常规数据,注意:当m_nNumData==0时可能为 NULL
                const STKDATAEx* m_pDataEx;                                //扩展数据,分笔成交买卖盘,注意:可能为 NULL

                const int                        m_nParam1Start;                        //参数1有效位置
                const float* m_pfParam1;                                //调用参数1       
                const float* m_pfParam2;                                //调用参数2
                const float* m_pfParam3;                                //调用参数3
                const float* m_pfParam4;                                //调用参数3

                float* m_pResultBuf;                        //结果缓冲区
                const DATA_TYPE                m_dataType;                                //数据类型
                const float* m_pfFinData;                        //财务数据
        } CALCINFO;

#endif




        /*
        注:
        1.函数调用参数由m_pfParam1--m_pfParam4带入,若为NULL则表示该参数无效.
        2.当一个参数无效时,则其后的所有参数均无效.
        如:m_pfParam2为NULL,则m_pfParam3,m_pfParam4一定为NULL.
        3.参数1可以是常数参数或序列数参数,其余参数只能为常数参数.
        4.若m_nParam1Start<0, 则参数1为常数参数,参数等于*m_pfParam1;
        5.若m_nParam1Start>=0,则参数1为序列数参数,m_pfParam1指向一个浮点型数组,
        数组大小为m_nNumData,数据有效范围为m_nParam1Start--m_nNumData.
        在时间上m_pData[x] 与 m_pfParam1[x]是一致的
        */


        ///////////////////////////////////////////////////////////////////////////////////
        /* 函数输出

        __declspec(dllexport) int xxxxxxxx(CALCINFO* pData);        ---------- A
        __declspec(dllexport) int xxxxxxxxVAR(CALCINDO* pData);        ---------- B

        1.函数名称需全部大写.
        2.函数必须以上述A,B两种形式之一声明,请用实际函数名称替代xxxxxxxx;
        对于C++程序还需包括在 extern "C" {   } 括号中.
        3.上述形式A用于声明不带参数或全部参数为常数的函数;
        形式B用于声明参数1为序列数的函数;两种函数的区别在于后者以VAR结尾.
        4.函数计算结果用p>        5.函数返回-1表示错误或全部数据无效,否则返回第一个有效值位置,即:
        m_pResultBuf[返回值] -- m_pResultBuf[m_nNum>        6.函数名称长度不能超过15字节,动态连接库文件名不能超过9字节(不包括扩展名),动态库名称不能叫SYSTEM,EXPLORER
        7.编译时请请选择1字节对齐

        */

        //示例函数,使用时用实际名称替换
        __declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData);
        __declspec(dllexport) int WINAPI MYMAVAR(CALCINFO* pData);

        __declspec(dllexport) int WINAPI MYMACLOSE_CALC_PREV(CALCINFO* pData);
        __declspec(dllexport) int WINAPI MYMAVAR_CALC_PREV(CALCINFO* pData);


#ifdef __cplusplus
}
#endif //__cplusplus


#endif //__DZHFUNC_H_INCLUDE


举例如下:

// FxjFunc.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "FxjFunc.h"

BOOL APIENTRY DllMain(HANDLE hModule,
        DWORD  ul_reason_for_call,
        LPVOID lpReserved
        )
{
        switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
                break;
        }
        return TRUE;
}

//计算收盘价的均价,一个常数参数,表示计算周期
//调用方法:
//        MYMACLOSE(5)

__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
{
        float f, fTotal;
        int nPeriod, i, j;
        if (p>                p>                p>        {
                f = *p>                nPeriod = (int)f;                                        //参数1
                if (nPeriod>0)
                {
                        for (i = nPeriod - 1; i<p>                        {
                                fTotal = 0.0f;
                                for (j = 0; j<nPeriod; j++)                                        //累加
                                        fTotal += p>                                p>                        }
                        return nPeriod - 1;
                }
        }
        return -1;
}

/*
__declspec(dllexport) int WINAPI MYMACLOSE_CALC_PREV(CALCINFO* pData)
{
        if (p>        {
                float f = *p>                return ((int)f) - 1;
        }
        return 0;
}

//计算均价,2个参数,参数1为待求均线的数据,参数2表示计算周期
//调用方法:
//        MYMAVAR(CLOSE-OPEN,5)

__declspec(dllexport) int WINAPI MYMAVAR(CALCINFO* pData)
{
        float f, fTotal;
        const float* pValue;
        int nPeriod, nFirst, i, j;
        if (p>                p>                p>        {
                pValue = p>                nFirst = p>                f = *p>                nPeriod = (int)f;                                                        //参数2
                if (nFirst >= 0 && nPeriod>0)
                {
                        for (i = nFirst + nPeriod - 1; i<p>                        {
                                fTotal = 0.0f;
                                for (j = 0; j<nPeriod; j++)                                        //累加
                                        fTotal += p>                                p>                        }
                        return nFirst + nPeriod - 1;
                }
        }
        return -1;
}

__declspec(dllexport) int WINAPI MYMAVAR_CALC_PREV(CALCINFO* pData)
{
        if (p>        {
                float f = *p>                return ((int)f) - 1;
        }
        return 0;
}

*/ 

VS2015下的大智慧C语言接口宏文件FXJ.h

  • 下载资源所需积分

    0

  • 当前拥有积分

    0

上一篇:通达信打通L2工具V1.0  下一篇:没有了
股海网粉丝必读
公式解密、改选股联系QQ:78858997(有偿服务)点击查看详情...
股海网指标公式帮助使用说明!新手必读...
股海网新系统使用说明!新手必读...
股海网VIP用户组必读...
说说看法 0条看法
推荐资源

关于我们 - 联系我们 - 广告合作 - 下载声明 - 网站帮助 - 友情链接 - SiteMap - TOP
Copyright © 2020 铭网科技,All Rights Reserved.湘ICP备09016573号-10
本站所有广告和与股海网均无关系,请股友自行判断真假!股海网客服QQ:78858997
股海网股票软件下载中心
股海网股票书籍下载中心 湘公网安备43108102000040号