K-라인 캔들스틱 흡수 패턴을 기반으로 한 양방향 거래 양적 전략

OHLC VOL ATR
생성 날짜: 2024-12-12 11:27:27 마지막으로 수정됨: 2024-12-12 11:27:27
복사: 0 클릭수: 364
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

K-라인 캔들스틱 흡수 패턴을 기반으로 한 양방향 거래 양적 전략

개요

이 전략은 K선 그래프에 기반한 양방향 거래 시스템이다. 이 전략은 인접한 K선들의 방향성, 진폭, 거래량 관계를 분석함으로써 시장에서 흡수 특성을 가진 형태를 식별하고, 조건이 있을 때 그에 따른 방향으로 거래를 한다. 이 전략은 퍼센티지 자금 관리 방식을 채택하고, 완전한 청산 포지션 논리가 있다.

전략 원칙

이 전략의 핵심 논리는 세 가지 핵심 조건에 기반합니다.

  1. 인접한 K선 방향의 반대: 개시 가격과 닫기 가격의 비교를 통해 K선 방향을 판단하여, 두 개의 인접한 K선에서 반대되는 움직임을 나타내도록 요구한다.
  2. 진동 관계 분석: 두 K 선의 가격 진동을 계산하고 비교합니다. (폐쇄 가격과 오픈 가격의 절대 값) 후의 K 선의 진동이 전의 K 선보다 더 크기를 요구합니다.
  3. 거래량 특징: 첫 번째 K 라인의 거래량이 두 번째 K 라인보다 많고, 두 번째 K 라인의 거래량은 이전 거래량보다 작아야 한다.

이 세 가지 조건이 동시에 충족되면, 전략은 최신 K 선의 방향에 따라 거래 방향을 결정한다: 양선이라면 더하고, 음선이라면 빈이다. 전략은 전체 포지션을 사용하여 거래하고, 상태 변수를 통해 포지션 상태를 추적한다.

전략적 이점

  1. 다차원 분석: 가격 형태, 진폭 및 거래량과 결합하여 세 차원을 분석하여 신호 신뢰성을 높인다.
  2. 양방향 거래: 시장의 양방향 기회를 포착하여 시장의 변동성을 최대한 활용할 수 있다.
  3. 리스크 관리가 완벽합니다. 퍼센티지 재원 관리가 사용되며, 스톱 로즈 스톱 조건을 유연하게 설정할 수 있습니다.
  4. 시각화 지원: 거래 신호를 그래픽으로 표시하여 분석 및 최적화를 용이하게 합니다.
  5. 상태 관리가 명확하다: 상태 변수를 통해 포지션을 정확하게 제어하고, 반복적으로 포지션을 열지 않도록 한다.

전략적 위험

  1. 가짜 돌파 위험: 흔들리는 시장에서 가짜 흡수 형태가 발생할 수 있으며, 이는 잘못된 신호로 이어질 수 있다.
  2. 슬라이드 포인트 영향: 시장이 급격하게 변동할 때 실제 거래 효과에 영향을 미치는 큰 슬라이드 포인트에 직면 할 수 있습니다.
  3. 자금 관리 위험: 전체 포지션 거래 방식은 더 큰 위험 틈을 가져올 수 있다.
  4. 신호 지연성: K선 종결 후에야 신호를 확인할 수 있으며, 최적의 진입 시간을 놓칠 수 있다.

전략 최적화 방향

  1. 트렌드 필터 도입: 평균선이나 트렌드 지표를 방향 필터로 추가하여 신호 품질을 향상시키는 것이 좋습니다.
  2. 자금 관리를 최적화: 시장의 변동성에 따라 포지션 크기를 조정할 수 있다.
  3. 손해 차단 메커니즘을 개선: ATR 지표와 함께 동적 손해 차단 설정을 사용하여 위험 제어 능력을 향상시키는 것이 좋습니다.
  4. 시간 필터를 추가: 거래 시간 필터를 추가하여 효율성이 낮은 시간을 피할 수 있습니다.
  5. 최적화 신호 확인: 거래량 지표 또는 다른 기술 지표를 보조 확인으로 추가할 수 있다.

요약하다

이 전략은 K선 형태, 진폭 및 거래량에 대한 다차원적 분석을 통해 완전한 거래 시스템을 구축한다. 위험은 있지만, 제안된 최적화 방향을 통해 전략의 안정성과 신뢰성을 더욱 향상시킬 수 있다. 전략의 핵심 장점은 다차원적 분석 방법과 개선된 상태 관리 장치로, 변동이 큰 시장 환경에서 적용하기에 적합하다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Candle Absorption Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Условия индикатора
// 1. Две соседних свечи должны быть разнонаправленными
condition1 = (close[1] > open[1] and close < open) or (close[1] < open[1] and close > open)

// 2. Дельта по цене открытия/закрытия у первой свечи меньше, чем у следующей
delta1 = math.abs(close[1] - open[1])
delta2 = math.abs(close - open)
condition2 = delta1 < delta2

// 3. Объем первой свечи должен быть больше, а последней меньше
condition3 = volume[1] > volume and volume < volume[2]

// Проверяем выполнение всех условий
all_conditions = condition1 and condition2 and condition3

// Определяем направление для входа
is_bullish = close > open  // Зеленая свеча больше (бычье поглощение)
is_bearish = close < open  // Красная свеча больше (медвежье поглощение)

// Переменные для отслеживания состояния позиции
var float entryPrice = na
var bool isLong = false
var bool isShort = false

// Логика генерации сигналов
buySignal = all_conditions and is_bullish and not isLong
sellSignal = all_conditions and is_bearish and not isShort

// Обработка лонгового входа
if (buySignal)
    isLong := true
    isShort := false
    entryPrice := close
    strategy.entry("Long", strategy.long)

// Обработка шортового входа
if (sellSignal)
    isLong := false
    isShort := true
    entryPrice := close
    strategy.entry("Short", strategy.short)

// Визуализация точек поглощения
// if all_conditions
//     label.new(bar_index, high, "✔", color=is_bullish ? color.green : color.red, textcolor=color.white, style=label.style_circle, size=size.small)

// Логика сброса состояния при закрытии позиции
if (strategy.position_size == 0)
    isLong := false
    isShort := false
    entryPrice := na

// Дополнительно: можно добавить стоп-лосс и тейк-профит (пример ниже)
// strategy.exit("Exit Long", from_entry="Long", stop=low - atr(14), limit=high + atr(14))
// strategy.exit("Exit Short", from_entry="Short", stop=high + atr(14), limit=low - atr(14))