이동 평균 크로스오버와 촛불 패턴에 기반한 비트코인 스칼핑 전략

저자:차오장, 날짜: 2024-02-29 12:01:47
태그:

img

전반적인 설명

이것은 9주기 및 15주기 이동 평균 및 촛불 패턴의 크로스오버를 기반으로 하는 5분 시간 프레임 비트코인 스칼핑 전략이다. 구체적으로, 빠른 이동 평균이 느린 이동 평균을 넘어서고 촛불이 망치 또는 마루보즈를 형성할 때 구매 신호를 생성한다. 빠른 MA가 느린 MA를 넘어서면 판매 신호가 생성된다. 진입 후 0.5%의 스톱 로스와 0.5%의 영업이익을 설정한다.

전략 논리

이 전략은 트렌드를 결정하기 위해 다른 기간을 가진 두 개의 이동 평균을 사용합니다. 9 기간 MA는 더 민감하며 단기 트렌드를 포착 할 수 있습니다. 15 기간 MA는 더 안정적이며 약간의 소음을 필터 할 수 있습니다. 더 빠른 MA가 느린 MA를 넘을 때 단기 트렌드가 상승하고 있음을 나타냅니다. 단기 트렌드가 하락하는 경우 역전이 발생합니다.

또한 촛불 패턴은 신호 확인에 사용됩니다. 구매 신호는 망치 및 마루보즈와 같은 강한 촛불에서만 생성됩니다. 이것은 시장 통합 중에 잘못된 신호를 피하는 데 도움이됩니다.

특정 거래 신호와 규칙은 다음과 같습니다.

  1. 9주기 MA는 15주기 MA를 넘어서고, 15주기 MA의 각도는 30도 이상이며, 상승 추세를 나타냅니다.

  2. 만약 촛불이 망치나 마루보즈로 형성되어 강한 상승 동력을 보여준다면, 구매 신호가 생성됩니다.

  3. 9주기 MA가 15주기 MA보다 낮으면 하향 추세를 나타내고 촛불 패턴에 상관없이 판매 신호를 생성합니다.

  4. 스톱 로스를 0.5%로 설정하고 진입 후 이윤을 0.5%로 취합니다.

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 작은 마감과 안정적인 이익 - 거래당 손실은 제한되어 시장에서도 큰 마감을 피할 수 있습니다.

  2. 명확한 신호 - 촛불 패턴과 결합된 MA 크로스오버는 트렌드 반전 지점을 효과적으로 식별합니다.

  3. 쉬운 자동화 - 간단한 신호와 조정 가능한 매개 변수는 알고리즘 거래를 가능하게합니다.

  4. 비트코인 변동성에 적합합니다. 빈번한 비트코인 변동은 많은 단기 거래 기회를 제공합니다.

위험 분석

또한 몇 가지 위험이 있습니다.

  1. 여러 개의 작은 손실에 유연합니다 - 중단 가능성이 높으면 누적 손실이 발생합니다.

  2. 매개 변수 조정이 필요합니다. MA 기간과 이익 설정이 시장 조건과 일치하지 않으면 효과는 감소합니다.

  3. 강한 트렌드에 의존합니다 - 옆으로 움직이는 것은 과도한 거래로 이어질 수 있지만 작은 이익입니다.

해결책은 다음과 같습니다.

  1. 더 큰 크기를 거래해서 좋은 리스크/리워드 비율을 보장합니다.

  2. 시장 변화에 따라 동적으로 매개 변수를 조정합니다.

  3. 시장 상태를 파악하고 통합 거래를 피하십시오.

최적화 방향

전략을 최적화하는 몇 가지 방법:

  1. 스톱 로스 및 수익을 취하기 위한 적응 메커니즘을 추가합니다. 예를 들어, 이동 평균에 대한 후속 스톱 로스, 동적 수익 취지 등.

  2. 다른 지표를 이용한 필터를 추가합니다. 예를 들어, 과잉 구매/대량 판매, 부피 증가 등에 대한 RSI

  3. 다른 상품에 대한 테스트 - 상품, 인덱스 선물 등에 스칼핑 할 때 유사한 논리를 적용하십시오.

  4. 최적의 매개 변수를 찾기 위해 매개 변수 최적화와 역 테스트를 수행합니다.

결론

요약하자면, 이것은 효과적인 비트코인 스칼핑 전략이다. 구현하기 쉽고 매우 구성 가능하다. 지속적인 최적화로 안정적인 스칼핑 수익을 얻을 수 있다. 그러나 거래 위험은 포지션 사이즈와 스톱 로스를 통제함으로써 신중하게 관리되어야합니다. 게다가 전략은 변화하는 시장 역동성과 개인의 능력을 기반으로 향상 될 수 있습니다.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true)

// Define input parameters
fast_length = input(9, "Fast MA Length")
slow_length = input(15, "Slow MA Length")
stop_loss_percent = input(0.5, "Stop Loss (%)")
target_percent = input(0.5, "Target (%)")
angle_threshold = input(30, "Angle Threshold (degrees)")

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Define candlestick patterns
is_pin_bar() =>
    pin_bar = abs(open - close) > 2 * abs(open[1] - close[1])
    high_tail = max(open, close) - high > abs(open - close) * 1.5
    low_tail = low - min(open, close) > abs(open - close) * 1.5
    pin_bar and high_tail and low_tail

is_marubozu() =>
    marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75
    no_upper_shadow = high == max(open, close)
    no_lower_shadow = low == min(open, close)
    marubozu and no_upper_shadow and no_lower_shadow

is_full_body() =>
    full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95
    full_body

// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Calculate angle of slow moving average
ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159))

// Generate buy/sell signals based on angle condition and candlestick patterns
buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body())
sell_signal = crossunder(fast_ma, slow_ma)

// Calculate stop-loss and target levels
stop_loss_level = close * (1 - stop_loss_percent / 100)
target_level = close * (1 + target_percent / 100)

// Execute trades based on signals with stop-loss and target
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level)

// Plot buy/sell signals on chart (optional)
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Plot angle line
hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)


더 많은