TechUser.h
上传用户:usa_ovo
上传日期:2013-09-16
资源大小:113k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. /*
  2. Cross Platform Core Code.
  3. Copyright(R) 2001-2002 Balang Software.
  4. All rights reserved.
  5. Using:
  6. class CTechUser
  7. */
  8. #if !defined( __STKLIB_TECHUSER_H__ )
  9. #define __STKLIB_TECHUSER_H__
  10. #ifndef TECHUSER_API
  11. #define TECHUSER_API __declspec(dllexport)
  12. #endif
  13. #ifdef __cplusplus
  14. extern "C"
  15. {
  16. #endif //__cplusplus
  17. #pragma pack(1)
  18. typedef struct techuser_info_t {
  19. int m_nStructSize; // 以字节为单位表示的本结构大小
  20. char m_szName[64]; // 指标名称,以''为结尾,例如:随机指标
  21. char m_szShortName[16]; // 指标简称,以''为结尾,例如:KDJ
  22. int m_nLineCount; // 指标线个数,调用者根据该变量确定调用返回的计算所得值是否有效
  23. // 例如:m_nLineCount = 3,则 m_dValue1, m_dValue2, m_dValue3有效
  24. // m_nLineCount 应介于1至5之间
  25. char m_aszLineName[5][8];// 每条线的名称,前m_nLineCount个有效,注意每个名称应以''为结尾,
  26. // 即:名称不能超过7个字节
  27. int m_bAutoMA; // 当m_nLineCount = 1 时,该值有效,m_bAutoMA = true 时,自动加入
  28. // 平均线
  29. int m_nMADays; // 自动计算平均线时的均线日期
  30. int m_itsGoldenFork; // 如果指标 m_nLineCount = 2 或者 m_nLineCount = 1并自动计算平均
  31. // 线时,低位金叉发出的买卖信号
  32. int m_itsDeadFork; // 条件同上,高位死叉时的买卖信号
  33. /* 备注:其中 m_szName, m_szShortName, m_nLineCount必须赋值 */
  34. } TECHUSER_INFO, *PTECHUSER_INFO;
  35. typedef struct calculate_info_t {
  36. int m_nStructSize; // 以字节为单位表示的本结构大小
  37. CStock * m_pStock; // CStock指针,包含全部股票数据
  38. CStockInfo *m_pStockInfo; // CStockInfo指针,包含股票基本信息数据,该指针实际指向
  39. // m_pStock->m_stockinfo
  40. CKData * m_pKData; // CKData指针,包含要计算的K 线数据数组,该指针实际指向m_pStock的
  41. // 相应K 线周期成员变量,K 线周期以及是否复权等已经处理完毕,直接
  42. // 使用即可
  43. int m_nIndex; // 指向当前要计算指标的K 线位置的序号,即在pKData中的序号
  44. int m_bUseLast; // 当前值是否为上次计算所得值,如果m_bUseLast=TRUE,则m_dValue1,
  45. // m_dValue2,...为上次调用该指标的计算所得值
  46. // 以下为计算返回值
  47. double m_dValue1; // 计算所得指标线1值
  48. double m_dValue2; // 计算所得指标线2值
  49. double m_dValue3; // 计算所得指标线3值
  50. double m_dValue4; // 计算所得指标线4值
  51. double m_dValue5; // 计算所得指标线5值
  52. int m_nSignal; // 买卖信号,介于ITS_MIN与ITS_MAX之间
  53. } CALCULATE_INFO, *PCALCULATE_INFO;
  54. #pragma pack()
  55. #ifndef ITS_MIN
  56. // 买卖信号
  57. #define ITS_MIN -15
  58. #define ITS_SELLINTENSE -15 // 强烈卖出
  59. #define ITSG_SELLINTENSE -13 // 门限
  60. #define ITS_SELL -10 // 卖出
  61. #define ITSG_SELL -8 // 门限
  62. #define ITS_SELLFEEBLE -5 // 微弱卖出
  63. #define ITSG_SELLFEEBLE -3 // 门限
  64. #define ITS_NOTHING 0 // 无
  65. #define ITSG_BUYFEEBLE 3 // 门限
  66. #define ITS_BUYFEEBLE 5 // 微弱买进
  67. #define ITSG_BUY 8 // 门限
  68. #define ITS_BUY 10 // 买进
  69. #define ITSG_BUYINTENSE 13 // 门限
  70. #define ITS_BUYINTENSE 15 // 强烈买进
  71. #define ITS_MAX 15
  72. #endif
  73. TECHUSER_API UINT WINAPI GetTechUserCount();
  74. TECHUSER_API BOOL WINAPI GetTechUserInfo( UINT nID, PTECHUSER_INFO pInfo );
  75. TECHUSER_API BOOL WINAPI Calculate( UINT nID, PCALCULATE_INFO pInfo );
  76. TECHUSER_API BOOL WINAPI GetSignal( UINT nID, PCALCULATE_INFO pInfo );
  77. #ifdef __cplusplus
  78. }
  79. #endif //__cplusplus
  80. #endif //__STKLIB_TECHUSER_H__