C++如何獲取更多的歷史數據和歷史指標數據 [金字塔]
- 咨詢內容:
如下代碼,我需要獲取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;
- 金字塔客服: 打開圖表看下本地數據是否齊全。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容