量化交易

2025-07-04

昨天晚上突发奇想用近 3 天,涨幅超过 15%的币试了一下 2022 年回测,结果出乎意料的好。一年盈利最高 1.72 倍,最终 1.72 倍,最大回撤 25%。就这么一个简单到极点的策略

2022 年是币圈的大熊市的一年,之前用 bitget 的数据和五年 3 万倍的长线策略回测,这一年也才 1 倍多盈利

但是 2023 年用这个策略,或用 2020 到 2021 年的策略都赚不到钱,明明 2023 年是比特币从熊市走出的一年,真的很奇怪。

2025-07-03

最近两个月,基本没怎么关注消息推送。蓦然回首,错过了很多翻倍的币。我将投机这个过程梳理了一下,总共分为 4 个环节:

  1. 近期哪些币涨了,哪些币在涨
  2. 涨了的币中,该买哪个币
  3. 买了的币真的会继续涨吗
  4. 以上都是真金白银的投资,并不是只赚不赔,亏了怎么办。真的应该玩这个游戏吗?

如果我把第一步,扫盘,单独拆分出来做成服务,给赌狗们提供一点利他价值。会有人买单吗?

要认真做一款投机 APP 了,帮助回顾和选出大涨的币。

  1. 近 3 天,涨幅超过 15% 的币
  2. 近 1 周,涨幅超过 50% 的币
  3. 近 2 周,涨幅超过 100% 的币
  4. 近 1 个月,涨幅超过 200% 的币。用于回顾市场热点

以上涨幅都以区间内,最高最低点去计算,且时间上最高点要出现在最低点之后

2025-06-25

本来想着,快速搞出几个能赚钱的策略早点实盘赚到钱,但量化交易确实没有这么简单,很多想象中很好的策略根本经不起回测,每天都产生大量的想法去改进,但现有的回测效率太低,改起来也相当累。所以我打算调整方向,以提高回测效率为第一目标,把自己从天天回测中解脱出来。

  • 如何无代码或者低代码的进行回测?
  • 如何图表化呈现历史买卖点,辅助人复盘?
  • 如何进一步提高回测速度?

2025-06-24

4 年前,我第一次尝试用代码自动交易,当时没有想过回测,直接上的实盘交易程序,没有赚到钱,最后放弃了。而现在我重新开始写起了量化交易代码。目前在攻坚短线交易策略。

原先我觉得市场行情分为两种:

  1. 趋势开多开空会赚(趋势较为明显的一段时期,如 2024 年 11 月份的币圈)
  2. 趋势开多开空会亏(趋势不明显的一段时间,如 2024 年 12 月份到 2025 年 6 月初),震荡行情

但是以上是长线策略才会面临的两种行情,短线策略更为复杂。

我的趋势短线策略回测今年的 4,5 月份,两个月能赚 1 倍,还不错。但是在 1 到 3 月份回测效果很差几乎归零

于是我加入局部性原理,每 4 天一个策略周期,如果是亏的,就用相同的策略,但是倒转开仓方向。因为在我看来不是开多就是开空,如果亏钱,那就是方向没对。

用了这个办法后,效果确实不错,1 到 5 月总的是赚 1 倍多,最高能赚 2 倍多,但最大回撤很不好,而这个指标太过重要,这个指标不好的话实盘中会面临非常大的压力。于是继续思考,我猜测,会不会存在这样一种行情,开多开空都不对,都会亏。答案是有可能会,因为只考虑开仓还不够,还要考虑平仓。假如市场震荡剧烈,反复无常,在 RSI 还没达到止盈点的时候,就掉转方向爆仓了呢。于是我继续给局部性原理添加固定幅度止盈,效果又提升了一大截,1 到 3 月赚了 4 倍多,但只是 1 到 3 月赚,4 月和 5 月亏得很惨。说明还是不够完美

局部性原理

计算机领域最重要的定理之一,就是局部性原理,分为时间局部性和空间局部性。时间局部性原理简单来说就是最近最常访问的数据(包括指令),在接下来的时间里被访问的概率更大。空间局部性原理指的则是,被访问过的数据,其存储空间附近的数据更大概率被访问。局部性原理催生了计算机缓存架构的产生,是整个计算机缓存的理论基石。

那么金融市场是否存在同样的现象呢,答案是存在。

其实有这么一个哲学命题,说是一艘船,每隔一段时间换一块甲板,最终换的面目全非,那么从什么时候开始它不再是它?同样的,人的身体和心灵也在不断的变化之中,旧的细胞不断死亡,新的细胞不断产生,你还是以前的你吗,如果不是,那么从什么时候开始不是的呢?

万物都在渐变之中,局部性原理是普适的。

局部性+状态机

我给目前的量化策略制定了一个框架,总共 5 个回调函数:

  1. canOpenLong(),能否开多
  2. canOpenShort(),能否开空
  3. canCloseLong(),能否平多
  4. canCloseShort(),能否平空
  5. selectSymbol(),假如有多个币可以开多,多个币可以开空,如何进行选择

而我的局部性原理催生出一个状态机,包含三个状态,两种转换:

假如 4 天内是亏的,且四天内没有反转过(避免过度反转,过度反转不符合局部性),就反转开仓(原先是开多,现在就开空),如果反转后还是亏的,就开始计数,4 天内达到 6 次,就开始固定幅度止盈。

我用以上这套策略回测,3 个月赚 4 倍多,但之后两个月把赚的又亏光了

现在我打算把状态机的转换顺序换成先转为固定幅度止盈,再转为反向开仓

判断市场整体行情的办法

目前我用的判断市场整体行情的办法是这样的,非常的粗鄙:计算 4 天内账户的盈亏,如果是亏的且 4 天内没有反转过开仓,就反转开仓。

这个方案在 2025 年 1 月到 5 月还可以,能有 6 倍多收益,但是最大回撤也达到了 60%。

在更久远的时间里则不行,从 2020 年到 2024 年会归零。

我在想有没有更好的办法判断市场整体行情。获取统计分析近一天的开多开空列表,分析其走势可以得出答案。

可以发明一个新的指标,当前五分钟能做多的币减去上个五分钟能做多的币的数量;如果这个量大于 0,且在是上升态势,就是市场整体行情就是多头。