concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
好像是进程问题,如何解决
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
好像是进程问题,如何解决
可以贴下优化时候的参数配置截图和完整保存截图
您好,我也是bf optimization这个报错,请问怎么解决呢 谢谢!
子进程里的函数抛异常了,可以把njobs调成1看下底层输出的报错
请问在哪里调njobs呢,我在backtesting还有engine里都没有看到和njobs相关的代码。我把max_workers设置成了1,依旧报出相同的错误。谢谢!
你max_worker设成1底层应该会把报错信息输出的
您好, 我运行完回测,针对其中一个参数跑bf优化,但是跑出来的结果与我回测时的完全不一样(用的对应的那个参数),想知道为什么,以及有什么办法可以得到优化时每组的全部参数吗?谢谢!!我试了样例,没有出现这种情况。
在VeighNa中进行策略参数优化时,如果优化结果与单独回测结果不一致,可能由以下几个原因导致:
数据范围不一致:确保优化和单独回测时使用的数据范围(起止时间、K线周期等)完全一致。
参数设置差异:检查优化时是否设置了其他参数的变化范围,这些参数可能影响了最终结果。
随机性因素:如果策略中包含随机性(如随机数生成),可能导致每次运行结果不同。
多进程优化问题:暴力穷举优化(BF优化)使用多进程并行计算,如果策略代码中存在全局变量或非线程安全的操作,可能导致结果不一致。
在VeighNa中,可以通过以下方式获取优化时每组的全部参数:
暴力穷举优化:优化完成后,点击【优化结果】按钮,可以查看所有参数组合及其对应的目标函数值。
遗传算法优化:优化完成后,同样可以通过【优化结果】按钮查看所有参数组合及其对应的目标函数值。
自定义输出:在优化函数中,可以通过output
参数自定义输出方式,将每组的参数和结果保存到文件或数据库中。
例如,使用暴力穷举优化时,可以通过以下代码将优化结果保存到CSV文件中:
import pandas as pd
# 运行优化
results = engine.run_bf_optimization(...)
# 将结果转换为DataFrame
data = {
'参数': [str(result[0]) for result in results],
'目标函数值': [result[1] for result in results]
}
df = pd.DataFrame(data)
# 保存到CSV文件
df.to_csv('optimization_results.csv', index=False)
如果问题仍然存在,建议逐步排查上述可能的原因,或提供更多细节以便进一步分析。
我把max workers设置成1,bf优化还是有 process pool的进程报错,且没有任何底层的报错,请问如何报底层错来修改呢?谢谢!ga优化是一直没有响应
可以用示例策略试试看是否能复现错误