就是
//读取上海市场的600000日线数据范例
PCALCINFO stData = {0};
stData.m_dataType = MIN5_DATA;//日线
stData.m_bIsPow = 1; //是否复权
stData.m_wMarket = 'JZ';
之中的stData.m_pMainData[i].m_timeDate,m_timeDate原先定义应该是date格式,要转成time_t格式
给你一个我们的自用转换函数
CTime COleDataTimeToCTime(COleDateTime& time)
{
CTime time2(time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond());
return time2;
}
使用范例:
time_t timeDate = COleDataTimeToCTime(stData.m_pMainData[i].m_timeDate).GetTime();
多谢,试试看看
出错啊
Compiling...
MainWindowDlg.cpp
E:\AddinDemo\MainWindowDlg.cpp(256) : error C2664: 'COleDataTimeToCTime' : cannot convert parameter 1 from 'double' to 'class COleDateTime &'
A reference that is not to 'const' cannot be bound to a non-lvalue
E:\AddinDemo\MainWindowDlg.cpp(256) : error C2228: left of '.GetTime' must have class/struct/union type
执行 cl.exe 时出错.
是不是函数的位置没放对,应该放在哪里呢
CTime COleDataTimeToCTime(COleDateTime& time)
{
CTime time2(time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond());
return time2;
}
void CMainWindowDlg::OnButton1Gedata()
{
//读取上海市场的600000日线数据范例
PCALCINFO stData = {0};
stData.m_dataType = MIN5_DATA;//日线
stData.m_bIsPow = 1; //是否复权
stData.m_wMarket = 'JZ';
strcpy(stData.m_szLabel,"IF00"); //读取600000 浦发银行数据
if(g_pMainFormework->GetDataInfo(&stData))
{
MTHSTHEAD hsthead;
CFile file;
file.Open( _T("D:\\Weisoft Stock\\mthsthead.hst"), CFile::modeRead );
file.SeekToBegin();
file.Read( &hsthead, sizeof(MTHSTHEAD) );
CFile tempFile(_T("D:\\MetaTrader NordFX\\history\\NordGroupInv-Real1\\IF00.hst"),CFile::modeCreate|CFile::modeWrite);
tempFile.SeekToBegin();
CArchive ar(&tempFile,CArchive::store);
ar.Write(&hsthead,sizeof(hsthead));
ar.Close();
tempFile.Close();
MTHST kline;
CString strText;
CString strText2;
CString str3;
time_t d_time;
float d_open,d_high,d_low,d_close,d_vol;
int size;
size=stData.m_nNumData;
for(int i = 0; i < 5; i++)
{
time_t d_time = COleDataTimeToCTime(stData.m_pMainData[i].m_timeDate).GetTime();
d_open=stData.m_pMainData[i].m_fOpen;
d_high=stData.m_pMainData[i].m_fHigh;
d_low=stData.m_pMainData[i].m_fLow;
d_close=stData.m_pMainData[i].m_fClose;
d_vol=stData.m_pMainData[i].m_fVolume;
CTime tm = d_time;
str3.Format("%d-%d-%d %d:%d:%d",tm.GetYear(),tm.GetMonth(),tm.GetDay(),tm.GetHour(),tm.GetMinute(),tm.GetSecond());
strText.Format("数据:%s %.1f %.1f %.1f %.1f %.0f",str3,d_open,d_high,d_low,d_close,d_vol);
AfxMessageBox(strText);
//....
COleDateTime timeTemp = stData.m_pMainData[i].m_timeDate;
time_t timeDate = COleDataTimeToCTime(timeTemp ).GetTime();
这样转化一下