본문 바로가기
코딩 공부/python

Deribit API 사용해보고 옵션 트레이딩 알고리즘 만들기

by Camel_coding_food 2023. 4. 16.
반응형

 

일상생활 가능?

 

오늘은 Deribit 거래소(이하 거래소) API문서를 읽어보며 따라해봅시다.

 

https://docs.deribit.com/?python#deribit-api-v2-1-1 

 

Deribit API

 

docs.deribit.com

일단 거래소 API 문서입니다.

 

항상 개발하다보면 API문서나 라이브러리 공식 문서를 읽어야할 일이 많은데

그게 가장 힘든것 같습니다.

 

그래도 해야겠죠?

 

그래도 이 거래소는 API 콘솔을 제공해주어 한결 쉬웠습니다.

 

 

 

예시코드를 하나 봅시다.

import asyncio
import websockets
import json

msg = \
{
  "jsonrpc" : "2.0",
  "id" : 9929,
  "method" : "public/auth",
  "params" : {
    "grant_type" : "client_credentials",
    "client_id" : "fo7WAPRm4P",
    "client_secret" : "W0H6FJW4IRPZ1MOQ8FP6KMC5RZDUUKXS"
    #해당 API 키는 예시 코드에 함께 있는 키 입니다. 자신의 키는 웹페이지에서 발급해야합니다.
  }
}

async def call_api(msg):
   async with websockets.connect('wss://test.deribit.com/ws/api/v2') as websocket:
       await websocket.send(msg)
       while websocket.open:
           response = await websocket.recv()
           # do something with the response...
           print(response)

asyncio.get_event_loop().run_until_complete(call_api(json.dumps(msg)))

참 괴랄한게 API 사용예시 코드인데 비동기 구현을 해놓았습니다.

 

CPU연산도 많이 사용하지도 않는데 왜 그랬을까요..

잘 모르겠습니다.

 

심지어 테스트넷을 이용한 Authentication은 안되네요. 하하

 

wss://www.deribit.com/ws/api/v2

connect 함수에 해당 앤드포인트를 넣으면 정상작동합니다.

 

API 연결이 정상인지 확인했으므로

거래 알고리즘을 구성해봅시다.

 


 

잘 알려진 옵션 거래 전략은 3개정도 있습니다

 

1. 커버드 콜 전략

2. put-call parity 차익거래

3. protective put 거래

 

 

이론상 가장 좋은 전략은 차익거래입니다.

 

하지만 알고리즘 트레이딩을 구현해 본 프로그래머들은 다들 알다시피

차익거래 전략은 거래소 latency, 또는 빠른 거래 기회 소멸로 인해 전략 구현이 거의 불가능합니다.

 

그러므로 전 커버드 콜 전략을 구현해 볼겁니다.

(커버드 콜 전략 설명은 제 다른 게시물에 있습니다.)

 

구체적으로 전략을 구상해봅시다.

 

커버드 콜 전략을 요점은 기초자산 가치가 옵션 권리 실행가격까지 오르지 않아야한다는 점입니다.

 

권리 실행가격 바로 직전까지 오르거나 떨어진다면

콜옵션 매도자인 저는 기초자산 가격 상승과 옵션 프리미엄의 이득을 둘다 볼 수 있습니다.

 

즉 기초자산의 상승과 하락은 예측하지 못해도 되지만,

가치 변동폭은 상당히 정확하게 예측해야 합니다.

 


그렇다면 변동성은 어떻게 예측할 수 있을까요?

 

기업의 주식은 기업의 능력, 거시경제, 기술적 거래의 영향을 받지만,

내재가치가 없는 암호화폐의 경우 기술적 거래와 거시경제 영향이 전부라고 생각합니다.

 

기술적 거래로인한 변동성은 ATR 지표를 통해 어느정도 예상가능합니다.

 

하지만 거시경제와 갑작스러운 이슈로 인한 변동성은 어떻게 대응할 수 있을까요?

 

바로 이 부분이 AI가 적용될 수 있는 부분입니다.

 

뉴스 크롤링을 통해 실시간 금융 뉴스를 가져온 후, ML로 분석하여 주가에 긍정적인 영향을 줄지,

얼마나 큰 영향을 줄지 예측할 수 있을겁니다.

 

그리고 과거에 뉴스가 변동성에 어떤 영향을 줬는지 학습시키면 

현 ATR지표에 피드백 해줄 수 있을겁니다.

 

다음 글에선 CNN 뉴스를 크롤링 한 후, AI로 키워드를 분석해보겠습니다.

반응형

댓글