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

캔들스타크 근접 방향에 기반한 고주파 브레이크 트레이딩 전략

저자:차오장, 날짜: 2024-12-12 14:35:24
태그:HFTSLTPROEMDDTPR

img

전반적인 설명

이 전략은 1분 촛불 폐쇄 방향에 기반한 고주파 거래 전략이다. 이 전략은 폐쇄 및 개장 가격의 관계를 분석하여 시장 트렌드를 결정하며, 상승 촛불 후 긴 포지션을 취하고 하락 촛불 후 짧은 포지션을 취한다. 고정 보유 기간을 고용하고, 다음 촛불 의 닫기에 포지션을 닫고, 위험을 제어하기 위해 매일 거래 주파수를 제한한다.

전략 원칙

핵심 논리는 단기 시장 트렌드를 판단하기 위해 촛불의 가까운 방향에 의존합니다:

  1. 닫기 가격이 열기 가격보다 높을 때, 상승 촛불을 형성하여, 현재 기간에 구매자의 지배를 나타냅니다. 전략은 길게 간다.
  2. 닫기 가격이 열기 가격보다 낮아지고, 하향 촛불을 형성하면 현재 기간에 판매자의 지배력을 나타냅니다. 전략은 짧습니다.
  3. 포지션은 다음 촛불이 닫을 때 닫히며 빠른 수익 또는 손실 절감을 가능하게합니다.
  4. 하루 거래는 200개로 제한됩니다.
  5. 각 거래는 계좌 잔액의 1%를 사용합니다. 위험 통제를 구현합니다.

전략적 장점

  1. 단순하고 명확한 거래 논리, 이해하기 쉽고 실행하기 쉽습니다
  2. 짧은 보유 기간은 시장 변동성 위험을 감소시킵니다.
  3. 고정된 대기 시간은 주관적 판단 편견을 제거합니다.
  4. 일일 거래 제한은 위험을 효과적으로 제어합니다.
  5. 비율에 기반한 위험 관리로 계좌 자본을 보호합니다.
  6. 시각적 무역 신호 표시 전략 모니터링 및 최적화를 촉진

전략 위험

  1. 고주파 거래는 높은 거래 비용을 초래할 수 있습니다. 솔루션: 낮은 스프레드를 가진 도구를 선택하고 거래 시간을 최적화하십시오.
  2. 변동성 시장에서의 잠재적 인 연속 손실 솔루션: 시장 변동성 필터링 조건을 추가
  3. 전략은 거짓 파업에 의해 영향을 받을 수 있습니다. 해결책: 부피 및 다른 확인 지표를 포함합니다.
  4. 고정 보유 기간은 더 큰 수익 기회를 놓칠 수 있습니다. 솔루션: 시장 조건에 따라 보유 기간을 동적으로 조정합니다.
  5. 시장 정보 및 기술 지표에 대한 제한적 고려 솔루션: 진입 최적화를 위해 추가 기술 지표를 포함

전략 최적화 방향

  1. 부피 지표를 구현: 부피 분석을 통해 촛불의 유효성을 확인하고 신호 신뢰성을 향상시킵니다.
  2. 트렌드 필터를 추가: 주요 트렌드 방향으로 거래 이동 평균과 같은 트렌드 지표와 결합
  3. 동적 보유 기간: 더 나은 적응성을 위해 시장 변동성에 따라 보유 시간을 조정합니다.
  4. 자금 관리 최적화: 과거 성과에 따라 포지션 크기를 동적으로 조정
  5. 변동성 필터를 추가합니다. 매우 높은 변동성 또는 낮은 변동성 조건에서 거래를 중단합니다.
  6. 시간 필터를 적용하십시오: 고 변동성 시장 개장 및 폐쇄 기간을 피하십시오.

요약

이 전략은 촛불 근접 방향에 기반한 고주파 거래 시스템으로 간단한 가격 행동 분석을 통해 단기 시장 기회를 포착합니다. 이 전략의 강점은 간단한 논리, 짧은 보유 기간 및 통제 가능한 위험에 있으며, 높은 거래 비용 및 잘못된 브레이크아웃과 같은 도전에 직면합니다. 추가 기술 지표와 최적화 조치를 도입함으로써 전략의 안정성과 수익성이 더욱 향상 될 수 있습니다. 단기 거래 기회를 찾는 투자자에게는 테스트하고 개선할 가치가있는 거래 전략입니다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-12-10 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Candle Close Strategy", overlay=true)

// Define conditions for bullish and bearish candlesticks
isBullish = close > open
isBearish = close < open

// Track the number of bars since the trade was opened and the number of trades per day
var int barsSinceTrade = na
var int tradesToday = 0

// Define a fixed position size for testing
fixedPositionSize = 1

// Entry condition: buy after the close of a bullish candlestick
if (isBullish and tradesToday < 200)  // Limit to 200 trades per day
    strategy.entry("Buy", strategy.long, qty=fixedPositionSize)
    barsSinceTrade := 0
    tradesToday := tradesToday + 1

// Entry condition: sell after the close of a bearish candlestick
if (isBearish and tradesToday < 200)  // Limit to 200 trades per day
    strategy.entry("Sell", strategy.short, qty=fixedPositionSize)
    barsSinceTrade := 0
    tradesToday := tradesToday + 1

// Update barsSinceTrade if a trade is open
if (strategy.opentrades > 0)
    barsSinceTrade := nz(barsSinceTrade) + 1

// Reset tradesToday at the start of a new day
if (dayofmonth != dayofmonth[1])
    tradesToday := 0

// Exit condition: close the trade after the next candlestick closes
if (barsSinceTrade == 2)
    strategy.close("Buy")
    strategy.close("Sell")

// Plot bullish and bearish conditions
plotshape(series=isBullish, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=isBearish, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Plot the candlesticks
plotcandle(open, high, low, close, title="Candlesticks")


관련

더 많은