量化交易中常用的止盈、止损方法技巧总结

2022-05-24 14:23:41 浏览数 (1)

作为一种新型的金融投资方法,量化交易利用计算机技术,结合数学建模和统计学分析, 从大量的历史数据中提炼出交易策略,通过计算机强大的运算能力实现白动交易,从而减少交易者受情绪影响做出的非理性交易。【文末赠书】

什么是量化交易

量化交易作为交易与计算机结合的产物,正在改变着现代金融市场的格局。如今已经有很 名交易者将目光转向了这一领域。如何最大限度地降低风险并尽可能多地取得收益,是许多交 易者孜孜以求的目标。

量化交易的特点

量化交易脱胎自主观交易。主观交易在每次下单前都需要人为判断行情,然后结合自己的交易逻辑进行交易,这在实际交易中很难与自己的交易逻辑保持一致,尤其在行情波动剧烈的情况下,账户盈亏时时刻刻左右着交易者的心智,使交易者很难做出正确判断。而量化交易可以弥补主观交易的缺点。

客观准确、科学验证、及时高效、风险控制

科学验证:

在编写完交易策略后,如果用模拟盘测试它的有效性,则可能需要付出很高的时间成本;如果用实盘测试,则更可能损失真金白银。量化交易中的回测功能,可以通过大量的历史数据,以科学的方式检验交易系统。

客观准确:

在交易过程中,交易者真正的敌人是自己,心态管理说起来容易,做起来难。贪婪、恐惧、侥幸等人性的弱点,在交易市场中会被数倍放大,量化交易可以屏蔽这些弱点,在交易中做出更理性的决策。

及时高效:

在主观交易中,人的反应速度是无法快过计算机的,并且人的体力和精力有限,不像计算机可以 24 小时运行,在机会稍纵即逝的交易市场,量化交易完全可以代替、主观交易,寻找更多的交易机会,及时、快速地跟踪市场变化。

风险控制:

量化交易可以从历史数据中挖掘价格末来可能重复的规律,这些规律可以转化为较大概率取胜的策略;还可以构建多种不同的投资组合,降低系统性风险,平滑资金曲线。

注意:主观交易并非一无是处,在量化交易中,计算机很难识别千变万化的区线形态,如 双重顶底、头肩顶底、V型反转等,但主观交易可以很容易地将其分辦出来。此外,相对来说主观交易更加细膩。例如,对于一些似是而非的交易信号,主观交易会选择性回避。

常用的止盈、止损方法

华罗庚在谈读书方法时提道:“读书是由薄到厚再由厚到薄的过程。”交易与之类似,刚开始什么都不懂,自然很 “薄”,等到入门发现需要学习的内容很多,就感到很 “厚”,随着日积月累,理解了交易的核心,升华到交易理念,又变得很“薄”。

你是否有过这样的经历:当价格朝开仓的反方向移动时,你认为是小幅度回调,当价格继续移动时,你认为调整这么多了,价格也该反转了吧。但如果行情继续如此反复下去,一般人不能忍受这样快速且长时间的回撤。这时“止损” 也许是多数人心中所想并执行的。

止损的成本

止损是有成本的。例如,在止损之后,接着出现了一段非常迅速的行情。回头一看,止损

止到了低谷,结果明明是赚钱的单子,却以止损提前离场,还白白损失了前几次的试错成本。面对这种情况,不仅资金缩水,还会有一种被左右愚弄的痛苦。尤其是在连续出现几次这样的 情况后,对自信心的打击是难以承受的。

曾经有家机构做过统计:在止损后,大约有 80% 的概率,价格会重返原点附近。换句话说, 大约有 80% 的止损是错误的,如果不止损,则有大约 80% 的概率不仅不会亏损,还会小赚。如果将周期拉得足够长,大部分股票、债券、商品、外汇的价格都会在一个大的范围内上下波动, 毕竟趋势行情的占比还不足三分之一。

那么,在行情中间,无论是多,还是空,我们的单子在被套后,只要不止损,就都能扛过来,甚至能获得一些利润。既然如此,为什么要傻乎乎地止损呢?

止损点意义

