社区讨论
炒股求助
学术版参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mjjnxzit
- 此快照首次捕获于
- 2025/12/24 14:59 2 个月前
- 此快照最后确认于
- 2025/12/24 15:11 2 个月前
啥也没干一直 DONE,不是TLE就是RE
求debug,或者求一份能正常跑的代码
CPP#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n, D; //股票数,天数
ll m; //初始资金
int L; //交易最小单位
double _alpha; //手续费
int com_min; //最低手续费
double _beta; //卖出税率
int Kmax; //单日委托上限
void readline(string &to) {
getline(cin, to);
}
string op;
struct Stock {
string date, code; //交易日、股票代码
double open; //开盘价
double high, low, close; //最高价、最低价、收盘价
int volume; //成交量
double amount; //成交额
double amplitude; //振幅,表示百分数
double pct_chg; //涨跌幅(相对前日收盘,百分数)
double change; //涨跌额,元/股
double turnover; //换手率,百分数
};
vector<vector<Stock>> Datas;
double s2d(string str) {
double ret = 0;
int i;
for (i = 0; i < str.size(); i++) {
ret = ret * 10 + str[i] - '0';
if (str[i] == '.')
break;
}
if (i == str.size())
return ret;
i++;
double pw = 0.1;
for (; i < str.size(); i++, pw = pw * 0.1)
ret = ret + (str[i] - '0') * pw;
return ret;
}
int Read_Stock(Stock &to) {
string str;
cin >> str;
if (str[0] == 'F')
return 0;
int lst = 0;
int i = 0;
while (i < str.size() && str[i] != ',') i++;
// to.date = str.substr(lst, i - lst);
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.code = str.substr(lst, i - lst);
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.open = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.high = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.low = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.close = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.volume = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.amount = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.amplitude = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.pct_chg = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.change = s2d(str.substr(lst, i - lst));
lst = ++i;
while (i < str.size() && str[i] != ',') i++;
// to.turnover = s2d(str.substr(lst, i - lst));
return 1;
}
int Get_Stock(int x) { //读入第x天开盘时的股票信息,存入 0~n-1
for (int i = 0; i < n; i++)
if (!Read_Stock(Datas[x][i]))
return 0;
return 1;
}
struct Oper {
bool typ;
string code;
int cnt;
};
vector<Oper> opers;
void print(Oper x) {
cout << (x.typ ? "SELL " : "BUY ");
cout << x.code << ' ' << x.cnt << '\n';
// assert(x.cnt % L == 0);
}
void make_dec() { //做决策
}
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> op >> n >> D >> m >> L >> _alpha >> com_min >> _beta >> Kmax;
Datas.assign(D + 5, vector<Stock>(n + 1));
Get_Stock(0);
make_dec();
for (int days = 1; ; days++) {
// for (auto i: opers)
// print(i);
cout << "DONE";
fflush(stdout);
int fff = Get_Stock(days);
if (fff == 0)
break;
make_dec();
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...