金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2671|回复: 6

m_nMarket品种市场的枚举值咨询

[复制链接]

4

主题

25

帖子

25

积分

Rank: 1

等级: 新手上路

注册:
2022-4-5
曾用名:
发表于 2022-7-7 15:09 | 显示全部楼层 |阅读模式
C++程序开发中,关于AddinInterface.h中结构体BLOCK_STRUCT中的m_nMarket,请问具体的枚举值该怎么取?

例如上海的600000 (浦发银行)  blockStruct.m_nMarket='HS'
例如深圳的000001 (平安银行)  blockStruct.m_nMarket='ZS'

请问其他股票市场的blockStruct.m_nMarket如何取值,
例如 中小板 创业板 科创板



注:AddinInterface.h中BLOCK_STRUCT结构体描述如下
typedef struct  {
WORD m_nMarket;
char m_szLabel[10];
}BLOCK_STRUCT;



回复

使用道具 举报

4

主题

25

帖子

25

积分

Rank: 1

等级: 新手上路

注册:
2022-4-5
曾用名:
 楼主| 发表于 2022-7-7 16:33 | 显示全部楼层
补充说明:

创业板【股票代码:300开头】
科创板【股票代码:688开头】

blockStruct.m_nMarket in ('HS' 'ZS')读取明细产品列表时没有包含 “300开头的创业板”与“688开头的科创板”
回复

使用道具 举报

32

主题

8014

帖子

8024

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-7-8 09:15 | 显示全部楼层
本地测试是可以取到的,你代码是怎么写的
截图202207080915245730.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

25

帖子

25

积分

Rank: 1

等级: 新手上路

注册:
2022-4-5
曾用名:
 楼主| 发表于 2022-7-8 10:41 | 显示全部楼层
麻烦老师,

我是想利用AddinInterface.h中的接口GetReportDataxiang以获取给定wMarket的所有产品列表

AddinInterface.h接口定义如下:
        //取指定分类板块的品种数组
        //pBlock                存放品种的缓冲区地址
        //dwMaxCount        缓冲区存放品种数量大小
        //szName                为分类或者板块名称,如"上海A股"等
        //nMode                        为类别,0市场分组,1分类板块,2系统板块(品种栏对应)
        //返回值:返回读取到的品种数量   
        virtual DWORD GetReportData(BLOCK_STRUCT * pBlock, DWORD dwMaxCount, char * szName, int nMode) = 0;


--------------------------------------------------------------------------------------------------------------------------------------
我的程序如下,请老师看看“是否是我的传入参数用错了”?
例如nMode用错了, 导致取不到688***  30****开头的产品
注:本函数目前取60****    00****开头的股票是正常的

int CDataPrepareManage::BlockStructData(char * szName)
//调用的品种代码 调用的品种市场,比如上海为'HS' 深圳为'ZS'       
{
       
        //取指定分类板块的品种数组
        //szName为分类或者板块名称,如"上海A股"等,nMode为类别,0市场分组,1分类板块,2系统板块(品种栏对应)
        BLOCK_STRUCT pBlock[3000]; //尽可能分配一个大数组用户存放调取的板块数据
        DWORD dwMaxCount = 3000;//数组大小
        DWORD dwResult = g_pMainFormework->GetReportData(pBlock,dwMaxCount,szName, 0);

        if(dwResult > 0)
        {
                gBlock_Struct_Array.SetSize(dwResult);
                memcpy(gBlock_Struct_Array.GetData(),&pBlock,sizeof(BLOCK_STRUCT)*dwResult);
        }
        //LOG_DEBUG_INFO( "c:\\MyData.txt", "sizeof(BLOCK_STRUCT)*dwResult=%d %d %d",sizeof(BLOCK_STRUCT)*dwResult,sizeof(BLOCK_STRUCT),dwResult);
       
        return 0;
}
回复

使用道具 举报

1

主题

884

帖子

894

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-7-8 11:01 | 显示全部楼层
截图202207081100434008.png

目前金字塔是把上海A股跟创业板的分组分开的,你要分开2次取,光取A股是不行的
回复

使用道具 举报

4

主题

25

帖子

25

积分

Rank: 1

等级: 新手上路

注册:
2022-4-5
曾用名:
 楼主| 发表于 2022-7-8 13:03 | 显示全部楼层
关于老师所说的“目前金字塔是把上海A股跟创业板的分组分开的,你要分开2次取,光取A股是不行的”

请问如何分两次取?

第一次的参数是  DWORD dwResult = g_pMainFormework->GetReportData(pBlock,dwMaxCount,szName, 0);   //nMode为类别,0市场分组,1分类板块,2系统板块(品种栏对应)
源程序如下——它能取到上海A股60****列表与深圳A股00****列表,

       //取指定分类板块的品种数组
        //szName为分类或者板块名称,如"上海A股"等,nMode为类别,0市场分组,1分类板块,2系统板块(品种栏对应)
        BLOCK_STRUCT pBlock[3000]; //尽可能分配一个大数组用户存放调取的板块数据
        DWORD dwMaxCount = 3000;//数组大小
        DWORD dwResult = g_pMainFormework->GetReportData(pBlock,dwMaxCount,szName, 0);   //szName传入参数为HS ZS

本g_pMainFormework->GetReportData(pBlock,dwMaxCount,szName, 0)   在第二次执行时 传入参数该如何修改呢?  
具体而言:

1) 当调用的品种代码 为上海'HS'时,    第二次(科创板)的参数与第一次(上海A股)的GetReportData传入参数在哪里有区别呢? 即 参数如何调整才能取到“创业板68****”呢?
2) 当调用的品种代码 为深圳'ZS'时,    第二次(创业板)的参数与第一次(深圳A股)的GetReportData传入参数在哪里有区别呢? 即 参数如何调整才能取到“创业板30****”呢?

回复

使用道具 举报

1

主题

884

帖子

894

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-7-9 13:15 | 显示全部楼层
CArray<BLOCK_STRUCT,BLOCK_STRUCT&> arBlock;

        BLOCK_STRUCT pBlock[5000]; //尽可能分配一个大数组用户存放调取的板块数据
        DWORD dwMaxCount = 5000;//数组大小
        DWORD dwResult = g_pMainFormework->GetReportData(pBlock,dwMaxCount,"上海A股", 0);

for(int i = 0; i < (int)dwResult; i++)
{
   arBlock.Add(pBlock[i];
}

dwResult = g_pMainFormework->GetReportData(pBlock,dwMaxCount,"上海科创", 0);

for(int i = 0; i < (int)dwResult; i++)
{
   arBlock.Add(pBlock[i];
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-1-4 12:15 , Processed in 0.254497 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表