假如没有止损,却真的碰到反向的大行情,那么资金遭到重创,回本岂不是更加困难了?如下表所示,在本次交易亏损 10% 后,下次交易需要盛利 11% 才能回本,在本次交易亏损 50% 后,下次交易需要盈利 100% 才能回本。也就是说,亏损幅度越大,越难回本。

亏损

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

盈利

11%

25%

43%

67%

100%

150%

233%

400%

900%

假如没有止损,却真的碰到反向的大行情,那么资金遭到重创,回本岂不是更加困难了?如表所示,在本次交易亏损 10% 后,下次交易需要盛利 11% 才能回本,在本次交易亏损 50% 后,下次交易需要盈利 100% 才能回本。也就是说,亏损幅度越大,越难回本。

虽然 80% 的止损都是错误的,但是为了避免 80% 的错误不止损,那么在剩余的 20% 行情中, 如果遇到反向大行情或大调整、大反弹,就容易“死亡”。因此,在大部分情况下,我们止损并不是我们方向错了,而是控制损失的需要。

在市场中,鳄鱼法则就是,当你发现自己的交易背离了市场的方向时,必须立即止损,不得有任何延误,不得存有任何侥幸心理。“鳄鱼吃人” 听起来很残酷,但市场就是一个残酷的地方。

如何止损

既然要止损,那么如何止损,亏多少才止损,是固定数额、固定百分比,还是动态止损?笔者认为,止损是对结果和演进路径都不确定事物的利用方法,可以帮助我们取得好的一面舍弃坏的一面。正确的止损策略需要建立新的末来观。下面介绍几种止损方法。

第1种:价格止损

代码语言:javascript复制
if 现价 >(1 X%)*开仓价:
  平仓止盈
elif 现价 <(1-Y%)*开仓价:
  平仓止损
else
  继续持仓

将买入价或持仓均价设置为止损价,一旦价格涨幅超过 X%或跌幅超过 Y%,就卖出。价格止损是一个具有固定止损价位的止损方法,这种方法存在一些弊端,因为止损标准和行情本身没有太大关联,所以很有可能出现刚刚离场,行情就出现反转的情况。

第2种:时间止损

代码语言:javascript复制
if 持仓时间 > X 天 and 涨幅 < Y%:
  平仓止损
else:
  继续持仓

时间也是有价值的,如果在一定时间内的收益低于一个预设值,就认为该交易低于预期,选择卖出。时间止损是一个非常简单的止损方法,由于止损线是固定的,因此该方法不能很好地减少回撤。

第3种:移动止损

代码语言:javascript复制
X = 允许的最大回撤
if 现价 <持 仓周期内最高价 * (1-X%):
  平仓止损
else:
  继续持仓

移动止损比较客观,其考虑的是价格的回撤,如果价格回撤大于某预设值 X% 就将其卖出。移动止损的止损价会随着最高价的创新高而变化。

注意:因为移动止损的止损标准和行情发展有密切的逻辑关系,并且能覆盖止盈策略,所以是很多交易老手常用的方法之一。但因为移动止损是结合具体行情決定的,所以不像固定止损那样可以将每一笔交易的亏损控制在一定数额内。因此该方法要求进场点的选择要更准确 风险更小。

第4种:阶梯止损

代码语言:javascript复制
X = fx(开仓后最高价, 初始止损价, 阶梯长度, 阶梯变化率)
if 现价 < X:
  平仓止损
else:
  继续持仓

阶梯止损是另一种移动止损方法。止损价会根据持股周期内最高价的变化而变化。与移动 - 损不同的是,阶梯止损止损价的计算方法略有不同。

第5种:时间 阶梯止损

代码语言:javascript复制
X = fx(持仓周期,期望回报率)
if 现价 < X:
  平仓止损
else:
  继续持仓

时间 阶梯止损是将“时间有价值” 和“移动止损” 这两种思路结合在一起的方法。止损价会随着持股周期的变化而变化,一旦跌破止损价,就卖出。因为这种止损方法兼容了一些主观成分,所以退好和其他方法结合起米使用,从而保证往止损上做到“软硬粮施”。

止损的本质

