
다중 포지션 부린 띠 평균 회귀 전략과 고정 스톱 시스템은 기술 지표와 평균 회귀 원칙에 기반한 거래 전략이다. 이 전략은 가격이 부린 띠 하락을 겪을 때 구매하고, 가격이 특정 비율을 올릴 때 수익을 얻는다. 이것은 전형적인 역동 거래 전략이며, 시장 과매매 후의 반발 기회를 포착하는 동시에 다중 포지션 관리를 통해 위험을 분산하고 자금을 활용하는 것을 최적화한다. 이 전략의 핵심 사상은 가격이 평균에서 벗어날 때 (특히 부린 띠 하락을 돌파할 때) 가격이 평균으로 돌아가는 경향이 있다는 것이다. 이 전략은 변수적으로 설계되어 상자가 다른 시장 환경에 따라 부린 띠 변수, 최대 포지션 보유량 및 수익률을 조정할 수 있도록 한다.
이 전략의 핵심 논리는 다음과 같은 몇 가지 핵심 구성 요소에 기반합니다.
브린 벨트 신호 시스템전략: 표준 부린 띠 지표를 사용하는 전략 ((기본 파라미트:20 주기와 2 표준 차), 가격이 부린 띠 하향 궤도를 넘어갈 때 구매 신호를 생성한다. 부린 띠 하향 궤도는 동적인 지지점으로 간주되며 시장의 과매매 지역을 나타냅니다.
다중 포지션 관리: 전략은 동시에 여러 거래 포지션을 보유할 수 있으며, 각 새로운 포지션은 총 포지션 수가 최대 제한 이하일 때만 열립니다. 이 방법은 가격이 계속 하락할 때 전략이 한 번에 모든 자금을 투입하는 대신 포지션을 세분적으로 구축할 수 있습니다.
포지션 규모 계산: 각 거래의 규모는 거래의 최대 수로 나 총 공익에 의해 결정된다. 이것은 모든 잠재적인 포지션 사이에 자금을 균등하게 분배하고, 단순하지만 효과적인 위험 관리를 실현한다.
고정 비율 이 전략은 사전 설정된 수익 목표 (기본 6%) 를 탈퇴 조건으로 사용합니다. 어떤 지점의 수익이 이 임계값을 달성하거나 초과하면 시스템이 자동으로 지점을 평정하여 수익을 얻습니다.
신호 시각화전략은 구매 신호를 표시하는 그래프 (가격이 부린 띠의 경로를 벗어날 때 그린 삼각형) 와 판매 신호를 표시하는 그래프 (이익 목표가 도달했을 때 빨간 삼각형) 를 사용하여 거래자가 전략의 실행을 직관적으로 이해할 수 있도록합니다.
기술적으로 구현되는 경우, 전략은 각 가격주기에 두 가지 중요한 조건을 검사합니다: 가격이 부린 반을 넘어섰을 때 구매하고 현재 보유량은 최대 제한 이하입니다. 어떤 보유자의 수익이 기본 목표를 달성하거나 초과 할 때 판매합니다. 이러한 간단하고 명확한 논리는 전략을 이해하기 쉽고 실행 할 수있게합니다.
평균값 회귀 원리의 효율적인 활용이 전략은 시장의 평균값 회귀 경향에 기반하고, 자산 가격이 과매매 (Bulling band down) 될 때 구매하는 것으로, 이는 종종 가격 반발의 좋은 시간이다. 이 방법은 변동적이지만 유행하는 시장에서 특히 효과적이다.
위험 분산과 자금 관리: 여러 개의 동시 거래가 허용되고 자금을 균등하게 분배함으로써 전략은 간단하지만 효과적인 자금 관리를 구현합니다. 이 방법은 여러 가지 거래 기회를 잡는 능력을 유지하면서 어떤 단일 거래가 초래할 수있는 손실을 줄입니다.
명확한 수익 목표: 고정된 수익 비율은 거래마다 명확한 탈퇴 전략을 제공하여 “이윤을 달릴” 수 있는 과도한 보유 및 철회 위험을 피합니다. 이러한 기계화된 탈퇴 방법은 거래의 감정적 인 요소를 줄입니다.
변수화 설계의 유연성전략은 브린 대역 길이, 표준 격차, 최대 거래 수, 수익 목표와 같은 중요한 매개 변수를 조정할 수 있습니다. 이는 거래자가 다양한 시장 조건과 개인 위험 선호도에 따라 전략의 성능을 최적화 할 수 있도록합니다.
단순함: 코드 구조는 명확하고 간결하여, 전략은 프로그래밍 경험이 제한된 거래자에게도 이해하기, 실행 및 유지보수를 쉽게합니다.
시각 신호 피드백구매 및 판매 신호의 그래픽 표현은 전략 실행의 시각적 확인을 제공하여 거래자가 전략의 성과를 역사적 데이터에 대해 평가하고 실시간 거래 신호를 모니터링 할 수 있도록 도와줍니다.
평균값 회귀 실패 위험: 강한 추세 시장에서, 가격이 평균에서 계속 이탈하여 돌아가지 않을 수 있으며, 이는 이른바 “사격 칼” 상황을 초래합니다. 자산이 강렬한 하향 추세에있을 때, 브린의 하향 신호가 너무 일찍 유발되어 지속적인 손실이 발생할 수 있습니다.
고정된 막기의 기회비용6%의 고정 스톱은 전략에 대한 규율을 제공하지만, 강력한 상승 시에는 더 큰 잠재적인 수익을 놓치게 될 수 있습니다. 이러한 기계적 탈퇴 방법은 시장의 다양한 단계의 변동성에 적응 할 수 없습니다.
손해 방지 장치의 부재: 현재 전략은 스톱로스 기능을 구현하지 않고, 이는 가격이 계속 하락할 경우 거래가 큰 손실을 초래할 수 있음을 의미합니다. 위험 제한 장치가 없다는 것은 전략의 중대한 결함입니다.
자금 분배의 간소화: 최대 거래 수에 따라 평균 자금을 배분하는 것은 간단한 방법이지만, 시장의 변동성이나 각 거래 기회의 상대적 강도를 고려하지 않고, 자금 배분 우월성을 초래할 수 있다.
매개변수 민감도: 전략의 성능은 입력 파라미터에 크게 의존한다 (불린 띠 길, 표준 차, 수익 목표 등). 회수에서 잘하는 파라미터 조합은 미래의 시장 조건에서 좋지 않은 성능을 발휘할 수 있으며, 곡선 적합성에 대한 위험을 초래한다.
상위위위치의 위험 축적: 여러 개의 동시 포지션을 보유 할 때, 모든 포지션은 비슷한 시장 위험에 직면 할 수 있습니다, 특히 체계적인 시장 사건 동안, 이것은 진정한 분산보다는 위험을 축적 할 수 있습니다.
손해배상 장치에 가입: 중지 기능을 도입하는 것이 가장 중요한 최적화 방향입니다. 고정 비율을 기반으로 중지, 이동 중지 또는 변동성을 기반으로 적응 중지 고려 할 수 있습니다. 이것은 전략의 위험 관리 능력을 크게 향상시키고 작은 손실이 큰 손실로 변하는 것을 방지합니다.
시장 상태 필터: 이동 평균 방향이나 ADX 지표와 같은 트렌드 식별 메커니즘을 추가하여 강력한 하향 추세에서 조기 입주를 피하십시오. 전략은 시장이 가로 또는 상승 추세에있을 때만 활성화되도록 구성하여 “사격 칼”의 위험을 줄일 수 있습니다.
동적 수익 목표: 시장의 변동성에 기반한 동적 수익 목표로 고정된 퍼센티지를 대체하는 것, 예를 들어 ATR의 배수 또는 브린의 대역폭의 퍼센티지를 사용하는 것. 이것은 전략이 다른 시장 조건의 변동적 특성에 적응할 수 있도록 할 것이다.
강도에 따라 포지션 규모신호의 강도에 따라 포지션 크기를 조정합니다. 예를 들어, 가격과 브린의 오차 정도입니다. 더 강력한 신호에 더 많은 자금을 배분하여 자금 사용 효율을 최적화합니다.
시간 필터를 추가합니다.: 시간 기반 필터링을 적용하여 시장이 유동성이 낮거나 유동성이 높은 시점에 거래하는 것을 피하십시오. 중요한 경제 자료가 발표되기 전과 후에. 이것은 비정상적인 가격 변동으로 인한 위험을 줄일 수 있습니다.
연관성 분석과 분산 투자다중 자산 거래에서 연관성 검사를 추가하여 여러 포지션이 실제로 위험 분산을 실현하고 고도로 연관된 자산이 동시에 거래되는 위험 집중을 피합니다.
탈퇴 전략의 다양성다단계 부분 수익 전략을 고려하십시오. 예를 들어, 3%의 수익을 달성하면 50%의 매출을 달성하고 6%의 매출을 달성하면 나머지 부분을 매출을 달성하여 단기 수익과 장기 잠재력을 균형을 잡습니다.
다중 포지션 브린 띠 평균 회귀 전략과 고정 스톱 시스템은 단순하지만 강력한 거래 시스템으로, 가격 과매매 후의 반발 기회를 잡기 위해 고안되었다. 기술 분석의 평균 회귀 원칙과 다중 포지션 관리를 결합하여, 가격이 브린 띠의 궤도를 벗어날 때 구매하고 기본 수익 목표를 달성 할 때 판매함으로써 안정적인 거래 실행을 달성합니다.
이 전략의 주요 장점은 개념의 간결성과 구현 직관성, 그리고 다양한 거래 스타일과 시장 환경에 적합한 유연한 파라미터 설정이다. 그러나 가장 중요한 단점은 스톱 로즈 장치의 부재와 강력한 트렌드 시장에 대한 취약성이다.
스톱 로즈 기능, 시장 상태 필터, 동적 수익 목표 등의 최적화 조치를 추가함으로써 이 전략은 위험 조정 후의 수익을 크게 향상시킬 잠재력이 있다. 특히, 평균 회귀 특성이 뚜렷한 변동 시장에서, 최적화 후의 전략은 뛰어난 성능을 발휘할 수 있다.
이 전략은 통계적 원칙에 기반한 체계화된 거래 방법을 추구하는 거래자들에게 개인적인 위험 선호와 시장 조건에 따라 더욱 커스터마이징 및 개선할 수 있는 견고한 기반을 제공합니다. 독립적인 거래 시스템으로서 또는 더 큰 포트폴리오의 일부로서, 적절히 최적화된 브린벨트 평균 회귀 전략은 거래자의 도구 상자에 귀중한 자산이 될 수 있습니다.
/*backtest
start: 2024-06-09 00:00:00
end: 2025-06-08 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// BB Lower + 6TP (Param) with dynamic trade count (pyramiding const workaround)
// Allows testing different numbers of concurrent trades via input
//@version=6
// Use a high constant for pyramiding; dynamic maxTrades enforced in logic
strategy("BB Lower + 6TP (Param)", overlay=true, pyramiding=10)
// ── Inputs ─────────────────────────────────────────────────────────────────────
maxTrades = input.int(2, "Max Concurrent Trades", minval=1, tooltip="Max simultaneous positions")
profitPct = input.float(6.0, "Take Profit (%)", minval=0.0, tooltip="Profit target per trade")
bbLen = input.int(20, "BB Length", tooltip="Bollinger Bands period")
bbStd = input.float(2.0, "BB StdDev", tooltip="Bollinger Bands standard deviation")
// ── Convert percentage to decimal ───────────────────────────────────────────────
profitThresh = profitPct / 100
// ── Bollinger Bands ────────────────────────────────────────────────────────────
[_, bbUpper, bbLower] = ta.bb(close, bbLen, bbStd)
// ── Trade sizing ───────────────────────────────────────────────────────────────
tradeSize = strategy.equity / maxTrades
qtyToTrade = tradeSize / close
// ── Signal conditions ──────────────────────────────────────────────────────────
buyCond = ta.crossunder(close, bbLower)
inTrade = strategy.opentrades > 0 // number of open trades
entryPrice = strategy.position_avg_price
sellCond = inTrade and (close / entryPrice - 1) >= profitThresh
// ── Entries & Exits ────────────────────────────────────────────────────────────
// Only enter if below maxTrades
if buyCond and strategy.opentrades < maxTrades
strategy.entry("Long", strategy.long, qty=qtyToTrade)
if sellCond
strategy.close("Long")
// ── Plot signals ───────────────────────────────────────────────────────────────
plotshape(buyCond, title="Buy", style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(sellCond, title="Sell", style=shape.triangledown, location=location.abovebar, color=color.red)