forked from rubikplanet/ChanlunX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChanlunZb.h
129 lines (114 loc) · 5.18 KB
/
ChanlunZb.h
1
2
3
4
5
6
7
8
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#ifndef __CHANLUNZB_H__
#define __CHANLUNZB_H__
#include <windows.h>
#pragma pack(push,1)
// 函数(数据个数,输出,输入a,输入b,输入c)
typedef void(*pPluginFUNC)(int nCount, float *pOut, float *a, float *b, float *c);
typedef struct tagPluginTCalcFuncInfo
{
unsigned short nFuncMark; // 函数编号
pPluginFUNC pCallFunc; // 函数地址
} PluginTCalcFuncInfo;
/********************************************************************/
//******************************大智慧******************************//
/********************************************************************/
/*
///////////////////////////////////////////////////////////////////////////
大智慧扩展函数规范V1.10
1.本规范适用于大智慧1.10标准版和专业版公式系统.
2.扩展函数用于实现系统函数不能实现的特殊算法.
3.扩展函数用windows 32位动态连接库实现,建议使用Microsoft Visual C++编程.
4.调用时在公式编辑器中写"动态库名称@函数名称"(参数表)即可,例如下面函数可以写为"DZHFUNC@MYCMALOSE"(5)
5.动态连接库名称和函数名称可以自己定义.
6.使用时可以将动态库拷贝到大智慧目录下使用.
*/
///////////////////////////////////////////////////////////////////////////
//分析周期
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
{
long 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;
/////////////////////////////////////////////////////////////////////////////
//函数数据结构
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;
#ifdef __cplusplus
extern "C" {
#endif
/********************************************************************/
//******************************通达信******************************//
/********************************************************************/
__declspec(dllexport) BOOL RegisterTdxFunc(PluginTCalcFuncInfo **pInfo);
/********************************************************************/
//************************交易师 大智慧******************************//
/********************************************************************/
__declspec(dllexport) int WINAPI RUNMODE();
__declspec(dllexport) int WINAPI KXFX(CALCINFO* pData); // K线方向
__declspec(dllexport) int WINAPI KXBH(CALCINFO* pData); // K线包含
__declspec(dllexport) int WINAPI KXBH2VAR(CALCINFO* pData); // K线包含处理
__declspec(dllexport) int WINAPI KXBHG(CALCINFO* pData); // K线包含处理后的高
__declspec(dllexport) int WINAPI KXBHD(CALCINFO* pData); // K线包含处理后的低
__declspec(dllexport) int WINAPI BI(CALCINFO* pData); // 笔端点
__declspec(dllexport) int WINAPI DUANVAR(CALCINFO* pData); // 段端点
__declspec(dllexport) int WINAPI ZSZGVAR(CALCINFO* pData); // 中枢高
__declspec(dllexport) int WINAPI ZSZDVAR(CALCINFO* pData); // 中枢低
__declspec(dllexport) int WINAPI ZSSEVAR(CALCINFO* pData); // 中枢开始结束
__declspec(dllexport) int WINAPI ZSFXVAR(CALCINFO* pData); // 中枢方向
#ifdef __cplusplus
};
#endif
#pragma pack(pop)
#endif