我试图为一个股票交易机器人找到最好的变量,以便获得最好的回报。即使只有少量的数据,它也已经在做数千亿次循环,这需要一段时间。当我使用更多的数据进行扩展时,找到最佳变量将需要更长的时间。
我正在做的是有多个嵌套循环,尝试每个不同的场景,以确定最佳变量,以获得最高的回报。
下面是一个例子。虽然很明显这个场景的最佳变量是什么,但它只是我正在做的事情的一个模型,并不是项目中的代码,而只是我试图实现的东西的简化版本。
let bestReturn = 0;
for (let variableOne = 0; variableOne < 10; variableOne++) {
for (let variableTwo = 0; variableTwo < 10; variableTwo++) {
for (let variableThree = 0; variableThree < 10; variableThree++) {
if ((variableOne * variableTwo * variableThree) > bestReturn) {
bestReturn = variableOne * variableTwo * variableThree
}
}
}
}我目前只是在我的Windows PC上运行这个程序,但是有没有处理这个过程更快的系统,比如Linux?或者有没有更好的方法来做到这一点?谢谢!
发布于 2020-01-29 19:17:31
在超维参数空间上进行网格搜索(这是循环所做的基本工作)似乎不是很有前途。但至少您可以增加网格的大小,并在第一次粗略扫描参数空间后改进搜索。
参数优化是一个巨大的领域,至少对于不能解析求解的通用目标函数来说,你能做的最好的就是应用启发式方法来找到一些(希望是一个相当好的)局部最小值。
下坡单纯形方法非常容易实现,而且非常有效。所以也许你想从这个开始。考虑使用随机化的启动参数多次运行。
https://stackoverflow.com/questions/59941459
复制相似问题