欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → C++如何获取更多的历史数据和历史指标数据

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2410人关注过本帖平板打印复制链接

主题:C++如何获取更多的历史数据和历史指标数据

帅哥哟,离线,有人找我吗?
kooex
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:27 积分:0 威望:0 精华:0 注册:2017/3/28 16:08:14
C++如何获取更多的历史数据和历史指标数据  发帖心情 Post By:2017/3/31 8:39:50 [只看该作者]

如下代码,我需要获取15分钟K线的数据和MACD,SAR指标数据,但最多只能获取到14个,请问有什么办法能获取更多的吗?

STKINDIEX_EXTFUN_ST stFormulaData = {0};
stFormulaData.m_nMarket = 'JZ';
strcpy(stFormulaData.m_szLabel,"IF06"); //调用浦发银行数据
memset(stFormulaData.m_szIndiName, 0, 256);
//strcpy(stFormulaData.m_szIndiName,"MA.MA2(5,10,20,60)"); //调用MA指标的MA2指标线
strcpy(stFormulaData.m_szIndiName,"SAR.SARV"); //调用MA指标的MA2指标线
stFormulaData.m_nCoType = 0;
stFormulaData.m_nPeriod = 2; 
//stFormulaData.m_nPower = 1; 
stFormulaData.m_nDataNum = 1000; //调用最近1000周期数据

//通过扩展函数调用
STKINDIEX_EXTFUN_DATA_RET * pSARData = (STKINDIEX_EXTFUN_DATA_RET*)g_pMainFormework->ExpandFunction(&stFormulaData,STKINDIEX_EXTFUN);
memset(stFormulaData.m_szIndiName, 0, 256);
strcpy(stFormulaData.m_szIndiName,"MACD.DEA"); //调用MA指标的MA2指标线
STKINDIEX_EXTFUN_DATA_RET * pMACDData = (STKINDIEX_EXTFUN_DATA_RET*)g_pMainFormework->ExpandFunction(&stFormulaData,STKINDIEX_EXTFUN);

PCALCINFO stData = {0};
stData.m_dataType = MIN15_DATA;//日线
//stData.m_bIsPow = 1; //是否复权
stData.m_wMarket = 'JZ';
strcpy(stData.m_szLabel,"IF06"); //读取600000 浦发银行数据
if(g_pMainFormework->GetDataInfo(&stData)==0 || pSARData->m_nDataCount <= 0 || pMACDData->m_nDataCount <= 0)
{
AfxMessageBox("调用失败。");
return;
}

CString strMsg;
strMsg.Format("%d, %d, %d",stData.m_nNumData,pSARData->m_nDataCount,pMACDData->m_nDataCount);
AfxMessageBox(strMsg);

int nSize = pSARData->m_nDataCount;
if(nSize > pMACDData->m_nDataCount) nSize = pMACDData->m_nDataCount;
if(nSize > stData.m_nNumData) nSize = stData.m_nNumData;

CString strAllData;
for(int i=0; i<nSize; i++)
{
CString strOneData;
COleDateTime time = pSARData->m_pValues[i].m_timeDate;
strOneData.Format("%s,%f,%f,%f,%f,%f,%f,%f\n",time.Format("%Y/%m/%d %H:%M:%S"),stData.m_pMainData[i].m_fOpen, stData.m_pMainData[i].m_fHigh, stData.m_pMainData[i].m_fLow, stData.m_pMainData[i].m_fClose, stData.m_pMainData[i].m_fVolume, pSARData->m_pValues[i].m_dbValues, pMACDData->m_pValues[i].m_dbValues);
strAllData += strOneData;
}

CFile file;
file.Open("D:\\data.txt",CFile::modeCreate|CFile::modeReadWrite);
file.Write(strAllData,strAllData.GetLength());
file.Close();

AfxMessageBox("OK");
return;


 回到顶部