止损是必要条件,不是充分条件。止损是整个交易系统中的一个分支,前提是有一个正州望的交易系统,否则止损只会让你亏损得慢些。交易中八成的止损是杂乱无序的波段造成的。人生和投机一样,大部分都是自己打败自己。止损要止得适当才是成功的止损,频紫地止损只会让人一点点步入失败的泥沼。可以这样说,止报本底上是对市场的教是、对不确定性的 承认、对市场的尊重。

会不会买只是我们能赚多少的因素之一,而会不会止损是我们能亏多少的全部因素。未米是不确定的,错误的持仓,未必就是错误的方向。止损虽不能決定市场,但能界定你面对怎样的市场。

如果将交易比作生活,那么市场中所有的价格都是合理的,如同我们无法在生活中决定什么应该存在,我们也无法決定市场的价格应该是什么。但我们可以决定我们能在生活中做什么,在市场中做什么。在生活中的底线,就如同在市场中的止损一样。

正确的止盈

俗话说:“会买是徒弟,会卖才是师傅”。交易是一个系统工程,止盈也是这个系统中的 部分。止盈分为固定止盈、移动止盈、分批止盈。所谓固定止盈,就是设置一个止盈目标,如设置盈利 10%止盈,这种止盈方式与止损方式类似,当盈利超过 10%时,即可止盈出局。

但对于趋势跟踪策略,如果以固定止盈作为唯一的出场方式,就违背了 “让利润奔跑” 的 初衷,所以较为有效的止盈应该是移动止盈和分批止盈,或者一部分仓位固定止盈,另一部分仓位移动止盈。

如何止盈

下面介绍几种止盈方法。

第1种:在固定点位止盈

在固定点位止盈是最简单的一种止盈方法,如在开仓后盛利 100个点止础,示例代码如下。需要注意的是,每一波行情所释放的能量都不相同,价格会上涨我少点、回撒多少点,都不是固定的数值,这种止盈方法严格来说不是科学的方法。

代码语言:javascript复制
# 多头
if 现价 - 开仓价 > 100:
  平仓止盈
# 空头
if 开仓价 - 现价 > 100:
  平仓止盈

第2种:在固定百分比止盈

在固定百分比止盈与在固定点位止盈的原理类似,只不过是以百分比的形式计算止盈价格的。例如,在多头持仓时,如果当前价格与开仓价格的商大手 10%,则止盈:在空头持仓时, 如果开仓价格与当前价格的商大于 10%,则止盈,代码如下:

代码语言:javascript复制
# 多头
if 现价 / 开仓价 > 0.1:
  平仓止盈

# 空头
if 开仓价/现价 >  0.1:
  平仓止盈

第3种:根据价格回落幅度止盈

如果当前浮盈比开仓后最大浮盈减少了一定的比例,则可以认为价格在见顶后开始回落, 此时可以选择落袋为安。例如,在开仓后记录并更新最大浮盈,如果当前浮盈与历史最大浮盈的商小于 10%,则止盈,代码如下:

代码语言:javascript复制
if 当前浮盈 / 历史最大浮盈 < 0.9:
  干仓止盈

第4种:技术形态止盈

以均线为例,10 日均线为短期均线,50 日均线为中期均线,100 日均线为长期均线。如果价格向上突破 100 日均线,则开多仓;如果价格跌破 10日均线,则止盈一半仓位,剩下一半仓位在跌破 50日均线后全部平仓,代码如下:

代码语言:javascript复制
# 多头
if 价格 > MA100:
  多头开仓
if 价格 < MA10:
  多头平仓一半
if 价格 < MA50:
  多头平仓一半
    
# 空头
if 价格 < MA100:
  空头开仓
if 价格 > MA10:
  空头平仓一半
if价格 > MA50:
  空头平仓一半

技术形态止盈的方法远不止于此,也可以利用布林带指标的上、中、下轨作为止盈、止损的依据,或者参考真实波动幅度均值 CATR),在开仓价格的基础上,以正负 2倍 ATR 设置止盈、止损。

本文摘编自《商品期货量化交易实战(以Python为工具)》,经出版方授权发布。(ISBN:9787121426735)

0 人点赞