概述
这是一个将抛物线SAR指标与三条不同周期的SMMA均线相结合的突破交易策略。它在三条均线全面上涨时做多,三条均线全面下跌时做空,同时结合SAR指标判断趋势方向,在SAR指标转向时进行反向开仓。该策略同时支持止损和止盈。
策略原理
该策略主要基于以下几点:
-
使用抛物线SAR指标判断当前趋势方向。SAR指标能够动态追踪价格变化,判断多头趋势和空头趋势。
-
设置三条不同周期的SMMA均线(快线21周期、中线50周期、慢线200周期)。当三条均线全部上涨时,视为多头趋势形成;当三条均线全部下跌时,视为空头趋势形成。
-
在SAR指标发生向下转向时,如果三条均线全面上涨,则做多入场。
-
在SAR指标发生向上转向时,如果三条均线全面下跌,则做空入场。
-
设置止损和止盈。止损以SAR指标作为动态止损位,止盈设置为入场价格的一定比例。
具体来说,策略首先判断当前BAR的SAR指标是否发生转向。如果SAR从向上转向向下,并且三条均线全面上涨,则做多;如果SAR从向下转向向上,并且三条均线全面下跌,则做空。
在持有头寸后,止损线设置为下一个BAR的SAR指标价位,以SAR作为动态追踪止损。止盈设置为入场价格的10%。当价格达到止盈或止损水平时,平仓退出。
优势分析
这种策略结合趋势判断指标和多时间周期均线的优点,可以在趋势发生转折时及时入场,同时通过均线过滤假突破。主要优势有:
-
SAR指标能够动态判断趋势转向,快速捕捉趋势转换机会。
-
三条均线能够有效过滤市场噪音,避免假突破。
-
采用SMMA均线,曲线更平滑,减少均线震荡对交易的干扰。
-
结合止损止盈设置,可以控制单次亏损,同时锁定部分利润。
-
策略参数设置灵活,可针对不同市场调整参数,优化策略效果。
风险分析
该策略也存在一些风险,主要包括:
-
在震荡趋势中,SAR指标可能发生多次频繁转向,导致过于频繁交易而增加交易费用。
-
三条均线 Settings 可能不一定完全适合所有品种,需要根据具体品种行情进行调整。
-
止损设置为下一个BAR的SAR价位存在时间滞后,可能扩大损失。
-
稳定趋势中假突破使SAR转向的问题,可以通过调整参数平滑SAR曲线来缓解。
-
均线Settings不当也可能错过趋势或产生错误信号,需要仔细测试优化。
对应风险,可以从以下几点进行优化:
-
根据不同品种波动程度调整SAR参数,降低频繁转向概率。
-
调整三条均线的参数,使其更贴近不同品种的特点。
-
优化止损策略,例如采用小止损、移动止损等方式。
-
在交易频繁市场使用限价单止损,避免滑点扩大损失。
-
做好参数调优测试,评估均线和SAR参数对策略效果的影响。
优化方向
根据以上分析,该策略可以从以下几个方面进行优化:
-
优化SAR参数设置,平滑SAR曲线,降低曲线转向频率,避免过度交易。
-
调整三条均线的长度,使其更符合具体交易品种的特性,发挥更好的趋势过滤作用。
-
采用动态止损策略,例如移动止损、挂单小止损等,减少止损带来的损失。
-
在高频交易市场使用限价单止损,降低止损滑点损失。
-
添加其他指标进行过滤,如RSI,KD等,提高信号质量,减少假突破概率。
-
优化入场条件,可考虑在SAR转向时同时检验K线形态,避免低质量信号。
-
添加重新入场条件,在止损后价格继续向有利方向运行时再次入场。
-
完善止盈策略,例如移动止盈、部分止盈、级差止盈等,提高盈利能力。
-
基于回测结果对参数进行优化,评估参数对整体策略效果的影响。
总结
总的来说,这是一个结合趋势跟踪指标SAR和均线的简单实用的突破策略。它利用SAR判断趋势转向的灵敏度,以及均线的滤波作用,在趋势转折点快速入场。同时设置止损止盈来控制风险和锁定利润。通过调整参数 SETTINGS 及优化入场出场条件,可以获得较好的策略效果。但交易者需要注意控制过度交易和假突破等问题,针对不同品种进行参数调优和策略测试,从而获得稳定的交易系统。
/*backtest
start: 2023-10-08 00:00:00
end: 2023-11-07 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="SAR + 3SMMA with SL & TP", overlay=true, calc_on_order_fills=false, calc_on_every_tick=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.USD, commission_type= strategy.commission.percent, commission_value=0.03)
start = input.float(0.02, step=0.01, group="SAR")
increment = input.float(0.02, step=0.01, group="SAR")- 1

