리소스 로딩... 로딩...

바닥 사냥꾼 전략

저자:차오장, 날짜: 2024-02-06 09:26:54
태그:

img

전반적인 설명

바닥 사냥꾼 전략 (Bottom Hunter strategy) 은 암호화폐에 대한 단기 거래 전략이다. 이 전략은 하락 추세 중 바닥을 인식함으로써 적절한 입구점을 식별한다.

전략 원칙

이 전략은 바닥을 식별하기 위해 여러 기술적 지표를 결합합니다. 구체적으로, 그것은 바닥 반전 신호를 판단하기 위해 MACD 지표를, 과잉 판매 상태를 결정하기 위해 RSI 지표를, 그리고 가격이 하부 레일 아래에 있는지 결정하기 위해 볼링거 밴드를 사용합니다. 모든 조건이 충족되면 구매 신호가 생성됩니다.

첫째, 전략은 바닥을 판단하기 위해 MACD 분리를 사용합니다. 소위 분리는 MACD 지표가 새로운 최저치를 만들지 않는 동안 가격이 새로운 최저치를 만드는 것을 의미합니다. 이 상황은 거래 부피의 약화를 나타내고 일반적으로 임박한 트렌드 반전을 예고합니다.

둘째, 전략은 RSI 지표가 31.1 이하가 되어야 합니다.

마지막으로, 전략은 폐쇄 가격이 볼링거 밴드의 중간 레일 아래에 있어야 합니다. 이것은 가격이 정상적인 범위 아래로 떨어졌음을 나타냅니다. 따라서 더 나은 구매 기회를 제공합니다.

위의 모든 조건이 동시에 충족되면 전략은 구매 신호를 생성하고 포지션을 설정합니다.

이점 분석

바닥 사냥꾼 전략은 다음과 같은 장점을 가지고 있습니다:

  1. 바닥을 결정하기 위해 여러 가지 지표를 사용하는 것은 바닥 식별의 정확성을 보장합니다.
  2. 역전 신호를 판단하기 위해 MACD 분리를 활용하는 것은 경험이 풍부한 거래 기술입니다.
  3. 과반 판매량과 비정상성을 판단하면 거짓 파업의 위험을 피할 수 있습니다.
  4. 보수적인 위치 통제, 주요 지점에서만 포지션을 구축, 과도한 거래를 피합니다.

위험 분석

이 전략에는 또한 몇 가지 위험이 있습니다.

  1. 시장은 적시에 스톱 로스가 없으면 더 떨어질 수 있습니다.
  2. 바닥을 판단하는 여러 조건의 조합은 어떤 시나리오에서 바닥을 놓칠 수 있습니다.
  3. RSI 임계값과 같은 매개 변수의 수동 결정은 전략 성과에 영향을 줄 수 있습니다.

위의 위험에 대응하여 실시간 추적 스톱 손실, 매개 변수 범위 조정 등이 최적화를 위해 사용될 수 있습니다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화 될 수 있습니다.

  1. 시장 변동성에 기초한 스톱 로스 포지션을 유연하게 조정하기 위한 적응성 스톱 로스 메커니즘을 강화합니다.
  2. 최적의 매개 변수를 식별하기 위해 구매 신호 결정 기준을 테스트하고 최적화합니다.
  3. 기계 학습 알고리즘을 늘려 매개 변수와 거래 규칙을 자동으로 식별
  4. 트렌드 판단 모듈을 추가하여 트렌드 시장에서 통합 시장에 진입하는 것을 피합니다.
  5. 부피 변화와 같은 추가 지표를 포함 하 여 바닥 식별을 개선

요약

바닥 사냥꾼 전략은 초과 수익을 달성하기 위해 핵심 바닥을 구입합니다. 바닥을 결정하는 이유는 강력한 반면 잘못된 신호를 피하기 위해 여러 필터 조건을 결합합니다. 적절한 매개 변수 조정 및 스톱 손실 제어로이 전략은 단기 암호화폐 거래에서 잘 수행 할 수 있습니다.


/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD Divergence Strategy", shorttitle="Strategy: MACD Dive", overlay=true)

// MACD设置
fastLength = input.int(12, "Fast Length")
slowLength = input.int(26, "Slow Length")
signalSmoothing = input.int(9, "Signal Smoothing")

[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// 计算99日EMA均线
ema99 = ta.ema(close, 99)

// 计算RSI
rsiLength = input.int(14, title="RSI Length")
rsi = ta.rsi(close, rsiLength)

// 计算布林带中轨
length = input.int(20, "BB Length")
src = input(close, "Source")
mult = input.float(2.0, "BB StdDev")
basis = ta.sma(src, length)

// 买入筛选条件
priceLow = ta.lowest(low[1], 60)
macdLow = ta.lowest(macdLine[1], 60)
divergence = low < priceLow and macdLine > macdLow

allHighsBelowEma99 = true
for i = 0 to 14
    if high[i] > ema99
        allHighsBelowEma99 := false

rsiBelow = rsi < 31.1
priceDifference = (high - low) / low * 100

buySignal1 = divergence and allHighsBelowEma99 and rsiBelow
buySignal2 = high < ema99 and priceDifference >= 3 and close < open and high < basis 
buySignal3 = buySignal1 or buySignal2

// 定义一个变量来存储买入时的价格
var float buyPrice = na

// 买入逻辑
if buySignal3
    buyPrice := close // 存储买入时的价格
    strategy.entry("Buy", strategy.long)

// 止盈和止损条件
longTakeProfit = buyPrice * 1.1 // 止盈设为买入价格的1.2倍
longStopLoss = buyPrice * 0.98// 止损设为买入价格的0.99倍

// 应用止盈和止损
strategy.exit("Exit", "Buy", limit=longTakeProfit, stop=longStopLoss)
// 绘制买入信号
plotshape(series=buySignal3, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)


더 많은