Rep+rt

CH2: 고빈도 거래(HFT)의 이해: 적합한 시장, 성과 평가 및 주문 유형 본문

Programming/HFT

CH2: 고빈도 거래(HFT)의 이해: 적합한 시장, 성과 평가 및 주문 유형

ALLENPARK 2025. 4. 8. 20:44
반응형

고빈도 거래(HFT)의 이해: 적합한 시장, 성과 평가 및 주문 유형

고빈도 거래(High-Frequency Trading, HFT)는 현대 금융 시장에서 중요한 거래 전략으로 자리 잡았다. 이 글에서는 HFT에 적합한 금융 시장, 거래 전략의 성과 평가 방법, 그리고 다양한 주문 유형에 대해 알아보겠다.

 

고빈도 거래에 적합한 금융 시장

고빈도 거래에 적합한 시장은 두 가지 핵심 요건을 충족해야 한다:

  1. 빠른 포지션 진입과 청산 능력
  2. 충분한 시장 변동성 (거래 비용을 초과하는 가격 변화 보장)

 

시장 유동성과 전자 실행

시장 유동성은 쉽게 이용 가능한 공급과 수요로 특징지어진다. 유동적인 증권(예: 주요 외환 쌍)은 주 5일, 하루 24시간 거래된다. 반면 유동성이 낮은 증권(예: 페니 주식)은 몇 일에 한 번씩만 거래될 수 있다.

일일 거래량 측면에서 외환은 가장 유동적인 시장이며, 그 뒤를 최근 발행된 미국 국채, 주식, 옵션, 상품, 선물이 따른다. 이 중 현물 외환, 주식, 옵션, 선물 시장만이 완전히 자동화된 실행을 가능하게 한다.

 

시장별 적합성

고정 수입 시장

이자율 시장과 채권 시장을 포함한다. 단기 이자율 선물은 현물 이자율보다 더 유동적이다. 그러나 대부분의 스왑 상품은 여전히 장외(OTC) 거래되고 있다.

외환 시장

외환 거래는 1971년 금본위제 붕괴 이후 시작되었다. BIS에 따르면 전체 외환 시장은 2007년 기준 일일 거래량이 3조 달러에 달한다. 이 중 현물 시장은 약 33%를 차지한다.

주식 시장

2006년 기준으로 NYSE에만 2,764개의 주식이 상장되어 있을 정도로 방대한 주식 시장은 시장 비효율성으로 인해 고빈도 트레이더들에게 인기가 높다.

상품 시장

전자적으로 거래되고 유동성이 높은 상품 선물과 옵션은 실행 가능하고 수익성 있는 거래 전략을 제공할 수 있다.

 

고빈도 거래 전략의 성과 평가

거래 전략은 모양과 크기가 다양할 수 있지만, 비교를 가능하게 하는 한 가지 특성이 있다 - 수익률이다.

기본 수익 특성

평균 연간 수익률은 가장 기본적인 성과 지표다. 하지만 이는 단순히 수익률 분포의 평균 위치를 요약한 것이며, 분포의 분산에 대해서는 아무것도 말해주지 않는다.

수익률의 변동성(표준편차)은 평균 수익률 주변의 분산을 측정한다. 그러나 이는 성과의 수년을 없앨 수 있는 극단적인 부정적 효과의 위험을 고려하지 않는다.

비교 지표

성과 비교를 위한 여러 지표가 있으며, 가장 인기 있는 것은 샤프 비율이다:

def calculate_sharpe_ratio(returns, risk_free_rate=0):
    """
    고빈도 거래에서의 샤프 비율 계산
    
    Parameters:
    returns (np.array): 거래 수익률 배열
    risk_free_rate (float): 무위험 이자율 (HFT에서는 종종 0으로 설정)
    
    Returns:
    float: 샤프 비율
    """
    import numpy as np
    
    # 고빈도 거래에서는 보통 무위험 이자율을 고려하지 않음
    mean_return = np.mean(returns)
    std_dev = np.std(returns)
    
    # 0으로 나누기 방지
    if std_dev == 0:
        return 0
    
    return (mean_return - risk_free_rate) / std_dev

샤프 비율 외에도 다음과 같은 지표들이 사용된다:

  • 최대 드로다운: 가장 낮은 피크-투-트로프 수익률
  • 칼마 비율: 최대 드로다운에 대한 평균 수익률의 비율
  • 스털링 비율: 평균 드로다운에 대한 평균 수익률의 비율
  • 소르티노 비율: 하방 표준편차에 대한 평균 초과 수익률의 비율

성과 평가 기간

얼마나 오랜 기간 전략을 평가해야 하는가? 샤프 비율이 높을수록 필요한 평가 기간은 짧아진다. 예를 들어:

  • 샤프 비율 2.0: 약 9.45개월(월간 데이터) 또는 8.15개월(일간 데이터)
  • 샤프 비율 4.0: 약 3.38개월(월간 데이터) 또는 2.07개월(일간 데이터)
