
이 전략은 SAR 지표에 기초하여 서로 다른 시간 주기에 걸쳐서 교대하는 거래 전략이다. 이 전략은 15 분, 일선, 주선, 달선 시간 프레임에 따라 각각 SAR 지표를 계산하고 주선 시간 프레임에 따라 거래 작업을 수행한다. 주선 SAR 지표에 가장 높은 가격을 통과 할 때 더 많이하고 가장 낮은 가격을 통과 할 때 공백을 낸다.
SAR 지표는 패러볼릭 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")