Qt 股票资金流向评估,分析成交额、净流入、大单净流入、小单净流入,评估出资金流向。
QString pinggu = QStringLiteral("");
{
double total = getTotal();
double jingliuru = getJingliuru();
double dadan = getDadan();
double xiaodan = getXiaodan;
double percent = 0.25;
if ((total < 1000) && ((qAbs(jingliuru) / total) <= 0.1))
{
pinggu = QStringLiteral("持平");
}
else if (dadan > 0 && xiaodan > 0)
{
double min = qMin(dadan, xiaodan);
double max = qMax(dadan, xiaodan);
double ratio = min / max;
if (jingliuru < 2000)
{
if (ratio >= percent)
{
if ((qAbs(jingliuru) / total) > 0.2)
{
pinggu = QStringLiteral("资金流入");
}
else
{
pinggu = QStringLiteral("资金小幅流入");
}
}
else if (dadan == max)
{
if ((qAbs(dadan) / total) > 0.2)
{
pinggu = QStringLiteral("大单流入");
}
else
{
pinggu = QStringLiteral("大单小幅流入");
}
}
else if (xiaodan == max)
{
if ((qAbs(xiaodan) / total) > 0.2)
{
pinggu = QStringLiteral("小单流入");
}
else
{
pinggu = QStringLiteral("小单小幅流入");
}
}
}
else if (jingliuru > 2000 && jingliuru < 8000)
{
if (ratio >= percent)
{
pinggu = QStringLiteral("资金流入");
}
else if (dadan == max)
{
pinggu = QStringLiteral("大单流入");
}
else if (xiaodan == max)
{
pinggu = QStringLiteral("小单流入");
}
}
else if (jingliuru > 8000)
{
if (ratio >= percent)
{
pinggu = QStringLiteral("资金大幅流入");
}
else if (dadan == max)
{
pinggu = QStringLiteral("大单大幅流入");
}
else if (xiaodan == max)
{
pinggu = QStringLiteral("小单大幅流入");
}
}
}
else if (dadan > 0 && xiaodan < 0)
{
double sum = dadan + xiaodan;
if (sum > 0)
{
if (sum < 2000)
{
if ((qAbs(sum) / total) < 0.1)
{
if (total > 8000)
{
if (sum > 300)
{
pinggu = QStringLiteral("大单小幅流入");
}
else
{
pinggu = QStringLiteral("放量持平");
}
}
else
{
pinggu = QStringLiteral("持平");
}
}
else
{
pinggu = QStringLiteral("大单小幅流入");
}
}
else if (sum > 2000 && sum < 8000)
{
pinggu = QStringLiteral("大单流入");
}
else if (sum > 8000)
{
pinggu = QStringLiteral("大单大幅流入");
}
}
else
{
if (sum > -2000)
{
if ((qAbs(sum) / total) < 0.1)
{
if (total > 8000)
{
if (sum < -300)
{
pinggu = QStringLiteral("小单小幅流出");
}
else
{
pinggu = QStringLiteral("放量持平");
}
}
else
{
pinggu = QStringLiteral("持平");
}
}
else
{
pinggu = QStringLiteral("小单小幅流出");
}
}
else if (sum < -2000 && sum > -8000)
{
pinggu = QStringLiteral("小单流出");
}
else if (sum < -8000)
{
pinggu = QStringLiteral("小单大幅流出");
}
}
}
else if (dadan < 0 && xiaodan > 0)
{
double sum = dadan + xiaodan;
if (sum > 0)
{
if (sum < 2000)
{
if ((qAbs(sum) / total) < 0.1)
{
if (total > 8000)
{
if (sum > 300)
{
pinggu = QStringLiteral("小单小幅流入");
}
else
{
pinggu = QStringLiteral("放量持平");
}
}
else
{
pinggu = QStringLiteral("持平");
}
}
else
{
pinggu = QStringLiteral("小单小幅流入");
}
}
else if (sum > 2000 && sum < 8000)
{
pinggu = QStringLiteral("小单流入");
}
else if (sum > 8000)
{
pinggu = QStringLiteral("小单大幅流入");
}
}
else
{
if (sum > -2000)
{
if ((qAbs(sum) / total) < 0.1)
{
if (total > 8000)
{
if (sum < -300)
{
pinggu = QStringLiteral("大单小幅流出");
}
else
{
pinggu = QStringLiteral("放量持平");
}
}
else
{
pinggu = QStringLiteral("持平");
}
}
else
{
pinggu = QStringLiteral("大单小幅流出");
}
}
else if (sum < -2000 && sum > -8000)
{
pinggu = QStringLiteral("大单流出");
}
else if (sum < -8000)
{
pinggu = QStringLiteral("大单大幅流出");
}
}
}
else if (dadan < 0 && xiaodan < 0)
{
double min = qMin(dadan, xiaodan);
double max = qMax(dadan, xiaodan);
double ratio = max / min;
if (jingliuru > -2000)
{
if (ratio >= percent)
{
if ((qAbs(jingliuru) / total) > 0.2)
{
pinggu = QStringLiteral("资金流出");
}
else
{
pinggu = QStringLiteral("资金小幅流出");
}
}
else if (dadan == min)
{
if ((qAbs(dadan) / total) > 0.2)
{
pinggu = QStringLiteral("大单流出");
}
else
{
pinggu = QStringLiteral("大单小幅流出");
}
}
else if (xiaodan == min)
{
if ((qAbs(xiaodan) / total) > 0.2)
{
pinggu = QStringLiteral("小单流出");
}
else
{
pinggu = QStringLiteral("小单小幅流出");
}
}
}
else if (jingliuru < -2000 && jingliuru > -8000)
{
if (ratio >= percent)
{
pinggu = QStringLiteral("资金流出");
}
else if (dadan == min)
{
pinggu = QStringLiteral("大单流出");
}
else if (xiaodan == min)
{
pinggu = QStringLiteral("小单流出");
}
}
else if (jingliuru < -8000)
{
if (ratio >= percent)
{
pinggu = QStringLiteral("资金大幅流出");
}
else if (dadan == min)
{
pinggu = QStringLiteral("大单大幅流出");
}
else if (xiaodan == min)
{
pinggu = QStringLiteral("小单大幅流出");
}
}
}
else if (dadan == 0)
{
if (xiaodan > 0)
{
if (xiaodan < 1000)
{
pinggu = QStringLiteral("小单小幅流入");
}
else if (xiaodan > 1000 && xiaodan < 5000)
{
pinggu = QStringLiteral("小单流入");
}
else if (xiaodan > 5000)
{
pinggu = QStringLiteral("小单大幅流入");
}
}
else if (xiaodan < 0)
{
if (xiaodan > -1000)
{
pinggu = QStringLiteral("小单小幅流出");
}
else if (xiaodan < -1000 && xiaodan > -5000)
{
pinggu = QStringLiteral("小单流出");
}
else if (xiaodan < -5000)
{
pinggu = QStringLiteral("小单大幅流出");
}
}
}
else if (xiaodan == 0)
{
if (dadan > 0)
{
if (dadan < 1000)
{
pinggu = QStringLiteral("大单小幅流入");
}
else if (dadan > 1000 && dadan < 5000)
{
pinggu = QStringLiteral("大单流入");
}
else if (dadan > 5000)
{
pinggu = QStringLiteral("大单大幅流入");
}
}
else if (dadan < 0)
{
if (dadan > -1000)
{
pinggu = QStringLiteral("大单小幅流出");
}
else if (dadan < -1000 && dadan > -5000)
{
pinggu = QStringLiteral("大单流出");
}
else if (dadan < -5000)
{
pinggu = QStringLiteral("大单大幅流出");
}
}
}
}