파인스크립트 기본반
분류 자동매매

땡스봇TV를 이용한 자동매매

페이지 정보

본문

취미로 퀀트와 땡스봇은 제휴 관계로 레퍼럴을 통한 수익을 나누지만,

그외에 프로그램이나 운영에 대해서는 전혀 관여하는 바가 없습니다.

프로그램을 통한 자동매매는 오작동 가능성이 있으며 그로 인해

재산의 손실이 발생할 수도 있음을 알려드립니다.

사용하시기 전에 신중히 생각하고 결정하시기 바랍니다.


오토뷰, TVExtBot과 더불어 사용할 수 있는 땡스봇TV가 새로 나와 소개해드립니다.


땡스봇TV는 아래에서 다운받으실 수 있습니다.

https://bitbot.tistory.com/31?category=853948 


땡스봇TV는 현재 바이비트와 비트멕스를 지원하고 있으며, 정책에 따라 레퍼럴을 통해 가입하신 분들만 사용이 가능합니다.

바이비트 : https://www.bybit.com/ko-KR/register?affiliate_id=9298&language=ko-KR&group_id=0&group_type=1
비트멕스 : https://www.bitmex.com/register/EJWEx4

위 링크로 가입하신 거래소 API키를 등록하시면 자동으로 레퍼럴 여부를 판단하여 사용이 가능합니다.

레퍼럴로 얻어진 수익은 취미로퀀트와 땡스봇이 동일하게 가져갑니다.

레퍼럴로 가입하시면 별도의 이용료 없이 사용하실 수 있습니다.


프로그램 하나당 하나의 거래소만 등록이 가능하고, 여러 거래소를 이용하시려면 여러 프로그램을 실행시키면 된다고 합니다.



[자동매매 거래 원리]


땡스봇TV에 대한 자세한 설명은 땡스봇 블로그에 자세히 나와있으니 간략히 설명드리겠습니다.


1. 매매 전략을 세웁니다.

2. 트레이딩 뷰 파인 스크립트로 전략을 소스 코드화 하여 백테스트를 합니다.

3. 써볼만한 전략(수익 우상향)인 경우에 지표를 만들어 진입 지점과 청산 지점등 매매 지점들을 구현합니다.

4. 지표를 통해 매매점들에서 얼러트가 발생합니다.

5. 발생한 얼러트는 서버를 통해 땡스봇TV 클라이언트(사용자 컴퓨터에 실행중인 프로그램)로 전달됩니다.

6. 땡스봇TV 클라이언트에서 API를 통해 거래소로 주문을 전송합니다.

7. 거래소에서 주문이 체결됩니다.


트레이딩 뷰 ->(얼러트) -> 땡스봇 서버 -> 땡스봇TV 클라이언트 -> (API) -> 거래소


오토뷰나 TVExtBot과 비슷한 원리인데, 크롬 확장 프로그램 형태가 아닌 단독 프로그램입니다.



[거래소 API 연결]


땡스봇TV를 설치하고 실행합니다.

땡스봇TV 다운로드 : https://bitbot.tistory.com/31?category=853948

0af3060c72fc2a83c8ca283d8166ec2a_1589989497_07.png
회원가입 후에 로그인해주세요.



0af3060c72fc2a83c8ca283d8166ec2a_1589991710_36.png
오른쪽에서 사용하실 거래소를 선택하세요.

지금은 비트멕스와 바이비트만 지원합니다.

여기서는 테스트넷 거래소에서 테스트를 먼저 진행할 것이기 때문에 테스트넷에 체크를 했습니다.

일반 거래소는 테스트넷에 체크하지 마세요.

테스트는 바이비트 테스트넷에서 진행하겠습니다.

일반 바이비트 거래소도 과정은 동일합니다.


API키를 등록해야 사용할 수 있으므로 바이비트 테스트넷 거래소로 이동하여 API키를 생성하겠습니다.



0af3060c72fc2a83c8ca283d8166ec2a_1589990770_9.png
바이비트 테스트넷에 로그인하고, 본인의 닉네임에 커서를 가져가면 메뉴가 뜹니다.

계정 & 보안을 선택하고, API 관리를 누릅니다.

새 키 생성 버튼을 누르고, 위 화면을 참고하여 작성합니다.

API Key 활용도는 API 처리속도를 선택합니다.

성함에는 아무 이름이나 적어도 됩니다.

IP 매칭에 IP 주소를 입력하면 해당 IP 주소에서만 주문이 나갑니다.

고정IP를 사용하신다면 작성해도 되지만, 유동IP의 경우 IP가 수시로 바뀔 수 있어서 권장하지 않습니다.

키 권한은 활성화된 주문 혹은 포지션을 선택합니다.

구글 OTP는 각자 스마트폰 어플을 통해 확인 후 입력합니다.



0af3060c72fc2a83c8ca283d8166ec2a_1589991238_65.png
확인을 누르면 API키와 보안 키(시크릿 키)가 만들어집니다.

이 2가지는 다른 사람에게 알려주면 안되고, 혹시라도 노출되었다면, 지우고 다시 만들어 사용하시면 됩니다.


