
여러 계층의 격자 동적 균형 거래 전략은 흔들림 영역을 기반으로 한 양적 거래 방법이며, 사전 설정된 가격 영역 내에서 여러 계층의 격자 거래점을 구축하여 자금의 동적 분배와 위험 분산을 실현합니다. 이 전략은 격자 거래, 고정 투자 전략 (DCA) 및 동적 중지 중지 손실 메커니즘을 결합하여 시장의 격자 흔들림을 포착하여 안정적인 수익을 얻으려는 것입니다. 전략의 핵심 아이디어는 가격이 하락할 때 분량 창고를 구축하고, 상승할 때 점차적으로 수익을 얻으며, 여러 계층의 격자 배치를 통해 위험과 수익의 균형을 달성합니다.
이 전략의 핵심 원리는 시장 가격이 특정 범위 내에서 흔들리는 가정에 기반한다. 우선, 전략은 상한과 하한 두 개의 경계를 포함하는 가격 통로를 설정하고, 사용자 정의 파라미터를 통해 흔들림 범위의 범위를 결정한다. 이 범위 내에서, 시스템은 격자 간격의 비율에 따라 여러 개의 평분 간격의 가격 수준을 계산하여 격자 거래 매트릭스를 형성한다.
가격이 흔들림 범위에 들어와 포지션이 없을 때, 전략은 현재 격자 위치에서 초기 포지션을 수행합니다. 그 다음, 가격이 새로운 격자 위치로 이동할 때, 시스템은 설정된 포지션 비율에 따라 추가 투자하여 포지션 구축의 효과를 달성합니다. 각 격자 위치는 대응 입시 가격과 수를 기록하여 후속 중지 작업의 기초를 제공합니다.
정지 메커니즘은 계층화 처리 방식을 채택하고, 각 격자 위치의 포지션은 독립적인 정지 목표를 가지고 있다. 시장 가격이 특정 격자 위치의 정지 가격을 달성하면, 시스템은 대응하는 포지션을 평행하고, 다른 격자의 포지션은 계속 유지된다. 이 메커니즘은 전략이 시장 상승 과정에서 점진적으로 수익을 올릴 수 있도록 보장하며, 동시에 특정 시장 틈새를 유지한다.
이 전략은 또한 여러 개의 중지 손해 보호 장치를 통합하고 있으며, 자본 상쇄와 가격 상쇄의 두 가지 차원을 포함한다. 자본 상쇄는 계좌의 총권 이득의 철회 폭을 기반으로하며, 가격 상쇄는 지분 평균 가격의 하락을 기반으로 한다. 가격이 기본 통로를 뚫을 때, 전략은 즉시 모든 지점을 비우고, 추세적인 상황에서 큰 손실을 피한다.
여러 계층의 격자 동적 균형 거래 전략은 위험 분산의 중요한 이점을 가지고 있다. 다양한 가격 수준에서 여러 거래 위치를 구축함으로써, 전략은 단일 입점의 시점 위험을 효과적으로 감소시킨다. 초기 입점 시기가 좋지 않더라도, 후속의 분기 상장 메커니즘은 평균 비용을 희석하고 전체 포지션의 수익 가능성을 향상시킬 수 있다.
전략의 자동화 정도가 높고, 인위적인 의사 결정의 주관성과 감정적 영향을 줄인다. 모든 거래 결정은 사전 설정된 수학 모델과 논리 규칙에 기초하여, 실행의 일관성과 규율을 보장한다. 이러한 기계화된 거래 방식은 특히 격변하는 시장 환경에 적합하며, 가격 변동으로 인한 중매 기회를 지속적으로 포착할 수 있다.
자금 활용 효율성은 이 전략의 또 다른 중요한 장점이다. 계층적 인 창고 및 계층적 인 정지 메커니즘을 통해 전략은 다양한 시장 조건에 따라 자금 분배를 유연하게 조정할 수 있습니다. 가격이 하락하는 단계에서 단계적으로 포지션 규모를 증가시키고, 가격이 상승하는 단계에서 배당 수익을 얻습니다. 이러한 동적 균형 메커니즘은 자금 사용 효율을 극대화하는 데 도움이됩니다.
전략의 위험 제어 메커니즘은 완벽하고 여러 계층의 보호 조치를 포함합니다. 전략은 전통적인 중지 손해 메커니즘 외에도, 시장의 추세적 변화가 발생했을 때 적시에 퇴출할 수 있는 통로 돌파구 보호를 설정하고, 불리한 시장 환경에서 손실을 계속 받지 않도록합니다.
이 전략의 가장 주요한 위험은 시장의 추세적 변화에서 온다. 시장이 일방적으로 상승하거나 하락하는 상황이 발생하면, 격자 거래의 우위는 약점으로 변한다. 일방적으로 하락하는 경우, 전략은 계속 포지션을 높여서 상환 손실이 계속 확대된다. 일방적으로 상승하는 경우, 전략은 너무 빨리 상환하여 크게 상승하는 기회를 놓친다.
범위를 설정하는 합리성은 전략의 성과에 직접적으로 영향을 미칩니다. 흔들림 범위를 너무 좁게 설정하면 전략은 채널을 뚫고 출구 메커니즘을 자주 유발할 수 있으며 거래 비용이 너무 높습니다. 범위를 너무 넓게 설정하면 전략은 장기간 중단 조건을 유발할 수 없으며 자금 사용 효율이 낮습니다.
격자 간격과 가장점 비율의 파라미터 설정은 신중한 균형이 필요합니다. 간격이 너무 작으면 거래 빈도가 너무 높고 수수료 비용이 증가합니다. 간격이 너무 크면 가격 변동 기회를 놓칠 수 있습니다. 가장점 비율이 너무 커지면 총회 자금 소모가 가속화되고 포지션 폭발 위험이 증가합니다.
전략은 시장 유동성에 대한 요구가 있다. 유동성이 부족한 시장에서, 큰 금액의 주문은 슬라이드 손실을 초래할 수 있으며, 전략의 실제 실행 효과에 영향을 미칠 수 있다. 또한, 전략의 재검토 결과는 실장 성과와 차이가 있을 수 있으며, 실제 거래의 다양한 비용과 제한 요소를 고려해야 한다.
동적 영역 조정은 전략 최적화의 중요한 방향이다. 브린 밴드, ATR 등과 같은 기술 분석 지표를 도입하여 시장 변동률에 따라 동적으로 흔들림 영역의 상하계를 조정할 수 있다. 이를 통해 전략이 다른 시장 환경에 더 잘 적응하고, 영역 설정의 합리성과 효과를 높일 수 있다.
매장 전략의 지능적 최적화는 전략의 성능을 크게 향상시킬 수 있다. RSI, MACD 등의 기술 지표와 결합하여 매장 강도를 증가시키고 매장 비율을 감소시킬 수 있다. 이러한 조건부 매장 메커니즘은 매장 시기를 향상시키고 평균 비용을 줄일 수 있다.
정지 메커니즘은 보다 유연한 동적 조정 방식을 채택할 수 있다. 예를 들어, 시장의 변동률에 따라 정지 비율을 조정하고, 높은 변동기간에 정지 목표를 높이고, 낮은 변동기간에 정지 목표를 낮추는 것이다. 또한 모바일 정지 메커니즘을 도입할 수 있으며, 가격이 계속 상승할 때 동적으로 정지 위치를 조정하여 수익 잠재력을 극대화한다.
위험 관리 시스템의 완성도는 전략 최적화의 핵심 요소입니다. 변동성 모니터링 지표를 늘리고, 시장 변동성이 하락점을 초과하면 새로운 입장을 잠정 중단할 수 있습니다. 연관성 분석을 도입하여, 매우 연관성이 높은 품종에 대한 재배치를 피하십시오.
다중 시간 프레임 분석의 통합은 전략의 적응성을 향상시킬 수 있다. 더 긴 시간 프레임에서 시장 추세를 판단할 수 있으며, 추세가 상승할 때 격자 밀도를 높이고, 추세가 하락할 때 포지션 증가 빈도를 줄일 수 있다. 이러한 다차원 분석 방법은 전략이 다양한 시장 환경에서 안정적인 성능을 유지하는 데 도움이 된다.
다층그리드 동적균형 거래 전략은 격자 배열과 위험 제어 메커니즘을 잘 설계하여 위험을 통제하는 전제 하에서 비교적 안정적인 수익을 얻을 수 있는 격자 배열 동적균형 거래 전략입니다. 전략의 핵심 장점은 위험 분산, 자동화 실행 및 자금 활용 효율성에 있습니다. 그러나 추세 시장 적응성, 부족한 파라미터 감성이 높은 과제에 직면하고 있습니다.
이 전략을 성공적으로 구현하려면 투자자가 시장 특성을 깊이 이해하고, 여러 매개 변수를 합리적으로 설정하고, 전략의 성과를 지속적으로 모니터링해야합니다. 동적 조정 장치, 지능화 최적화 및 완벽한 위험 관리 시스템을 도입함으로써 전략의 안정성과 적응력을 더욱 향상시킬 수 있습니다. 투자자는 이 전략을 사용할 때 위험 특성을 충분히 이해하고, 자신의 위험 견딜 능력과 투자 목표와 함께 합리적으로 구성해야합니다.
/*backtest
start: 2025-04-29 00:00:00
end: 2025-05-29 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BTC Grid Trading Strategy",
overlay=true,
initial_capital=10000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
currency=currency.USDT,
commission_type=strategy.commission.percent,
commission_value=0.1,
pyramiding=100,
max_lines_count=500,
max_labels_count=500)
// 1. 用户自定义参数
startCapital = input.float(10000, "起始资金(USDT)", minval=1000)
lowerBound = input.float(50000, "区间下限", minval=1000)
upperBound = input.float(120000, "区间上限", minval=1000)
gridSpacingPct = input.float(1.0, "网格间距(%)", minval=0.1, maxval=10) / 100
investmentPct = input.float(1.0, "加仓比例(%)", minval=0.1, maxval=5) / 100
takeProfitPct = input.float(1.0, "止盈比例(%)", minval=0.1, maxval=5) / 100
stopLossPct = input.float(10.0, "止损比例(%)", minval=1, maxval=20) / 100
priceStopPct = input.float(5.0, "价格止损比例(%)", minval=1, maxval=15) / 100
// 2. 绘制自定义震荡区间
plot(lowerBound, "区间下限", color=color.red, linewidth=2, style=plot.style_linebr)
plot(upperBound, "区间上限", color=color.green, linewidth=2, style=plot.style_linebr)
bgcolor(close >= lowerBound and close <= upperBound ? color.new(color.blue, 90) : na, title="震荡区间背景")
// 3. 计算网格水平
gridSpacing = (upperBound - lowerBound) * gridSpacingPct
gridLevels = math.floor((upperBound - lowerBound) / gridSpacing)
// 4. 初始化仓位跟踪
var float[] entryPrices = array.new_float(gridLevels + 1, na)
var bool[] gridFilled = array.new_bool(gridLevels + 1, false)
var float[] gridQtys = array.new_float(gridLevels + 1, 0.0)
var int lastGridPosition = -1
// 6. 寻找当前价格所在的网格位置(修正算法)
getCurrentGridPosition(price) =>
if price <= lowerBound
-1
else if price >= upperBound
gridLevels + 1
else
int((price - lowerBound) / gridSpacing)
// 7. 网格交易核心逻辑(修复开仓和止盈问题)
inChannel = close >= lowerBound and close <= upperBound
currentGridPosition = getCurrentGridPosition(close)
// 初始入场(避免在边界开仓)
if inChannel and strategy.position_size == 0 and currentGridPosition > 0 and currentGridPosition < gridLevels
qty = (strategy.equity * investmentPct) / close
entryId = "Grid-Buy-"+str.tostring(currentGridPosition)
strategy.entry(entryId, strategy.long, qty=qty)
array.set(gridFilled, currentGridPosition, true)
array.set(entryPrices, currentGridPosition, close)
array.set(gridQtys, currentGridPosition, qty)
// 网格加仓逻辑
if inChannel and strategy.position_size > 0 and currentGridPosition >= 0 and currentGridPosition <= gridLevels
// 仅当移动到新网格时才加仓
if currentGridPosition != lastGridPosition and not array.get(gridFilled, currentGridPosition)
qty = (strategy.equity * investmentPct) / close
entryId = "Grid-Buy-"+str.tostring(currentGridPosition)
strategy.entry(entryId, strategy.long, qty=qty)
array.set(gridFilled, currentGridPosition, true)
array.set(entryPrices, currentGridPosition, close)
array.set(gridQtys, currentGridPosition, qty)
// 网格止盈逻辑(完整平仓)
for i = 0 to gridLevels
if array.get(gridFilled, i)
entryPrice = array.get(entryPrices, i)
targetPrice = entryPrice * (1 + takeProfitPct)
if high >= targetPrice
entryId = "Grid-Buy-"+str.tostring(i)
qty = array.get(gridQtys, i)
strategy.close(entryId, qty=qty)
array.set(gridFilled, i, false)
array.set(entryPrices, i, na)
array.set(gridQtys, i, 0.0)
// 更新最后网格位置
lastGridPosition := currentGridPosition
// 8. 改进的止损逻辑(分离资金止损和价格止损)
if strategy.position_size > 0
// 资金止损(总权益止损)
if strategy.equity < startCapital * (1 - stopLossPct)
strategy.close_all("资金止损")
// 价格止损(基于入场均价)
avgPrice = strategy.position_avg_price
if close < avgPrice * (1 - priceStopPct)
strategy.close_all("价格止损")
// 9. 通道突破终止条件
if (close > upperBound or close < lowerBound) and strategy.position_size > 0
strategy.close_all("通道突破")
// 10. 状态显示
plot(strategy.equity, title="账户净值")