
#include <iostream>
#include <fstream>
#include <iomanip>
#include <sstream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
struct one_data {
string time;
double last_price;
int amount, increment;
int buy, sale;
};
int main()
{
vector<one_data> data;
ifstream inFile("sc2004_20200212.csv", ios::out);
if (!inFile)
{
cout << "打开文件失败!" << endl;
exit(1);
}
string oneline,now_time;
getline(inFile, oneline);
one_data onedata;
while (getline(inFile, oneline)) {
istringstream readstr(oneline);
for (int i = 0; i < 44; i++) {
getline(readstr, oneline, ',');
if (i == 4) {
onedata.last_price = stof(oneline);
}
else if (i == 11) {
onedata.amount = stoi(oneline);
}
else if (i == 20) {
onedata.time = oneline.substr(0,oneline.size()-3);
}
else if (i == 23) {
onedata.buy= stoi(oneline);
}
else if (i == 25) {
onedata.sale = stoi(oneline);
break;
}
}
if (data.size() > 1 && data[data.size() - 1].time == onedata.time) {
onedata.buy += data[data.size() - 1].buy;
onedata.sale += data[data.size() - 1].sale;
data.pop_back();
}
data.push_back(onedata);
if (data.size() > 1) {
data[data.size() - 1].increment = data[data.size() - 1].amount - data[data.size() - 2].amount;
}
else {
data[data.size() - 1].increment = data[data.size() - 1].amount;
}
}
ofstream outFile("out.csv", ios::out);
int count_1 = 0, count_2 = 0;
outFile << "时间,最新价格,成交量" << endl;
for(int i = 0; i < data.size(); i++) {
outFile << data[i].time << ",";
outFile << data[i].last_price << ",";
outFile << data[i].increment << endl;
double rate = (double)data[i].buy / (double)data[i].sale;
cout << rate << endl;
if (rate > 1.0 && i < data.size()-1) {
count_1++;
if (data[i].last_price < data[i + 1].last_price)count_2++;
}
}
cout << "概率:" << (double)count_2 / (double)count_1;
return 0;
}