이 2가지를 복사해서 땡스봇TV에 입력합니다.



0af3060c72fc2a83c8ca283d8166ec2a_1589991686_84.png
땡스봇TV로 와서 기타탭으로 이동합니다.

API Key를 입력하는 곳이 있는데, ID에는 API키, Key에는 보안키를 입력하면 됩니다.



0af3060c72fc2a83c8ca283d8166ec2a_1589991855_29.png
그리고, 시작을 누르면 거래소와 연결되고, 화면에 잔고와 포지션이 출력됩니다.

로그에는 프로그램 시작이라고 표시됩니다.

별다른 에러메시지가 뜨지 않는다면 연결이 잘 된것입니다.

혹시라도 에러메시지가 뜬다면 거래소 시간과 본인의 컴퓨터 시간이 달라서 발생하는 문제일 수 있습니다.

그럴때는 시간을 동기화하여 문제를 해결할 수 있습니다.


참고 : API키 저장에러 대응방법 https://tvextbot.github.io/post/troubleshooting/



[테스트 신호 발생]


일단 연결은 잘 되었고, 땡스봇TV가 거래소로 신호를 잘 전달하는지 알아보기 위해서 테스트를 진행하겠습니다.

그러기 위해서는 트레이딩 뷰에서 테스트 신호를 만들어 얼러트가 계속 발생되도록 해야 합니다.

여기에서는 1분 마다 얼러트를 계속 발생시켜서 그 신호들이 거래소로 잘 들어가는지 확인할 겁니다.

실제 거래소를 이용해도 되지만, 에러로 인한 손실이 발생할 수 있으므로 테스트넷에서 진행하겠습니다.


0af3060c72fc2a83c8ca283d8166ec2a_1589989107_71.png
 

1분 차트로 놓고, 1분 마다 신호를 발생시키기 위해서 1분 마다 다른 값을 출력하는 지표를 만들었습니다.

첫번째 것은 0과 1이 반복적으로 출력됩니다.

두번재 것은 0, 1, 0, -1, 0, 1... 이런식으로 반복됩니다.


첫번째 것으로는 2가지 상태를 테스트 해볼 수 있고, (매수, 매도 또는 매수, 매수청산 또는 매도, 매도청산)

두번째 것으로는 3가지 상태를 테스트 해볼 수 있습니다. (매수, 매도, 청산)



//@version=4
study("alert test 1")
signal = bar_index % 2

plot(signal)
alertcondition(signal == 1, "buy", "buy message")
alertcondition(signal == 0, "sell", "sell message")


2가지 상태를 위한 지표입니다.

1을 매수, 2를 매도 신호로 사용할 것입니다.



//@version=4
study("alert test 2")
signal = bar_index % 2 == 0 ? 0 : bar_index % 4 - 2

plot(signal)

alertcondition(signal == 1, "buy", "buy message")
alertcondition(signal == 0, "exit", "exit message")
alertcondition(signal == -1, "sell", "sell message")


3가지 상태를 위한 지표입니다.

1을 매수, -1을 매도, 0을 청산 신호로 사용할 것입니다.


alertcondition 함수를 통해 신호를 세팅해놨기 때문에 얼러트 설정을 편하게 할 수 있습니다.



[얼러트 작성]


롱과 숏이 교대로 발생하면서 포지션을 다르게 진입하는 경우를 테스트 해보겠습니다.

앞에 만들었던 2가지 상태를 위한 지표를 사용할것입니다.


500cd9af841210bbebdb0f16d41e8935_1590072372_87.png
땡스봇TV 오른쪽의 트뷰 메세지 작성란에서 매수를 위한 조건을 설정합니다.

수량은 고정 수량이나 비율로 설정이 가능합니다.

테스트니까 10개로 해보겠습니다.

매수/매도는 매수니까 buy로 합니다.

손절이나 익절은 생략하겠습니다.


마지막으로 주문 및 포지션정리후 진입에 체크합니다.

롱에서 숏으로 가거나 숏에서 롱으로 갈때, 먼저 잡고 있던 포지션을 모두 정리하고 새로운 포지션으로 들어가는 것입니다.

스윙하시는 분들은 체크하시고, 전략에 따라서는 안쓸 수도 있으니 생각해보시고 결정하시면 됩니다.


이렇게 조건 설정을 다하면 자동으로 트레이딩뷰 메세지칸에 메세지가 작성됩니다.

복사 버튼을 누르고 트레이딩뷰로 이동합니다.



500cd9af841210bbebdb0f16d41e8935_1590072391_22.png
얼러트 설정 버튼을 누릅니다.


조건에서 alert test 1을 선택합니다.

그 밑에 alertcondition함수로 설정한 조건이 생기는데, 매수 주문에대한 얼러트이므로 buy를 선택합니다.

옵션은 봉마다 한 번을 선택합니다.

1분 봉 차트에서 실행되므로 1분 마다 얼러트가 생성됩니다.

트레이딩 뷰 프리미엄 유저가 아니면 얼러트의 만기 시간이 있습니다.

