
ATRTSS v6 전략의 핵심 혁신은4배 ATR 배수 설계○ 전통적인 전략은 일반적으로 2 ~ 2.5 배의 ATR을 사용하지만, 암호화폐 시장의 극심한 변동성은이 변수를 너무 보수적으로 보이게합니다. 재검토 데이터에 따르면 4 배의 ATR은 85%의 가짜 돌파 신호를 효과적으로 필터링 할 수 있지만 충분한 트렌드 포착 능력을 유지할 수 있습니다.
핵심 변수 해독:
이 디자인의 핵심 논리는 다음과 같습니다.작은 변동을 놓치고 큰 트렌드를 잡는 것이 낫습니다.ᄒ 안정적인 수익을 추구하는 양자 거래자에게는 자주 출입하는 전략보다 더 많은 전투 가치가 있습니다.
사용된 전략3층 시간 프레임 검증 메커니즘이 사진의 가장 큰 특징은
4H 입구층: 중간 트렌드 시작 신호를 인식하고, 낮 내의 노이즈 방해를 피한다. 4H 종료 가격이 4H ATR 스톱 라인을 돌파했을 때 입시 조건을 유발한다.
1H 출장층더 민감한 위험 관리를 제공하여 1H 종료 가격이 1H ATR 스톱 라인을 넘어갈 때 즉시 매각한다. 이 디자인은 단일 시간 프레임 전략보다 30% 이상의 위험 관리를 제공합니다.
햇빛 필터 층: 최종 동향 확인으로, 당일 일선 종료 가격이 일선 ATR 정지보다 높을 때만 입장을 열 수 있습니다. 이 계층의 필터링 메커니즘은 큰 차원의 하향 동향에서 역전 거래를 피할 수 있습니다.
실전 효과이 다층적 인증 메커니즘은 전략의 최대 회수를 현저하게 감소시키면서도 주요 트렌드를 포착할 수 있는 능력을 유지합니다.
정책 설정최대 2개의 피라미드이 변수 설계는 매우 실용적입니다. 무제한의 포지션 또는 단일 포지션에 비해 2 개의 포지션은 위험 제어와 수익 증대 사이의 최적의 균형을 찾습니다.
가축 트리거 조건:
이 디자인의 장점은 다음과 같습니다:동향을 확인하는 것을 전제로 수익을 적당히 확대하는 것이 아니라 맹목적으로 추격하는 것이 좋습니다.역사적으로 보면 두 번의 상장 (加仓) 은 한 번의 상장 (开仓) 에 비해 총 수익률을 15-25%까지 올릴 수 있지만 최대 인출률은 10% 내로 제한된다.
사용된 전략Long Only 디자인현재 암호화폐 시장 환경에서는 현명한 선택이다. 다공간 전략에 비해 순수 다목적 전략은 다음과 같은 장점이 있다:
시장 적응성“비록 코스피 시장이 상승세를 보이고 있지만, 코스피 거래는 상대적으로 적고 위험성이 높습니다”.
자금 효율성“이런 일이 벌어진다면, 우리나라는 더 나은 삶을 살 수 있을 것이다”.
심리적 스트레스순수 다중 전략은 심리적 부담이 적고 대부분의 거래자의 위험 선호에 더 적합하다.
하지만 주의해야 합니다.이 전략은 모든 시장 환경에 적합하지 않으며, 곰 시장이나 장기 수평 시장에서 눈에 띄게 하락합니다.
이 전략의 위험 제어 시스템은 상당히 잘 설계되어 있습니다.
첫 번째1H ATR 상쇄는 빠른 위험 관리를 제공하며, 평균 상쇄는 입점 가격의 약 8-12%입니다.
두 번째일일 필터링은 대대적인 역거래를 방지하는 전략의 가장 중요한 위험 관리 계층입니다.
세 번째최대 2번의 상장 제한으로, 과도한 위험집중을 방지한다.
실제적인 위험다중 보호에도 불구하고, 전략은 연속적인 손실의 위험이 있습니다. 특히 격동적인 시장에서 자주 중단이 발생할 수 있습니다. 역사적인 회귀는 미래의 수익을 의미하지 않으며, 실물 거래는 엄격한 자금 관리가 필요합니다.
황소 시장 환경ATR 배수를 3.5~4.5배로 조정하여 신호의 민감도를 높일 수 있다.
시장의 흔들림“이런 경우를 고려하면, ‘비정규 침공’을 4.5배에서 5.0배로 늘려서, ‘유령 침공’ 피해를 줄일 수 있다.
높은 변동성5배의 ATR을 고려할 수 있습니다.
낮은 변동성BTC는 3.5-4배의 ATR을 사용할 수 있습니다.
중요한 경고: 매개 변수 조정에는 충분한 재검토 검증이 필요하며, 다른 시장 환경에서의 최적 매개 변수에는 상당한 차이가 있을 수 있다.
이 전략은 다음과 같은 유형의 거래자들에게 가장 적합합니다.
규모10만 달러 이상의 경우 8~15%의 단편적 손실을 감수할 수 있다.
거래 빈도월 평균 거래 수 5~15회, 고주파 거래 요구에 적합하지 않다.
위험 선호“중심한 위험 선호, 거액의 이익보다는 안정적인 수익을 추구한다”.
시간이 걸렸습니다.매일 1~2번의 모니터링이 가능하며, 파트타임 트레이더에게 적합하다.
적용되지 않는 시나리오: 일일 거래, 초단계 거래, 헤지 펀드 등과 같은 고주파 전략의 요구.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-08-31 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("ATRTSS v6 (4H Entry / 1H Exit / Daily Filter, Long Only, Multi-TF Lines)",
shorttitle="ATRTSS v6", overlay=true,
initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100,
commission_type=strategy.commission.percent, commission_value=0.0, pyramiding=2)
// ===================
// Inputs
// ===================
atrPeriod = input.int(10, "ATR Period")
atrMult = input.float(4.0, "ATR Multiplier")
htfATRPeriod = input.int(10, "Daily ATR Period")
htfATRMult = input.float(4.0, "Daily ATR Multiplier")
maxPyramids = input.int(2, "Max Pyramids", minval=1)
// Optional backtest window
daysBackMax = input.int(360, "Max Days Back to Test", minval=0)
daysBackMin = input.int(0, "Min Days Back to Test", minval=0)
msBackMax = daysBackMax * 86400000
msBackMin = daysBackMin * 86400000
isInTimeBounds = (msBackMax == 0 or (time > (timenow - msBackMax))) and
(msBackMin == 0 or (time < (timenow - msBackMin)))
// Helper for non-repainting security pulls
gaps = barmerge.gaps_off
ahead = barmerge.lookahead_off
// ===================
// 4H ENTRY ATR STOP
// ===================
entryClose = request.security(syminfo.tickerid, "240", close, gaps, ahead)
entryATR = request.security(syminfo.tickerid, "240", ta.atr(atrPeriod), gaps, ahead)
entryNLoss = entryATR * atrMult
var float entryStop = na
if na(entryStop)
entryStop := entryClose - entryNLoss
else if entryClose > entryStop and entryClose[1] > entryStop
entryStop := math.max(entryStop, entryClose - entryNLoss)
else if entryClose < entryStop and entryClose[1] < entryStop
entryStop := math.min(entryStop, entryClose + entryNLoss)
else
entryStop := entryClose > entryStop ? entryClose - entryNLoss : entryClose + entryNLoss
plot(entryStop, title="4H ATR Stop (Entry)", color=color.new(color.green, 0), linewidth=2)
// ===================
// 1H EXIT ATR STOP
// ===================
exitClose = request.security(syminfo.tickerid, "60", close, gaps, ahead)
exitATR = request.security(syminfo.tickerid, "60", ta.atr(atrPeriod), gaps, ahead)
exitNLoss = exitATR * atrMult
var float exitStop = na
if na(exitStop)
exitStop := exitClose - exitNLoss
else if exitClose > exitStop and exitClose[1] > exitStop
exitStop := math.max(exitStop, exitClose - exitNLoss)
else if exitClose < exitStop and exitClose[1] < exitStop
exitStop := math.min(exitStop, exitClose + exitNLoss)
else
exitStop := exitClose > exitStop ? exitClose - exitNLoss : exitClose + exitNLoss
plot(exitStop, title="1H ATR Stop (Exit)", color=color.new(color.orange, 0), linewidth=2)
// ===================
// DAILY ATR FILTER (locked to D)
// ===================
dClose = request.security(syminfo.tickerid, "D", close, gaps, ahead)
dATR = request.security(syminfo.tickerid, "D", ta.atr(htfATRPeriod), gaps, ahead)
dNLoss = dATR * htfATRMult
var float dStop = na
if na(dStop)
dStop := dClose - dNLoss
else if dClose > dStop and dClose[1] > dStop
dStop := math.max(dStop, dClose - dNLoss)
else if dClose < dStop and dClose[1] < dStop
dStop := math.min(dStop, dClose + dNLoss)
else
dStop := dClose > dStop ? dClose - dNLoss : dClose + dNLoss
plot(dStop, title="Daily ATR Stop (Filter)", color=color.new(color.blue, 0), linewidth=2)
htfPassLong = dClose > dStop
// ===================
// Signals (LONG-only)
// ===================
longEntry = ta.crossover(entryClose, entryStop)
longExit = ta.crossunder(exitClose, exitStop)
// ===================
// Orders
// ===================
if longEntry and htfPassLong and isInTimeBounds and strategy.opentrades < maxPyramids
strategy.entry("LONG", strategy.long)
if longExit and isInTimeBounds
strategy.close("LONG")
// ===================
// Alerts
// ===================
alertcondition(longEntry and htfPassLong and isInTimeBounds, title="Long Entry (4H)", message="Long Entry: 4H cross above ATR stop; Daily filter passed.")
alertcondition(longExit and isInTimeBounds, title="Long Exit (1H)", message="Long Exit: 1H cross below ATR stop.")