量化交易的程序化算法需要依赖大量的数据分析和模型建立。因此,在使用量化机器人进行交易时,需要保证数据的真实性和准确性。一方面,需要确保数据来源的可靠性和数据的完整性。
量化交易需要持续不断地进行,以保持交易效果的稳定性和良好性。因此,在使用量化机器人进行交易时,需要合理设置交易频率和交易时间,以确保交易的持续性和及时性。同时,要关注数据更新和模型调整,及时更新交易策略和调整交易参数,以适应市场的变化
std::vector TensorStatistic::computeScaleADMM() {
std::vector scaleValue(mOriginTensor->channel(), 0.0f);
const int count = mOriginTensor->elementSize();
float max = 0;
const float bound = 127;
const float* originData = mOriginTensor->host<float>();
for (int i = 0; i < count; i++) {
float absData = std::fabs(originData[i]);
if (absData > max) {
max = absData;
}
}
float alpha = max / (bound * 2.5);
// DLOG(INFO) << "alpha init: " << alpha;
const int maxStep = 300;
float sum1 = 0;
float sum2 = 0;
float invAlpha;
for (int i = 0; i < maxStep; i++) {
sum1 = 0;
sum2 = 0;
invAlpha = 1 / alpha;
for (int i = 0; i < count; i++) {
auto origin = originData[i];
auto dataQuant = std::roundf(origin * invAlpha);
dataQuant = std::fmin(bound, std::fmax(-bound, dataQuant));
sum1 += (dataQuant * origin);
sum2 += (dataQuant * dataQuant);
}
alpha = sum1 / sum2;
}
// DLOG(INFO) << "alpha final: " << alpha;
std::fill(scaleValue.begin(), scaleValue.end(), alpha);
return scaleValue;
}