Login Page - Create Account

Support Board


Date/Time: Sun, 19 May 2024 02:34:36 +0000



Post From: create .scid files

[2014-06-12 21:32:07]
norvik - Posts: 22

This functions I use in my mfc application. sChart is like s_IntradayRecord type, but for some reasons, I use only int values.

BOOL CMainWindow::OnInitDialog()
{
  __super::OnInitDialog();
  
  memset(&sChart,0,sizeof(SierraChart));
  
  return TRUE;
}


void CMainWindow::CreateSCDataFile()
{  
  strncpy (s_header.FileTypeUniqueHeaderID, "SCID", 4);
  header.HeaderSize = sizeof(IntradayHeader);
  header.RecordSize = sizeof(SierraChart);
  header.Version = 1;
  header.Unused1 = 0;
  header.UTCStartIndex = 0;
  
  char Reserve[36];

  memset (header.Reserve, 0, sizeof(header.Reserve));
  
  char *filename = "C:\\SierraChart\\Data\\6RVM4-CME.scid";
  myFile.open(filename, ios::in | ios::out | ios::binary | ios::trunc);
  
  myFile.write ((char*) &header, sizeof IntradayHeader);
}

void CMainWindow::WriteTickDataToSCFile(int price,int volume,int numberoftrades,int value1,int value2)
{
  
   double varTime;
   SYSTEMTIME sysTime;
   GetSystemTime(&sysTime);

    SystemTimeToVariantTime(&sysTime, &varTime);

    sChart.sierraTime = varTime;
    
    sChart.sierraOpen = price;
    sChart.sierraLow = price;
    sChart.sierraHigh =price;
    sChart.sierraClose = price;
    
    sChart.NumTrades = numberoftrades;
    sChart.TotalVolume = volume;

    sChart.AskVolume = value2;
    sChart.BidVolume = value1;

    myFile.write((char*) &sChart, sizeof sChart);
    
}    

void CMainWindow::OnDestroy()
{
  myFile.close();
  __super::OnDestroy();  
}