Updated on Apr.17-2026
之前写过一篇回答,题目是交易系统可以有多简单?
交易系统可以有多简单? - 知乎 (zhihu.com)
在文章中,我简单阐述了一个交易系统,单均线。
很多人仍然不是很理解,于是我准备时隔多日再来应付一篇。
来详细讲一讲,单均线:一个上多下空的永远持仓的系统,有多么的神奇
或许,他就是打开你投机交易新世界的一个契机。
上面回答简单讲述了,单均线的操作模式,无非就是,线上开多,线下开空,永远持仓。
用趋势覆盖震荡磨损。
我们直接来上量化图标。
已MA20为例,挑选几个连续的指数合约作为标的物,级别日K。
回测时间统一设置为2020年1月1日,时间3年(别问我为什么只说近3年,因为过去的趋势赚的更多),每次只交易1手,交易滑点为3(很多了,每次交易自动亏3跳,内含手续费或本身滑点)。
1.螺纹钢

胜率只有可怜的26%,但盈亏比为3.36,一手的最大盈利为1.2W,最大亏损为2090,总盈利5.6W,总亏损4.69W,净盈利9230,滑点损耗4800,最大回撤1.6W(权益最高值减去权益最低值)。
我回测的结果:
2020.1.1-2022.11.28,和他的一分不差。

我为什么不说盈利率?因为,盈利率看的是你风险敞口,也就是仓位。
看看具体的交易细节,收盘价下单。
看到了吗,这就是收盘价,一根均线,大巧不工的结果。
他的效率,高于很多很多,繁杂的术。
很多人在意交易胜率,说他的交易胜率70%,80%,甚至90%,却闭口不谈盈亏比,甚至没有这个概念。
一次赚3点,5点,然后截取一段不超过3个月的曲线,自我暗示,这算是稳定盈利了吗?
可是,一亏亏100点还扛着单。重仓之下几乎有很大概率被一波带走。
交易系统(规则)的初衷,在于处理走势的不确定性。
并不是为了预测,他只是为你在当前处境下,如何做决策提供一个依据。
我们不能知道一波行情能走多远,在哪拐头,永远要意识到
猜对了,不是我们预测的准,而是行情恰好走成了你想到的这个样子
我们不可能永远猜对。
所以,建立模型的意义在于,用这个模型规划出的区间利润,叠加到繁乱的走势中
抽取该抽取的那部分。处理当下即可。
再举几个品种。
2.棕榈油

胜率仍然是26%,看来单均线的胜率普遍不是很高,但是盈亏比为3.64,总盈利12.79W,总亏损10W,每手盈利2.8W,滑点损耗9200元。最大每手盈利3.16W,最大亏损6060元。
我的回测2020.1.1-2022.11.29。

3.找一个亏损的吧,没有稳赚的。
PTA:

PTA的走势关注期货的也熟悉,从今年7月以来走出了持续4个月的震荡,上上下下。
这也是PTA最终截至目前是亏损的原因。
总亏损为4500元,单次最大盈利6600,单次最大亏损1780,滑点损耗5160(也就是说,如果没有每次交易3跳的损耗,哪怕是经历了如此的震荡,截至目前也仍然是盈利的)
我的回测2020.1.1-2022.11.29。

有的人看到这里,已经若有所思。
有的人喜欢加过滤,企图用一些大周期或者其他方式,过滤掉一些错误行情,让盈利效率更高。
二、我的代码
MA20 := MA(C,20); CROSS(C,MA20), BPK; CROSS(MA20,C), SPK; AUTOFILTER;
三、然后我回测了所有的品种
收益率低的原因是只买了一手。



四、螺纹钢
可是这种连续3年回测的系统,你能坚持吗?
2017年是震荡走势,没有趋势,所以亏这么多。

他还有一篇比较好的文章:
一个较为完整的交易系统包括哪些内容?
https://www.zhihu.com/question/36449257/answer/1968582065
我以前认为书上的交易策略不适合A股,只适合期货或者美股,因为比如双均线这样的策略,你就选不到刚好走出趋势的股票。
他这里提供了一个解决办法,就是分仓(分配你的资金)。
此时,你的坚持就会有意义。
他在多数的股票中具备一个正的预期,他把你可能由运气导致的风险降到了最低。
那么这个时候,你的坚持就有了意义,他的最终结果,是你自己努力来的,而不是运气。
五、Cross函数的问题

解决方案一:改用REF + 次日开盘执行
MA20 := MA(C, 20); COND_LONG := REF(C, 1) > REF(MA20, 1); // 用上一根K线的收盘和均线 COND_SHORT := REF(C, 1) < REF(MA20, 1); COND_LONG, BK; COND_SHORT, SK; COND_SHORT, SP; COND_LONG, BP; AUTOFILTER;