查看: 2374|回复: 0
打印 上一主题 下一主题

抛物线转向在商品期货择时策略中的应用

[复制链接]
跳转到指定楼层
1
 楼主| 发表于 2018-9-13 15:34:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一名合格的交易者,不会因为自己的经验,而有所偏见,而是尊重事实,并做出理性客观的决策。 但大部分投资者总是在潜意识中存在这样那样的偏见,而这些偏见就是交易路上的绊脚石。很多人都有这样的偏见:「都已经连续跌了这么长时间了,并且跌到前期低点,肯定是底部了,正是抄底的时候」。据此轻易的作出判断,下更大赌注,这种做法,华尔街戏称「徒手接天上掉下来的刀子」。价格之所以下跌,背后肯定有不为所知的原因,价格总是走它自己的路,更不会听任你的偏见。

所以,在交易中,判断归判断,但始终要尊重事实。牢记风控第一,判断第二。一旦市场走势与自己的判断不符,承认错误,不断的修正自己,作出客观理性的决策,才是交易正途。回到正题,本篇将为大家带来:基于抛物线转向的交易策略。

抛物线转向(SAR)是一个计算非常复杂的分析工具,由美国威尔斯·威尔德发明。「抛物线」这个名字只是一个描述,实际上在指标中并不涉及抛物线的数学计算,它只是在图表上的形状跟抛物线比较相像。有意思的是,当你在图标上手动绘制趋势线时,它们通常与抛物线转向指标的点对齐。

