웹훅 설정과 서버에서 해줘야할 작성을 모두 마쳤습니다. 이제는 클라이언트에게 보여줘야할 코드를 작성할 차례입니다. 페이지에서 보여질 요소는 디폴트로 BTC/USDT가 있고, 각 포지션에 따른 실시간 가격과 포지션 정보, PNL, 해당 코인의 차트보기, 긴급상황을 대비한 수동청산, 승/패, 롱/숏 비율정도가 있습니다. 1. 차트 TradingView에서 제공하는 차트를 가져오는 것은 매우 쉽습니다. TradingView에서 위젯 형태로 매우 손쉽게 제공하고 있기 때문입니다. 차트보기 버튼을 누르면 해당 심볼에 맞게 트레이딩뷰 차트가 열리며 차트 닫기를 누를시 다시 닫혀지게 됩니다. 해당 프로젝트는 TradingView 얼러트 웹훅을 이용한 매매를 진행하는데, 매번 바이낸스를 들어가기도 귀찮고 실제 들어가 ..
TradingView 설정을 모두 마쳤다면 이제는 Python을 통해 Flask를 설정할 차례입니다. 바이낸스에서 제공하는 SDK를 활용해도 되지만 저는 이전의 암호화폐서비스를 하면서 해둔 것들이 있기때문에 SDK를 활용하지 않았습니다. 필요한 기능들은 선물거래 계정에 대한 잔액조회, 포지션조회, 포지션에 대한 각 옵션 설정, 실시간 가격정도 있습니다. 1. 계정조회 def initData(apiKey, secKey): headers = { 'X-MBX-APIKEY':apiKey, } now = requests.get('https://api.binance.com/api/v3/time').json()['serverTime'] message = f'timestamp={now}' signature = hmac..
SpringBoot를 활용해서 암호화폐통합관리시스템을 간단하게 구현했었습니다. 하지만 SpringBoot로 하기에는 프로그램 자체도 가볍고 개인적으로만 활용할 것이라, 이를 Flask로 구현했습니다. 기존의 SpringBoot에서 만들었던 것은 단순하게 현재 포지션을 조회 후 잔고나 거래내역 등을 보여주었고, 이번 Flask는 TradingView의 FineScript 언어를 활용, 전략을 구현해 Alert 웹훅을 이용한 자동매매를 실행합니다. 본격적인 설명에 앞서 Flask와 SpringBoot의 차이점을 매우 간단하게 알아보고 가려합니다. 만약 이를 원치 않는다면 해당 문단은 넘어가도 좋습니다. Flask는 Werkzeug, Jinja2 및 좋은 의도를 기반으로 한 Python용 마이크로프레임워크 입..