前一阵借着川普胜选做了一阵虚拟货币,一个多月交易下来太累人了,我本人的交易风格比较激进,喜欢上大杠杆,平时盯盘太辛苦甚至会影响生活,搞得最后心累还亏钱,遂打算趁着大四没课写一个量化交易程序。
(本人机械系没有太多编程基础基本都是靠着gpt写的代码)
目前进行到参数调整部分,中间部分后面再做补充。
之前我写过一篇关于回测图表的文章,回测图表将一些处理过的数据可视化,但终究是人自己决定最终的参数,并且很多参数是需要多次运行结果对比才能判断优劣,非常的麻烦效果还可能不好,遂编写参数调整的程序。
# 配置策略参数的范围和间隔
PARAM_TEST_STRATEGY_PARAMS = {
'boll_period': np.arange(14, 30, 1), # 布林带周期:从 10 到 50,步长为 5
'boll_mult': np.arange(2, 3.5, 0.5), # 布林带标准差倍数:从 1.5 到 3,步长为 0.5
'atr_period': np.arange(10, 22, 2), # ATR周期:从 10 到 20,步长为 2
'volume_thresh': np.arange(1.0, 3.4, 0.3), # 成交量过滤系数:从 1.0 到 3.0,步长为 0.5
'atr_take_profit_factor': np.arange(0.5, 3, 0.5), # ATR 止盈倍数:从 1.02 到 1.2,步长为 0.01
'atr_stop_loss_factor': np.arange(0.5, 3, 0.5), # ATR 止损倍数:从 1.5 到 4.0,步长为 0.5
'fixed_take_profit_factor': np.arange(1.01, 1.2, 0.03), # 固定止盈倍数:从 1.02 到 1.2,步长为 0.01
'fixed_stop_loss_factor': np.arange(0.8, 0.99, 0.03), # 固定止损倍数:从 0.9 到 1.1,步长为 0.01
}
一开始的想法是为每个参数设置范围直接通过回测所有参数组合得到表现最好的参数组合,结果一运行发现有得回测几千万次(还是一个只有十天15分钟k线的数据集),轻薄本运行起来得上千个小时,直接放弃。
目前的想法是改用机器学习来求最佳参数,gpt给我的建议算法如下:
有兴趣或有经验的的朋友欢迎交流也欢迎指正。