얼러트 액션의 웹훅 URL에 체크하고, http://www.gobung.co.kr/html/tv/ 라고 입력합니다.

메시지에는 아까 땡스봇TV에서 복사한 메시지를 붙여넣기(Ctrl+V)합니다.

만들기 버튼을 눌러 얼러트를 만드세요.


500cd9af841210bbebdb0f16d41e8935_1590072615_82.png

저의 경우 이런 메시지가 떴는데, 테스트이므로 어쨋거나 이어 나가기 버튼을 눌러 진행합니다.

실제로 매매하는 지표에서 이런 경고 메시지가 뜬다면 리페인트 지표가 아닌지 다시 한번 확인해봐야합니다.


500cd9af841210bbebdb0f16d41e8935_1590072808_84.png
그러면 오른쪽에 얼러트가 등록됩니다.

등록한 얼러트는 잠시 멈추거나, 수정을 하거나, 지울 수 있습니다.

잠시 기다려보면 얼러트가 바로 생성되어 얼러트 로그에 기록이 되는 것을 볼 수 있습니다.


500cd9af841210bbebdb0f16d41e8935_1590072989_64.png
땡스봇TV로 와보면 방금 발생한 얼러트로 인해 기존의 공매수 391계약이 청산되고, 새로운 공매수 10계약이 체결 된것을 확인할 수 있습니다.

그 아래 로그를 보시면 발생한 얼러트의 내용과 얼러트로 인해 동작한 기록이 남겨집니다.


땡스봇TV에서 설정한 메시지대로 공매수 10계약이 정상적으로 진입되었으므로 테스트는 성공입니다.

추가로, 숏 얼러트도 만들어서 숏과 롱이 교대로 잘 진입하는지도 테스트해보겠습니다.


500cd9af841210bbebdb0f16d41e8935_1590073179_89.png
매수/매도를 sell로 바꿉니다.

주문 및 포지션정리후 진입에도 체크를 해야겠지요.

체크를 하지 않으면 기존의 롱 주문을 청산만 하고, 새로 숏으로 진입이 안됩니다.

만약 그런 동작을 원하신다면 체크를 하지 않으면 되겠죠.


트레이딩뷰 메시지를 복사해서 트레이딩뷰로 가겠습니다.


500cd9af841210bbebdb0f16d41e8935_1590073374_32.png
얼러트 설정을 눌러 얼러트를 만듭니다.

다른 것은 매수때와 같습니다. 조건을 buy가 아닌 sell로 선택합니다.

그리고, 메시지칸에 앞서 땡스봇TV에서 복사한 메시지를 붙여 넣습니다.

매도 주문인지 다시 한번 확인하시고 만들기 버튼을 누릅니다.


잠시 기다리면 얼러트가 생성됩니다.

땡스봇TV로 돌아가서 매도 진입이 잘 되는지 보겠습니다.


500cd9af841210bbebdb0f16d41e8935_1590073722_91.png
잠시 기다리니 sell 진입이 되고, 잔고가 업데이트되는데, 공매도 포지션 10계약으로 바꾼것을 볼 수 있습니다.

거래소에 직접 접속하지 않고도 포지션의 변화를 확인할 수 있다는 것이 땡스봇TV의 장점 중 하나입니다.


500cd9af841210bbebdb0f16d41e8935_1590073883_06.png
몇분 더 기다려서 충분히 롱, 숏 얼러트가 제대로 발생하는지 지켜봅니다.

처음에는 중복메시지로 기록될 수 있습니다.

하지만 좀 지나면 롱과 숏이 교대로 발생하면서 포지션도 1분 마다 바뀌는 것을 볼 수 있습니다.


이제, 실제 거래소 API를 등록하고, 실전 전략의 얼러트를 발생시켜서 자동매매를 활용해보세요.

얼러트 작성이나 땡스봇TV 사용법에 대해 궁금하신 점은 질문으로 올려주시면 최대한 해결해드리겠습니다.



[레버리지 설정]


땡스봇TV에는 아직 레버리지 설정기능이 없습니다.

거래소에서 고정된 레버리지로 진입하게 됩니다.


교차 레버리지를 사용할 경우 x%로 수량을 정하면 격리마진 x배 100% 비중으로 진입하는 효과를 낼 수 있습니다.

단, 계산 방식에 따라 약간의 차이가 발생할 수 있으니 미리 꼼꼼히 테스트 해보시고 결정하시기 바랍니다.



[필수 사항]


땡스봇TV는 현재 바이비트와 비트멕스를 지원하고 있으며, 정책에 따라 레퍼럴을 통해 가입하신 분들만 사용이 가능합니다.

바이비트 : https://www.bybit.com/ko-KR/register?affiliate_id=9298&language=ko-KR&group_id=0&group_type=1
비트멕스 : https://www.bitmex.com/register/EJWEx4


취미로 퀀트와 땡스봇은 제휴관계로, 레퍼럴로 발생한 수익을 서로 나눈다는 것을 알려드립니다.

관련자료

등록된 댓글이 없습니다.
전체 1건 / 1페이지

+ 최근글


+ 새댓글


통계