蓝色虚线——抛物线转向(SAR)
数据来源:宽客在线(www.quant.la

抛物线转向最大的特点是:内置加速因子,将趋势方向与趋势强度相结合。在算法中,不仅利用价位变动的动能,还利用了时间变动性质来调整价位上设定的止损点。其中,递减或递增与实际价格之升跌幅度及时间长短有密切关系,可以很好的适应不同形态价格的波动。

抛物线转向原理
简单概括为:首先需要确定极值点(最高价或最低价 EP)。然后在它的基础上加上从 0.02 起步的加速因子(AF),然后每当触及下一个极值点时,再加 0.02。AF的最高为 0.20。然后用极点价与前一时段 SAR 之间的差值乘以加速因子,然后再加上前一时段的 SAR。

涨势中的算法
第一步:假设时间段是t。SAR(t)等于前面N个时间段的最低价格。Af(t)的初始值为0.02。
  • 如果SAR(t)大于t时间段的最低价L(t),则发生跳转,在下一个时间段时进入跌势;
  • 如果SAR(t)不大于t时间段的最低价L(t),在下一个时间段时进入涨势;
  • 极值Ep(t)等于最近N个时间段的最高价格;


第二步:时间段是t+1,即:
SAR(t+1)=SAR(t)+Af(t)*(Ep(t) – SAR(t))


  • 如果SAR(t+1)大于t+1时间段的最低价L(t+1),则发生跳转,在下一个时间段时进入跌势;
  • 如果SAR(t+1)不大于t+1时间段的最低价L(t+1),进入涨势下一步;并且,极值Ep(t+1)等于最近N个时间段的最高价格;
  • 如果该时间段的最高价,即H(t+1)比前面N个时间段的最高价高,则AF(t+1)=AF(t)+0.02,否则,AF(t+1)=AF(t)。


第三步:在后面的时间段t+2,t+3,……,上重复涨势第二步中的算法,直到发生跳转为止。另外,AF的最大值是0.2。

跌势中的算法
第一步:假设时间段是t。SAR(t)等于前面N个时间段的最高价格。Af(t)的初始值为0.02。
  • 如果SAR(t)小于t时间段的最高价H(t),则发生跳转,在下一个时间段时进入涨势;
  • 如果SAR(t)不小于t时间段的最高价H(t),在下一个时间段时进入跌势;
  • 极值Ep(t)等于最近N个时间段的最低价格;


第二步:时间段是t+1,即:
SAR(t+1)=SAR(t)+Af(t)*(Ep(t) – SAR(t))
  • 如果SAR(t+1)小于t+1时间段的最高价H(t+1),则发生跳转,在下一个时间段时进入涨势;
  • 如果SAR(t+1)不小于t+1时间段的最高价L(t+1),进入跌势下一步;并且,极值Ep(t+1)等于最近N个时间段的最低价格;
  • 如果该时间段的 最低价 L(t+1),比前面N个时间段的最低价低,则AF(t+1)=AF(t)+0.02,否则,AF(t+1)=AF(t)。


第三步:在后面的时间段t+2,t+3,……,上重复涨势第二步中的算法,直到发生跳转为止。另外,AF的最大值是0.2。

关于SAR的算法,有很多种版本,上面这种算法只是其中之一,算法结构都差不多,区别是在细节上,比如:加速因子的触发条件、Ep(t)的确定算法等,会有所区别。上述的算法过程,你可能会看的云里雾里。不过你可以利用BotVS量化交易平台,直接引用talib库中的SAR指标:

首先引用:☑商品期货交易类库



由上述几行代码就可以获取SAR指标:
  • 第一行:程序主函数;
  • 第二行:调用商品期货交易类库中的CTA框架,并传入两个参数(合约代码,回调函数);
  • 第三行:获取K线数组;
  • 第四行:控制K线数组的长度;
  • 第七行:调用talib库中的SAR函数;第一个参数是K线数组,第二个参数是加速因子的起始值,第三个参数是加速因子的最大值。
  • 第八行:测试,把计算好的SAR数组打印到日志上;


SAR优点
  • 一定程度上减少了趋势型指标的滞后性。通过加速因子,每当行情快速波动的时候,SAR的变动速度也会加快,一旦价格失速或者反转,SAR都会紧贴价格走势,保护好利润或防止亏损扩大。
  • 尽管SAR算法很复杂,但从图形和运用上,与均线类似,属于价格与时间并重的趋势型分析系统,即使是初学者,使用起来也非常简单。
  • 一般的技术指标只有在K线走完后才能确定,而SAR在当根K线走完后就能确定下根K线的停损点,止盈止损可以做到提前心中有数,保持操作的主动性,避免被动追随的缺点。


SAR缺点
  • 当行情陷入窄幅整理时,SAR经常会交替出现买卖信号,导致信号失效。
  • 计算SAR需要一定的周期数据,这也代表了它并不能完全消除滞后性。


单独的SAR是一套「反转系统」,即价格在止损点之上是多头,价格在止损点之下是空头,也就是说头寸永远停留在市场内,趋势向上就作多,趋势向下就作空,但是如果行情在盘整时就会来回亏损。事实上在策略构建中,SAR更适合作为出场点:
  • 在行情上涨走势中,每根K线的SAR 都高于上一根K线的SAR,止损点在逐步上移,从而保证浮盈也在逐步上移,这就是典型的移动止损。
  • 在行情加速上涨走势中,AF 加大,EP 增大,从而进一步加速止损点上移的速度,保证在强势情况下,止损点能紧密跟随股价的走势,并锁定更多的收益。


所以,为了避免过于频繁短线,限制交易次数,同时过滤震荡行情,在进场点上,加入了长期移动平均线(MA)。

入场点
  • 多头买入开仓:如果当前无持仓,并且收盘价高于对应的SAR值,并且收盘价格大于长周期移动平均线,就在下一根K线开盘买入;
  • 空头卖出开仓:如果当前无持仓,并且收盘价低于对应的SAR值,并且收盘价格小于长周期移动平均线,就在下一根K线开盘卖出;


出场点
  • 多头卖出平仓:如果当前持有多单,并且收盘价低于对应的SAR值,就在下根K线开盘卖出;
  • 空头买入平仓:如果当前持有空单,并且收盘价高于对应的SAR值,就在下根K线开盘买入;


模板引用:☑商品期货交易类库
策略源码:

参数设置:


图片来源:BotVS量化交易平台

回测设置:


图片来源:BotVS量化交易平台

回测绩效:
图片来源:BotVS量化交易平台



抛物线转向指标有一项哲学假设:只有继续高于最新抛物线转向指标的走势才值得您花费时间和资金。另外,它还可以作为出场条件,可以与其他条件组成攻守兼备的交易策略。

交易者最难克服的就是:在盈利时落袋为安的心里,一点蝇头小利就想及早卖出。在亏损时固执侥幸的心里,小的亏损积累成大亏损。你如果没有一个相当明确的买卖法则,一定受不了心里的诱惑或恐惧,乱买卖一通。使用正期望的交易规则来约束自己,才是广大散户最捷径的道路。共勉!
转载:宽客在线                                                                                    原文链接:https://quant.la/Article/View/347/






您需要登录后才可以回帖 登录 | 注册入住  

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号