K-라인 패턴을 기반으로 한 고주파 아비트라지 전략


생성 날짜: 2024-01-08 15:47:41 마지막으로 수정됨: 2024-01-08 15:47:41
복사: 0 클릭수: 852
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

K-라인 패턴을 기반으로 한 고주파 아비트라지 전략

개요

이 전략은 K선 형태 판단에 기반한 방법을 적용하여 고주파 시장거래자를 가담한다. 주요 아이디어는 서로 다른 K선 시간대의 다공간 형태를 판단하여 고주파 시장거래자의 평준화 거래를 실현하는 것이다. 구체적으로, 전략은 동시에 여러 시간대의 K선을 모니터링하며, 연속적으로 상승하는 K선 또는 연속적으로 하락하는 K선으로 관찰될 때, 각각 공백 또는 다공간한다.

전략 원칙

이 전략의 핵심 논리는 서로 다른 시간대의 K 선의 다공간 형태를 판단하는 것이다. 구체적으로, 그것은 동시에 1분, 5분, 15분 K 선을 감시한다. 전략은 가격보다 앞서 N근 K 선이 상승하거나 하락했는지를 추적함으로써 현재의 다공간 형태를 판단한다. 연속적으로 상승하면 현재는 다단 형태라고 간주한다. 연속적으로 하락하면 현재는 공백 형태라고 간주한다.

코드는 주로 추적을 통해ups그리고dns두 지표는 K선의 다공형성을 판단한다. 이 두 지표는 각각 연속으로 올라가는 K선 수와 연속으로 내려가는 K선 수를 통계한다. 전략은 파라미터를 설정할 수 있다.consecutiveBarsUp그리고consecutiveBarsDown트렌드를 결정하는 K선 수를 지정한다.ups더 크거나 같다는 것입니다.consecutiveBarsUp““은 ““을 가리키고, ““은 ““을 가리키고,dns더 크거나 같다는 것입니다.consecutiveBarsDown () 은 공허한 형태를 잡는 것을 나타냅니다. 또한, 전략은 재검토의 시간 범위를 설정하고, 거래의 위탁 정보 등이 있습니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 고주파 거래 기회를 포착하고 고주파 거래를 실현하기 위해
  2. K-선으로 판단하는 형태, 간단하고 효과적입니다.
  3. 동시에 여러 시간 동안 감시하여 포획 가능성을 높여줍니다.
  4. 직관적인 파라미터 설정, 쉽게 조정
  5. 테스트 최적화를 위해 리테크 시간 범위를 설정합니다.

위험 분석

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

  1. 데이터 문제, 주문 실패 등과 같은 고주파 거래의 위험
  2. 잘못된 매개 변수 설정으로 인해 거래가 빈번하거나 좋은 기회를 놓칠 수 있습니다.
  3. 가격 변동과 같은 더 복잡한 상황에 대처할 수 없습니다.

위험성을 줄이기 위해 다음과 같은 측면에서 최적화할 수 있습니다.

  1. 더 많은 논리적인 판단을 통해 거래 시기를 결정하고, 맹목적인 거래를 피하십시오.
  2. 최적화 매개 변수 설정, 균형 거래 빈도 및 수익률
  3. 거래량 변화, 변동성 등과 같은 다른 요소들과 함께
  4. 단편적 손실을 제어하기 위한 다양한 손실을 방지하는 방법을 테스트합니다.

최적화 방향

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

  1. 그 결과, 그 결과의 양을 측정할 수 있는 요소를 추가할 수 있습니다.
  2. MACD, KD 등과 같은 다른 평형 지표를 사용해보세요.
  3. 평선, 통로 등 기술 지표 필터링 신호
  4. 다양한 K선 시간대의 파라미터 조합을 평가하는 파라미터 설정을 최적화합니다.
  5. 전략적 안정성을 높이기 위한 상쇄 및 중단 메커니즘 개발
  6. 최대 보유량, 거래 빈도 등과 같은 제한을 추가
  7. 다양한 품종의 효과를 테스트하고, 품종에 맞는 최적의 전략을 찾습니다.

요약하다

이 전략은 K선 형태 판단에 기반한 방법을 통해 간단하고 효과적인 고주파수 중개 전략을 구현한다. 전략의 핵심은 서로 다른 시간대의 가격의 다공간 경향을 포착하여 중개 기회를 얻는 것이다. 약간의 위험이 있음에도 불구하고, 이 전략은 성숙하고 간단하며, 양적 거래의 입문에 매우 적합하다. 추가적인 최적화를 통해 전략을 더 안정하고 효율적으로 만들 수 있어 더 나은 투자 수익을 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-21 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// Strategy
strategy("Up/Down Strategy", initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)

consecutiveBarsUp = input(1)
consecutiveBarsDown = input(1)

price = close

ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0

dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0

// Strategy Backesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)

time_cond  = true

// Messages for buy and sell
message_buy  = input("{{strategy.order.alert_message}}", title="Buy message")
message_sell = input("{{strategy.order.alert_message}}", title="Sell message")

// Strategy Execution

if (ups >= consecutiveBarsUp) and time_cond
    strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_buy)
    
if (dns >= consecutiveBarsDown) and time_cond
    strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_sell)

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)