이번 포스트는 트레이딩 뷰의 Alert 설정에 대해 알아보겠습니다.
Alert 는 시장에서 특정 조건이 만족하면 알려줍니다. 여기서 특정 조건이라 함은 종가가 특정 가격 이상이 되거나, RSI 가 30 이하로 떨어지는 것과 같이 지표가 특정 값에 도달할 때 발생시키는 이벤트의 조건을 의미합니다. 그리고 이런 이벤트가 발생할 때 실행되는 알림은 앱, 브라우저 팝업, 이메일 등이 있으며, 추가로 유료 사용자에게는 Webhook URL 호출 기능을 제공합니다. 자동 매매를 구현하려면 Webhook URL 이 필요하지만 당장 필요하지는 않으므로 여기서는 설명하지 않겠습니다.
실행 영상은 다음을 참고하세요:
https://youtu.be/ExM4-47Hexg
알림 생성
일단 기본적인 Alert 를 사용해 보겠습니다.
1분 봉 차트에서 차트 오른쪽 상단에서 시계 아이콘을 클릭하면 Alerts 패널이 나타납니다.

여기서 [ Create Alert ] 버튼을 클릭하고 다음과 같이 설정합니다:
- Condition : Moving Up 1.0 in 1 bars
- Options : Once Per Bar
- Alert actions : Show pop-up 선택
이러면 매분 봉이 생길 때 상승 캔들이면 팝업 로그를 출력합니다.
Alert 를 생성하고 잠시 기다리면 다음과 같은 화면을 볼 수 있습니다:

그림 2와 같이 트레이딩 뷰 화면에서는 알림 팝업이 뜨고, 알림 로그에 기존 알림 이력이 쌓입니다.
구글 플레이 스토어나 애플 앱스토어에서 트레이딩뷰 앱을 설치하고 로그인을 해놓으면 알림을 앱에서 받을 수도 있으니 꼭 한 번 이용해 보시기 바랍니다.
전략 알림
이제 전략과 알림을 연결하는 방법에 대해 알아보겠습니다.
테스트를 원활하게 하기 위해, 매수와 매도를 매 분 반복하는 간단한 전략을 테스트해 보겠습니다.
먼저 Pine Editor 에 다음 코드를 붙여넣습니다.
https://gist.github.com/quantro-kr/e2f6ed69efccefb6a175b838438c2072
Buysell Ticks
GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
이 때 유의해야 할 부분이 2가지 있습니다:
- 차트에서 주문을 할 수 있는 최대 횟수는 3000 번으로 제한되어 있기 때문에 현재 시간 부근에서만 주문이 실행될 수 있도록 필터링을 설정해야 합니다.
- 트레이딩 뷰의 시간은 UTC 기준이므로 한국 시간에서 9 를 차감해서 계산해야 합니다. 즉 한국 시간 9시인 경우 hour 변수는 0 이 들어옵니다.
이를 고려해서 위 코드에서 time_frame 변수를 설정합니다.
예를 들어 현재 시간이 2022년 3월 1일 12시라면 다음과 같이 설정하면 3월 1일 11시 이후의 봉에 대해서 주문이 실행됩니다 :
time_filter = year >= 2022 and month >= 3 and dayofmonth >= 1 and hour >= 2
이렇게 만들어진 전략을 "BuySell Ticks" 라는 이름으로 저장하고 차트에 추가하면 다음과 같은 화면이 나옵니다:

매 분마다 매수와 매도를 번갈아 가며 실행하는 것을 확인할 수 있습니다.
이제 트레이딩 뷰의 [ Alert ] 메뉴에서 [ Create Alert ] 버튼을 누르고, 팝업 창에서 [ Condition ] 을 방금 저장한 "Buysell Ticks" 로 선택하면 화면이 다음과 같이 표시됩니다 :

일반 Alert 에 비해 추가적인 Condition 메뉴가 없고 Option 메뉴가 사라졌습니다. 대신 Message 탭은 좀 더 복잡한 메시지로 구성이 되어 있습니다.
여기서 {{ ... }} 형식으로 표시된 값은 place holder 라 불리는데, 전략 실행 중 알림이 발생한 시점의 값으로 채워서 메시지를 표시합니다. 예를 들어 로그는 다음과 같이 표시됩니다.
Buysell Ticks: order buy @ 1 filled on BTCKRW. New strategy position is 1
Buysell Ticks: order sell @ 1 filled on BTCKRW. New strategy position is 0
place holder 로 사용될 수 있는 변수는 다음 포스트를 참고하시기 바랍니다. 일단은 메시지에 기본으로 생성된 다음 place holder 만으로 충분합니다:
- strategy.order.action : 매수는 'buy' , 매도는 'sell'
- strategy.order.contracts : 주문 수량. strategy.entry() 실행 시 1 만큼 주문했으므로 1 이 표시됩니다.
- ticker : 종목명
- strategy.position_size : 주문 시점의 보유 포지션
이제 [ Create ] 버튼을 클릭해 알림을 설정하면, 전략 알림이 계속 발생하는 것을 확인할 수 있습니다.
마지막으로 지난 번에 만든 변동성 돌파 전략을 차트에 적용하고 알림을 생성한 뒤 휴대폰에 트레이딩뷰 앱을 설치해 두면 매매 신호가 발생할 때마다 푸시 알림을 받을 수 있습니다. 이 정도면 손매매를 할 수 있는 환경은 충분히 갖춰졌다고 할 수 있습니다.
'가상화폐 투자자 가이드' 카테고리의 다른 글
파이썬과 Google Colab 퀵스타트 (1) | 2022.03.10 |
---|---|
텔레그램 봇 API 퀵스타트 (0) | 2022.03.05 |
트레이딩 뷰 퀵스타트 (2) - 전략 작성 (0) | 2022.03.03 |
트레이딩 뷰 퀵스타트 (1) - 지표 작성 (0) | 2022.03.02 |
Cloud Functions 퀵스타트 - 텔레그램 봇 실행하기 (0) | 2022.03.01 |