가상화폐 투자자 가이드

트레이딩 뷰 퀵스타트 (3) - 알림 설정

Q42 2022. 3. 4. 08:32

이번 포스트는 트레이딩 뷰의 Alert 설정에 대해 알아보겠습니다.

Alert 는 시장에서 특정 조건이 만족하면 알려줍니다. 여기서 특정 조건이라 함은 종가가 특정 가격 이상이 되거나, RSI 가 30 이하로 떨어지는 것과 같이 지표가 특정 값에 도달할 때 발생시키는 이벤트의 조건을 의미합니다. 그리고 이런 이벤트가 발생할 때 실행되는 알림은 앱, 브라우저 팝업, 이메일 등이 있으며, 추가로 유료 사용자에게는 Webhook URL 호출 기능을 제공합니다. 자동 매매를 구현하려면 Webhook URL 이 필요하지만 당장 필요하지는 않으므로 여기서는 설명하지 않겠습니다.

실행 영상은 다음을 참고하세요:
https://youtu.be/ExM4-47Hexg

알림 생성


일단 기본적인 Alert 를 사용해 보겠습니다.
1분 봉 차트에서 차트 오른쪽 상단에서 시계 아이콘을 클릭하면 Alerts 패널이 나타납니다.

그림 1. Alert 생성

여기서 [ Create Alert ] 버튼을 클릭하고 다음과 같이 설정합니다:

  • Condition : Moving Up 1.0 in 1 bars
  • Options : Once Per Bar
  • Alert actions : Show pop-up 선택

이러면 매분 봉이 생길 때 상승 캔들이면 팝업 로그를 출력합니다.
Alert 를 생성하고 잠시 기다리면 다음과 같은 화면을 볼 수 있습니다:

그림 2. 실시간 알림 팝업과 로그

그림 2와 같이 트레이딩 뷰 화면에서는 알림 팝업이 뜨고, 알림 로그에 기존 알림 이력이 쌓입니다.
구글 플레이 스토어나 애플 앱스토어에서 트레이딩뷰 앱을 설치하고 로그인을 해놓으면 알림을 앱에서 받을 수도 있으니 꼭 한 번 이용해 보시기 바랍니다.

전략 알림

이제 전략과 알림을 연결하는 방법에 대해 알아보겠습니다.

테스트를 원활하게 하기 위해, 매수와 매도를 매 분 반복하는 간단한 전략을 테스트해 보겠습니다.

먼저 Pine Editor 에 다음 코드를 붙여넣습니다.
https://gist.github.com/quantro-kr/e2f6ed69efccefb6a175b838438c2072

Buysell Ticks

GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

이 때 유의해야 할 부분이 2가지 있습니다:

  1. 차트에서 주문을 할 수 있는 최대 횟수는 3000 번으로 제한되어 있기 때문에 현재 시간 부근에서만 주문이 실행될 수 있도록 필터링을 설정해야 합니다.
  2. 트레이딩 뷰의 시간은 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" 라는 이름으로 저장하고 차트에 추가하면 다음과 같은 화면이 나옵니다:

그림 3. Buysell Tick 전략 실행 화면

매 분마다 매수와 매도를 번갈아 가며 실행하는 것을 확인할 수 있습니다.

이제 트레이딩 뷰의 [ Alert ] 메뉴에서 [ Create Alert ] 버튼을 누르고, 팝업 창에서 [ Condition ] 을 방금 저장한 "Buysell Ticks" 로 선택하면 화면이 다음과 같이 표시됩니다 :

그림 4. Alert 생성 시 전략 선택 시 화면

일반 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 ] 버튼을 클릭해 알림을 설정하면, 전략 알림이 계속 발생하는 것을 확인할 수 있습니다.

마지막으로 지난 번에 만든 변동성 돌파 전략을 차트에 적용하고 알림을 생성한 뒤 휴대폰에 트레이딩뷰 앱을 설치해 두면 매매 신호가 발생할 때마다 푸시 알림을 받을 수 있습니다. 이 정도면 손매매를 할 수 있는 환경은 충분히 갖춰졌다고 할 수 있습니다.