배경지식

리밸런싱

가상화폐 거래소 코빗

  • 코빗 거래수수료
  • 거래수수료 구분
    • 코빗은 더이상 Taker/Maker 수수료를 구분하지 않는다. 신경 안 써도 됨
    • Taker 주문 : 즉시 체결되는 주문
      • 시장가로 주문
      • 지정가 주문 시, 이미 오더북에 올라와있는 주문과 동일한 금액으로 주문
      • 지정가 매수 주문 시, 체결 가능한 호가보다 높은 가격으로 주문
        • 최고 매수호가 < 매수주문가 → 비싸게 사겠다고 하니까 즉시 체결
      • 지정가 매도 주문 시, 체결 가능한 호가보다 낮은 가격으로 주문
        • 최저 매도호가 > 매도주문가 → 싸게 팔겠다고 하니까 즉시 체결
    • Maker 주문 : 즉시 체결되지 않는 주문
      • 지정가 매수 주문 시, 체결 가능한 호가보다 낮은 가격으로 주문
        • 최고 매수호가 > 매수주문가 → 싸게 사겠다고 하는 무리 중 하나
      • 지정가 매도 주문 시, 체결 가능한 호가보다 높은 가격으로 주문
        • 최저 매도호가 < 매도주문가 → 비싸게 팔겠다고 하는 무리 중 하나

용어정의

  • 최근내주문체결가: 나의 주문 중 마지막으로 체결된 거래의 거래가
  • 목표 밸런싱비율: “코인 평가금액 : 예수금잔고”의 목표 비율
  • 거래트리거링가격변동포인트: 이 %포인트 만큼 체결가 변동이 일어나면 리밸런싱한다
  • 제약조건
    • tick_size 호가단위
    • min_price 최소 주문가
    • order_min_size 최소 주문량
    • max_price 최대 주문가
    • order_max_size 최대 주문량
  • 수수료
    • volume 해당 통화쌍의 30일간의 거래량(KRW)
    • maker_fee 베이시스 포인트(BPS - 1/100 퍼센트 기준)로 표기된 maker 거래 수수료율
    • taker_fee 베이시스 포인트(BPS - 1/100 퍼센트 기준)로 표기된 taker 거래 수수료율

로직

파라미터/변수

  • 입력

    • 입력값
      • 목표 밸런싱비율
      • 거래트리거링가격변동포인트
    • 체결된 주문내역
      • 최근내주문체결가
    • 잔고 조회
      • 코인보유량
      • 현금(예수금잔고)
    • env
      • constans (제약조건)
        • 최소주문량
      • 시장 현황 상세정보
        • bid: 최고 매수호가 현재 매수 주문 중 가장 높은 가격
        • ask: 최저 매도호가 현재 매도 주문 중 가장 낮은 가격
  • 중간값

    • 거래직전 평가액
    • 주문금액
  • 리턴

    • 주문가
    • 주문량

매수 주문가

목표밸런싱비율 는 입력값으로 고정이다

여기서

따라서 주문량

여기서 주문가

만약 주문량 이 최소주문량 보다 작다면

주문량 를 최소주문량 으로 설정한다

이 때 주문가

매도 주문가

목표밸런싱비율 는 입력값으로 고정이다

여기서

따라서 주문량

여기서 주문가

만약 주문량 이 최소주문량 보다 작다면

주문량 를 최소주문량 으로 설정한다

이 때 주문가

로깅

주문

매수주문, 매도주문 호출 성공 후 로깅

체결

체결된 주문내역 확인 후 로깅

그냥 json 그대로 저장할까?

  • 체결된 주문내역 리턴값
    • 체결ID
    • 매도매수구분
    • 체결시각
    • 수수료
      • 통화: 매수 시 코인, 매도 시 krw
      • 수량
    • 주문ID
    • 체결가
      • 통화
      • 수량
    • 체결량
      • 통화
      • 수량
  • 잔고 조회 리턴값
    • 코인보유량
    • 현금(예수금잔고)

Git