def min_evaluation_period(sharpe_ratio, confidence_level=0.9):
    """
    주어진 샤프 비율과 신뢰도 수준에 따른 최소 평가 기간 계산
    
    Parameters:
    sharpe_ratio (float): 주장된 연간 샤프 비율
    confidence_level (float): 신뢰도 수준 (기본값 0.9)
    
    Returns:
    float: 샤프 비율 검증에 필요한 최소 개월 수
    """
    import numpy as np
    from scipy.stats import norm
    
    z_score = norm.ppf(confidence_level)
    
    # 월간 샤프 비율로 변환
    monthly_sr = sharpe_ratio / np.sqrt(12)
    
    # 최소 평가 기간 계산
    min_months = (z_score**2 / monthly_sr**2) * (1 + 0.5 * monthly_sr**2)
    
    return min_months

주문 유형과 고빈도 거래에의 적용

주문 가격 지정

시장 주문 대 지정가 주문: 시장 주문은 주문이 들어온 시점에 최선의 가격으로 즉시 체결된다. 지정가 주문은 특정 가격에서만 체결된다.

지정가 주문은 특정 가격에서 특정 수량의 증권을 매수 또는 매도하겠다는 사전 약속으로 볼 수 있다. 시장 주문은 가능한 한 빨리 최선의 가격으로 거래하려는 요청이다.

지정가 주문의 수익성

Handa와 Schwartz(1996)의 연구에 따르면, 지정가 주문 전략은 시장 주문 전략보다 더 높은 경제적 수익을 창출할 수 있다. 구체적으로:

  • 시장가보다 0.5% 낮은 가격의 지정가 매수 주문: 0.100% 평균 추가 수익
  • 시장가보다 3% 낮은 가격의 지정가 매수 주문: 1.605% 평균 추가 수익

주문 유형 분포

Oanda FXTrade의 데이터에 따르면, 가장 흔한 주문 유형은:

  • 손절매 또는 이익실현 주문(전체 주문의 22%, 거래량의 23%)
  • 시장가 매수 주문(전체 주문의 13%, 거래량의 14%)
  • 시장가 매도 주문(전체 주문의 11%, 거래량의 11%)
def simulate_limit_order_strategy(market_prices, limit_discount=0.01, evaluation_period=20):
    """
    지정가 주문 전략 시뮬레이션
    
    Parameters:
    market_prices (list): 시장 가격 리스트
    limit_discount (float): 시장가 대비 지정가 할인율 (기본값 1%)
    evaluation_period (int): 평가 기간 (일)
    
    Returns:
    dict: 전략 성과 정보
    """
    limit_execution_prices = []
    market_execution_prices = []
    
    for i in range(0, len(market_prices) - evaluation_period, evaluation_period):
        period_prices = market_prices[i:i+evaluation_period]
        
        # 시장가 전략: 평가 기간 시작 시점에 시장가로 매수
        market_price = period_prices[0]
        market_execution_prices.append(market_price)
        
        # 지정가 전략: 시장가보다 낮은 가격으로 지정가 주문 설정
        limit_price = market_price * (1 - limit_discount)
        
        # 평가 기간 동안 가격이 지정가 이하로 내려가면 체결
        limit_executed = False
        for price in period_prices[1:]:
            if price <= limit_price:
                limit_execution_prices.append(limit_price)
                limit_executed = True
                break
        
        # 주문이 체결되지 않으면 다음 평가 기간 시작 시점에 시장가로 매수
        if not limit_executed:
            if i + evaluation_period < len(market_prices):
                limit_execution_prices.append(market_prices[i + evaluation_period])
    
    # 성과 계산
    avg_market_price = sum(market_execution_prices) / len(market_execution_prices)
    avg_limit_price = sum(limit_execution_prices) / len(limit_execution_prices)
    
    # 결과 반환
    return {
        "평균_시장가_실행_가격": avg_market_price,
        "평균_지정가_실행_가격": avg_limit_price,
        "지정가_전략_수익률": (avg_market_price - avg_limit_price) / avg_market_price * 100
    }

결론

고빈도 거래는 다양한 시장에서 실행될 수 있지만, 유동성이 높고 전자 거래가 가능한 시장이 특히 적합하다. 전략 성과 평가를 위한 다양한 지표가 존재하며, 샤프 비율은 여전히 가장 인기 있는 측정 도구다. 다양한 주문 유형을 이해하는 것은 효과적인 고빈도 거래 전략을 구축하는 데 필수적이며, 특히 시장 주문과 지정가 주문의 특성을 잘 활용하는 것이 중요하다.

고빈도 거래는 기술 발전과 함께 계속 진화하고 있으며, 이는 새로운 트레이딩 기회를 창출하고 있다. 특히 전자 거래가 발전함에 따라 장외 시장에서도 고빈도 거래 기회가 증가하고 있다. 이러한 시장에서 선점자 우위를 확보하는 것은 단순히 경쟁 부족으로 인해 상당한 수익을 창출할 수 있는 기회가 될 수 있다.