C++ Tester 1

Class Hierarchy

// STL

#include <iostream>

#include <map>

#include <string>

#include <vector>

// STL

#include <sstream>

// Boost

#include <boost/date_time/posix_time/posix_time.hpp>

//

#include "Bar.h"

#include "FileDriver.h"

#include "DriverException.h"

#include "M1Series.h"

#include "M1SeriesException.h"

#include "CSVDriver.h"

#include "M1DB.h"

int main()

{

    const std::string begin_date="1105315200";

    const std::string end_date="1105502400";

    const std::string eurusd_dbfile="./EURUSD240.csv";

    const std::string eurusd_symbol = "EURUSD";

    std::istringstream stream1;

    std::istringstream stream2;

    stream1.str(begin_date);

    stream2.str(end_date);

    std::time_t tt1;

    std::time_t tt2;

    stream1 >> tt1;

    stream2 >> tt2;

    try

    {

      std::cout << "Loading " << eurusd_dbfile << " from "

      << boost::posix_time::from_time_t(tt1) << " to "

      << boost::posix_time::from_time_t(tt2) << "..." << std::endl;

      M1DB::instance().load(eurusd_symbol,

                            eurusd_dbfile,

                            M1DB::CSV,

                            boost::posix_time::from_time_t(tt1),

                            boost::posix_time::from_time_t(tt2)

                            );

      const M1Series&  eurusd_db = M1DB::instance().get(eurusd_symbol);

      std::cout<<std::endl;

 

    std::cout<<"Map:

"<<boost::posix_time::from_time_t(tt1)<<"

"<<boost::posix_time::from_time_t(tt2)<<std::endl;

      std::cout << "EURUSD Records: " << eurusd_db.size() << std::endl;

      std::cout << "EURUSD First: " << eurusd_db.first() << std::endl;

      std::cout << "EURUSD Last: " << eurusd_db.last() << std::endl;

      std::cout << "EURUSD Period: " << eurusd_db.period() << std::endl;

      std::cout << "EURUSD Total duration: " << eurusd_db.duration() << std::endl;

    } catch( std::exception& ex ) {

    std::cerr << ex.what() << std::endl;

    exit(EXIT_FAILURE);

  }

    //std::cout << "Hello world!" << std::endl;

    return 0;

}