该策略是基于SAR指标在不同时间周期进行交替操作的交易策略。策略会在15分钟,日线,周线和月线时间框架下分别计算SAR指标,并在周线时间框架下进行交易操作。当周线SAR指标上穿最高价时做多,下穿最低价时做空。
SAR指标代表抛物线转向指标(Parabolic SAR),它通过计算当前价格与历史价格的关系来判断市场的趋势方向,当价格突破SAR点时,表示趋势发生反转。
本策略在15分钟,日线,周线和月线时间框架下分别计算SAR值。计算公式为:
SAR = SAR前值 + 加速因子(最高价 - SAR前值) # 多头趋势
SAR = SAR前值 + 加速因子(最低价 - SAR前值) # 空头趋势
其中,加速因子初值设置为0.02,随着趋势的延续会逐步增加至最大0.2。
策略在周线时间框架下发出交易信号。当周线SAR上穿最高价时做多,设置止损为SAR值。当SAR下穿最低价时做空,设置止损为SAR值。
该策略通过在更高级别的时间框架判断趋势,设置更精确的止损位置,从而获利更高效。
该策略整体思路清晰,通过在高时间框架判断趋势,可有效跟随大方向操作。同时SAR指标较为精确地定位趋势转折点,也使止损风险控制到较小水平。后续可从入场条件、止损策略、仓位管理等方面进行优化,使策略更加稳定高效。
/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy ("SAR alternating timeframe", overlay=true)
//resolution
res1=input("15", title="Resolution")
res2=input("D", title="Resolution")
res3=input("W", title="Resolution")
res4=input("M", title="Resolution")
//output functions
out = sar(0.02,0.02,0.2)
// request.security
SAR1 = request.security(syminfo.tickerid, res1, out)
SAR2 = request.security(syminfo.tickerid, res2, out)
SAR3 = request.security(syminfo.tickerid, res3, out)
SAR4 = request.security(syminfo.tickerid, res4, out)
//Plots
//plot(SAR1 , title="SAR 15", color = red, linewidth = 2)
//plot(SAR2 , title="SAR D", color = green, linewidth = 3)
plot(SAR3 , title="SAR W", color =blue, linewidth = 4)
//plot(SAR4 , title="SAR W", color =purple, linewidth = 5))
/////////////////////////////////////////////////////////////////////
//trade
if (SAR3 >= high)
strategy.entry("ParLE", strategy.long, stop=SAR3, comment="ParLE")
else
strategy.cancel("ParLE")
if (SAR3 <= low)
strategy.entry("ParSE", strategy.short, stop=SAR3, comment="ParSE")
else
strategy.cancel("ParSE")