我正在尝试为股票交易机器人找到最佳变量,以获得最佳回报。即使只有少量数据,它也已经在执行数千亿次循环,这需要一段时间。当我用更多数据扩展它时,找到最佳变量需要更长的时间。
我正在做的是有多个嵌套循环,尝试每种不同的场景来确定获得最佳变量以获得最高回报。
下面是一个示例。虽然很明显这种情况的最佳变量是什么,但它只是我正在做的事情的模型,而不是项目中的代码,而只是我试图实现的目标的简化版本。
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? 还是有更好的方法?谢谢!
在超维参数空间上进行网格搜索(这对于您的循环所做的是必不可少的(似乎不是很有希望。但至少您可以增加网格的大小,并在第一次粗略扫描参数空间后优化搜索。
参数优化是一个巨大的领域,至少对于无法解析解决的通用目标函数,你能做的最好的事情就是应用启发式方法找到一些(希望是一个相当好的(局部最小值。
下坡单纯形方法非常容易实现且非常高效。 所以也许你想从这个开始。 考虑使用随机启动参数多次运行它。