龙哥量化:Python量化不要自己造轮子,龙哥使用的量化平台经验分享
筛选出来我常用的几个期货量化TB交易开拓者 文华8金字塔股票量化qmt迅投量化应该是把更多的时间放在策略研究上在成熟的软件 而不是担心你一个新手写的量化策略泄露了花费时间精力自己造轮子。更不用担心选股公式泄露网上的公式多如牛毛。说一下 近几个月的研究成果或者经验后续会继续更新本篇如果时间允许可能规划写本量化方面的电子书。我一直在用TB交易开拓者研究期货量化 当然金字塔量化文华8量化 都会用也会写代码 但是还是更习惯TB。经验一 需要优化的参数最多就只能是两个而且计算次数不能太多 比如 双均线策略再加固定止损 就有三个参数了 为了避免过度优化大均线固定用120不要优化小均线参数可优化范围4--30步长为2 固定止损可优化范围20--80步长为5计算次数是30-4/211480-20/51 1314*13182次运算然后优化完参数看策略指标的交易次数 至少是运算次数的3倍。 这段话虽然简短 但是也是几个月辛苦研究的经验切记 。针对经验一说点题外话我也有一些松鼠量化的策略他们的软广到处都是 回测的样本内数据收益曲线都很好 但是测试样本外数据就阳痿了。另外我为啥说参数不能多 也是踩过坑我最多的参数用了12个运算次数天文数字学习了啥啥遗传算法没学会哈哈也在拼多多租用24核的云服务器优化参数耗用的时间精力还有心气真的一眼难尽。 结果就是运算次数太多 花费很长时间参数太多过度优化 优化出来的一组参数只适用这段特定的样本内数据样本外数据测试无一例外的阳痿。经验二用合约指数比如TB的000指数或者文华的螺纹指数优化的策略样本内回测表现很好 样本外表现也好 但是指数合约和主力合约存在误差比如螺纹钢在切换主力前后1个月的误差大切换之后误差减小每年三个主力合约又比如苯乙烯白银这些频繁的切换主力合约误差就不停的忽大忽小。 真实的交易是交易主力合约一般的做法是在指数合约出现开多或开空的信号 映射主力合约 用主力合约下单。 这种误差举一个特殊的例子在9:00 这一刻指数合约出现开多信号指数合约是3500主力合约是3480在10:15这一刻出现平多信号指数合约是3600主力合约是3590计算指数合约平仓盈利100点主力合约盈利90点这种累积的误差非常吓人在指数上测试是非常稳定赚钱的但是一交易就亏。又啰嗦一句 用指数回测并不是一无是处对一些追涨杀跌的突破策略指数合约能避免一些假突破也有用指数合约映射主力合约次主力合约的研究方法。这并不是一无是处的。经验三从2020年开始大放水的经济政策导致商品波动明显加剧这对策略回测的影响也是非常明显的 比如策略是15分钟周期回测的样本内数据是2020年1月1日到2024年12月25日 一共27020根K线大概1000次交易样本外数据用2020年之前的之前的波动率明显小呀 测试一下能赚钱吗反正目前为止我研究的策略被这个问题难住了用15分钟或者30分钟的周期回测前段后段数据波动性明显差的大导致样本外数据测试不能稳定赚钱如果用1分钟3分钟5分钟的周期回测策略的品种通用性又被降低比如2个小时内菜油豆油波幅100跳PTA甲醇波幅30跳一个本来靠波动幅度赚钱的策略只能适用部分品种。 当然有的大神策略通用性非常强我还在方面努力ing。经验四人工干预是否可行我的想法是可以顺着策略原来的方向特殊行情的特定点的不频繁的少量干预。比如我的策略是趋势突破策略突破之后就直接是一波非常顺畅的上涨行情在出现一个黄昏星的大阴线的收盘价平多黄昏星后跌了一小段此时我的人工干预让利润回吐减小但是策略信号仍然是多头我应该把多头接回来出现阳包阴或者十字线的K线形态 开多继续保持策略的多头。这种情况并不多见而且不要频繁干预也要注意文华指数在走震荡行情还是单边趋势行情尽量是文华指数在走震荡行情的时候干预。 干预的目的是多一点点利润能包住滑点减少一点明显的震荡磨损即可不能妄想人工干预会给策略本身有非常明显的优化。 当然我也想过也尝试过把人工干预的思路写成代码添加到策略中结果是稍有一点效果但不是特别优秀我还在这方面会继续花费时间 毕竟量化本来的逻辑就应该是多个开仓条件 多个平仓条件而不是固定的一个开仓条件一个平仓条件所以特殊行情特殊对待。比如突然有一天你策略本就是多头合约涨停那应该平多等待策略的下一个信号期货中涨停毕竟很少见利润落袋非常关键涨停又快速回调的概率远远大于继续大涨。经验五这几个经验之间没啥特定的顺序这里说一下平台的选择期货TB交易开拓者金字塔文华8MC现成的框架和数据研究都是免费的文华8用手机号可以体验2个月TB和金字塔写策略回测模拟交易都是免费的只有实盘才收费。股票掘金量化迅投量化聚宽都是稳定的免费的非常好的平台。我和大多数新手一样刚开始进入量化之门先怀疑平台会窃取我的策略然后想造轮子学习数据库行情数据获取清洗数据pyqt搭建行情界面策略回测后各种计算夏普最大回撤盈亏比等这些都需要大量的时间写代码前提是你会写代码 而且有这方面完整的学习资料到头来发现花费太多时间造轮子了而且会造轮子了却没有很多时间研究策略逻辑。此消彼长的嘛对于新手朋友我建议不要造轮子研究策略吧经验六我给客户代写技术指标和量化策略经常给客户解释同一个技术指标不通用所有的股票当然同一个技术指标也不通用一只股票的所有时间段。举例上证指数在2024年9月18日之前一段持续的下跌航运概念指数也是单边下跌然而智能交通概念指数是横线震荡行情细分行业银行指数是震荡上涨趋势同一个公式在这段时间的选股效果就天差地别。再举例一只股票经过一年半的下跌再经过一年的震荡这个时候就应该用macd类型的趋势指标了 如果再用kdj这种超买超卖的指标 在超买区极有可能出现kdj钝化失效超买区继续涨而不是到超买区就下跌。同理期货也是一样的同一个量化策略怎么能完全通用逐月切换主力合约2个月切换一次主力合约 4个月切换一次主力合约。再比如原油主导的沥青燃油低硫燃油液化气等早盘夜盘开盘时会频繁的出现大幅跳空一个正常适用螺纹钢的策略肯定不适用原油系列。再比如趋势性强的合约和震荡行情偏多的合约也不适用同一个策略。再比如3分钟适用的策略 用在15分钟上可能连回测的样本内行情都是亏钱的更不用说样本外数据了。