당신은 주제를 찾고 있습니까 “변동성 돌파 전략 끝판 왕 – 53. 역대 최강의 트레이더의 가장 위대한 전략 – 변동성 돌파전략“? 다음 카테고리의 웹사이트 https://you.charoenmotorcycles.com 에서 귀하의 모든 질문에 답변해 드립니다: https://you.charoenmotorcycles.com/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 할 수 있다! 알고 투자 이(가) 작성한 기사에는 조회수 38,531회 및 좋아요 939개 개의 좋아요가 있습니다.
변동성 돌파 전략 끝판 왕 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 53. 역대 최강의 트레이더의 가장 위대한 전략 – 변동성 돌파전략 – 변동성 돌파 전략 끝판 왕 주제에 대한 세부정보를 참조하세요
제가 가장 존경하는 투자자/트레이더는 단연코 래리 윌리엄스 선생인데요, 이분이 아마 역대 최강이 아닌가 싶습니다. 이분의 업적 중 한가지만 말씀드리면 –
이분도 학생들 모집해서 세미나를 자주 하는데 – 라이브 트레이딩 세미나를 하면서 그들 앞에서 100만불을 벌었습니다 ㅋㅋㅋ 누구는 평생 10억 벌기도 힘든데 이양반은 강의를 하면서 법니다!!
그 분의 전략 중 매우 심플하지만 강력한 ‘변동성 돌파전략’ 이 있죠. 저와 인연이 매우 많은 전략이니까 여러번에 걸쳐서 찬찬히 살펴보겠습니다.
한국에서도 잘 먹히는 전략인데, 왜 이런 어마어마한 전략도 실전에서 버티기 힘든지도 살펴 보겠습니다.
변동성 돌파 전략 끝판 왕 주제에 대한 자세한 내용은 여기를 참조하세요.
변동성 돌파 전략 UPGRADE 완료, 변동성 돌파 분노자 대공개!
약 1년전 부터 퀀트픽은 래리 월리엄스의 변동성 돌파 전략을 활용하여 암호화폐 시장에서 프로그램 자동매매를 하여 꾸준한 수익을 벌 수 있었습니다 …
Source: coinpick.com
Date Published: 11/13/2022
View: 7512
06-2 변동성 돌파 전략 구현 – 파이썬을 이용한 비트코인 자동 …
래리 윌리엄스(Larry Williams)가 Long-Term Secrets to Short-Term Trading에서 소개한 변동성 돌파 전략은 최근 ‘가즈아! 가상화폐 투자 마법공식 (강환국 저)’ …
Source: wikidocs.net
Date Published: 12/18/2021
View: 8105
트레이딩의 끝판왕 자동매매 전략 구현하기 (feat. 변동성 돌파 …
트레이딩의 끝판왕 자동매매 전략 구현하기 (feat. 변동성 돌파 트렌드 전략 by TVExtBot). 프로파일 꿈사만행 ・ 2021. 7. 29. 22:50. URL 복사 이웃추가.
Source: blog.naver.com
Date Published: 1/2/2021
View: 682
변동성 돌파 전략 – 3초 만에 이해
변동성 돌파 전략 기본. 래리 윌리암스 (Larry Williams)에 의해 고안됨; 트렌드 추종을 기본으로 함. 상승하는 놈이 계속 상승한다!!!
Source: wellsw.tistory.com
Date Published: 1/29/2022
View: 713
변동성 돌파 전략을 테스트 해보자. – Steemit
illustration by @carrotcake 가상화폐 투자 마법 공식 이런 책이 있다. SNEK에 칼럼을 연재하기도 하는 Kangcfa와 @systrader79 님이… by yoon.
Source: steemit.com
Date Published: 10/14/2021
View: 8855
【트레이딩 챔피언십 1위】 래리 윌리엄스의 변동성 돌파전략!
주제를 살펴보자 “래리 윌리엄스 변동성 돌파 전략 – 【트레이딩 챔피언십 … 변동성 돌파 전략; 변동성 돌파 전략 끝판왕; 변동성 돌파 전략 조건식.
Source: ko.maxfit.vn
Date Published: 6/30/2021
View: 9475
53. 역대 최강의 트레이더의 가장 위대한 전략 – 변동성 돌파전략
Steemit; 트레이딩의 끝판왕 자동매매 전략 구현하기 (feat. 변동성 돌파 … 06-2 변동성 돌파 전략 구현 – 파이썬을 이용한 비트코인 자동 …
Source: ko.taphoamini.com
Date Published: 8/10/2021
View: 5901
변동성 돌파 트렌드 전략 – TVExtBot
변동성 돌파 트렌드 전략은 변동성 돌파 기본 전략을 1시간봉과 2시간봉에 최적화하여 롱과 숏 양방향으로 매매가능하도록 수정한 단기 추세 전략 …
Source: tvextbot.github.io
Date Published: 7/25/2021
View: 4860
단기 변동성 돌파 전략(헤이비트 Advanced 1.0 버전)
세부전략 · 1. 종목선정 · 2. 돌파신호 정의 · 3. 다섯 개의 종목 중 돌파신호를 보이는 코인을 선택하여 배팅 비율 만큼 매수함 · 4. 종가에 익절이든 손절 …
Source: ldgeao99.tistory.com
Date Published: 1/20/2022
View: 636
주제와 관련된 이미지 변동성 돌파 전략 끝판 왕
주제와 관련된 더 많은 사진을 참조하십시오 53. 역대 최강의 트레이더의 가장 위대한 전략 – 변동성 돌파전략. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 변동성 돌파 전략 끝판 왕
- Author: 할 수 있다! 알고 투자
- Views: 조회수 38,531회
- Likes: 좋아요 939개
- Date Published: 2019. 2. 26.
- Video Url link: https://www.youtube.com/watch?v=7jGzo3bv7jc
변동성 돌파 전략 UPGRADE 완료, 변동성 돌파 분노자 대공개!
변동성 돌파 전략 UPGRADE 완료, 변동성 돌파 분노자 전략 대공개!
안녕하세요 퀀트픽입니다!
약 1년전 부터 퀀트픽은 래리 월리엄스의 변동성 돌파 전략을 활용하여 암호화폐 시장에서 프로그램 자동매매를 하여 꾸준한 수익을 벌 수 있었습니다. 비록 시장 대비 한참 못 벌었지만 월단위로 -0.5% 이하의 손실을 본적이 없으며 2021년 5월 기준으로 약 120%의 누적 수익률을 달성하였습니다.
물론, 지금과 같은 암호화폐 시장에서 아무 김치코인을 매수하고 몇개월 동안 눈을 감으면 5배 또는 10배 이상을 버실 수 있을 것 입니다. 하지만, 영원한 상승장은 없으며 과연 다음에도 같은 방법을 사용하여 지속가능성 있는 수익을 벌 수 있는지도 의심이 듭니다.
투자에 정답은 없으나 최소 연복리 50% 이상 지난 10년동안 벌고, 최악의 경우 -25%로 방어한 전략이 바로 변동성 돌파 전략입니다. 최근에는 퀀트픽이 더 연구하고 공부하면서 변동성 돌파 전략의 기본 전략 위에 다양한 장치들을 추가로 탑재하여 전략을 더 로버스트하고 더 공격적으로 업그레이드 하였습니다. 제 노하우와 인사이트를 이번 포스팅에서 말씀 드리겠습니다.
1 . 변동성 돌파 기본 전략
– 변동성 돌파 전략의 가장 적인 로직은 아래와 같습니다. – 매수 : 돌파선 = 전일 레인지 (고가-저가) * K + 금일 시가
– 매도 : 타임커트 = 금일 시가에 매도.
– 조금더 길게 풀어서 해석하면 이렇습니다. 가격이 돌파선을 돌파시 매수하고, 돌파를 하지 못하면 현금 보유 합니다. 가격이 돌파 후 매수 시 다른 시장 참여자들의 익절 매물 그리고 본전 회복 심리에 기반한 매물로 인한 평균회귀를 고려하여 수익과 손실에 상관이 없이 시간이 되면 매도 합니다.
2. 변동성 돌파 타임프레임 분산 전략 – 그다음은 기존의 변동성 돌파 전략에 타임프레임 분산을 응용하였습니다. 매수와 매도 로직은 동일하나 여기에 시간 분산 기법을 활용하였습니다. – 암호화폐 거래소에서는 00:00 UTC를 기준으로 전일 종가와 금일 시가를 계산합니다. 00:00 UTC는 한국시간으로 오전 09:00 임. 공교롭게도 한국 주식 시장이 개장하는 시간과 동일 합니다. – 변동성 돌파 전략은 전일의 고가 – 전일의 저가 계산한 다음 K값을 곱하고 금일 시가를 더해서 매수 조건 형성 합니다. 만약 00:00UTC를 전일의 종가이자 금일의 시가로 정하면 한국시간 오전 09:00 부터 다음날 09:00까지 비트코인의 가격의 고점과 저점을 계산합니다. – 만약 01:00UTC를 전일의 종가이자 금일의 시가로 정하면 한국시간 오전 10:00 부터 다음날 10: 00까지 비트코인의 가격의 고점과 저점을 계산합니다. 그리고 계산한 레인지를 다음날 오전 09:00가 아닌 10:00의 가격에 더하는 것 입니다!
타임프레임 분산 전략은 크게 2가지 방법으로 사용할 수 있습니다!
가. 가장 잘 먹히는 시간대로 최적화하여 운용. – 퀀트픽이 24시간을 모두 시간단위로 지난 수년을 백테스트 해본 결과 한국시간 오전 09시, 10시, 그리고 11시 가 유의미한 결과를 주었습니다! 그리고 이 중에 비트코인과 이더리움 기준으로 10시>11시>9시 순서로 성과다 좋았습니다. – 기존에는 단순하게 9시를 기준으로 전일의 레인지를 계산하고, 9시에 돌파선 형성 및 타임커트 하는 전략을 사용한 반면 타임프레임 분산 전략을 응용하여 최적의 시간을 기준으로 돌파선을 계산 및 타임커트할 수 있도록 업그레이드 하였습니다. 나. 전략을 타임프레임 별로 분산하여 전략의 캐파 증진. – 다른 용도로는 비록 수익률이 떨어질 수 있으나 09시 , 10시 , 그리고 11시를 기준으로 돌파선 형성 & 타임커트를 응용하는 것 입니다. – 유동성이 부족할때 수십억원을 시장가로 거래할 시 슬리피지로 인한 막대한 거래비용이 발생할 수 있습니다. 이 자금은 1/3으로 배분한 다음 9시 / 10시 / 11시 타임프레임에 분산함으로서 수익률은 다소 떨어지나 전략의 캐파시티를 늘릴 수 있으며 거래비용을 낮출 수 있습니다! – 쉽게 말해서 전략의 캐파와 수익률의 트레이드 오프(TRADE-OFF)라고 보면 이해하기 쉽습니다!
3. 변동성 돌파 + 타임프레임 + 변동성 조절 기법 변동성 조절 기법은 노출하고 싶은 변동성을 조절하는 자금관리 기법입니다! 전일 변동성 = (전일의 고가 – 전일의 저가) / (전일의 종가) 투입 비중 = 타켓 변동성 / 전일 변동성
변동성 조절 하는 방법!
– 만약 전일의 변동성이 10% 이고 제가 노출하고 싶은 변동성은 5%라고 가정해 봅니다. 그렇다면 오늘 만약 가격이 돌파를 했을 경우 제가 투입하는 자금의 투입 비중은? 투입 비중 = 5% / 10% = 50% 입니다! – 반대로 전일의 변동성이 5%이고 제가 노출하고 싶은 변동성이 10%라면? 투입 비중 = 10% / 5% = 200% 입니다! – 이런 경우에는 레버리지를 사용하여 제가 노출하고 싶은 변동성에 노출 할 수 있습니다.
4. 변동성 돌파 + 타임프레임 + 변동성 조절 기법 + 레버리지
– 변동성 순환과 군집의 현상에 따라서 변동성이 작은 구간 이후에는 변동성이 커질 확율이 크며, 변동성이 큰 구간 이후에는 변동성이 작아질 확율이 높다는 전제가 있습니다.
– 암호화폐는 매우 추세가 강한 시장으로 변동성이 작아진 이후에 잠시 횡보를 하다가 상방 또는 하방으로 엄청난 변동성과 함께 추세가 형성됩니다.
– 변동성이 작은 구간에는 변동성 조절 기법 + 레버리지를 사용하면 상방으로 돌파 할때 매우 큰 수익을 한번에 취할 수 있습니다. – 반대로, 큰 추세로 상승한 후 수익을 챙긴 다음에는 베팅 비중으로 자연스럽게 줄여서 포지젼에 진입해도 손실을 다소 줄일 수 있다는 이점이 있습니다!
한마디 요약하면!
내가 유리 할때는 레버리지를 사용해서 수익을 극대화 하고
내가 불리 할때는 비중을 축소하여 손실을 최소화 한다!
5. 노이즈 비율이란 무엇인가? 그리고 퀀트픽이 사용하지 않는 이유! 래리 윌리엄스가 개발한 변동성 돌파전략은 코스닥과 같은 지수와 암호화폐에 잘 먹히는 것을 알 수 있습니다. 해당 전략은 모든 자산군에 잘 먹히지는 않습니다. 외환, 금, 원유등 기타 원자재에 백테스트를 해보면 수익곡선이 완전히 망가지는 것을 볼 수 있습니다. 변동성 돌파 전략이 꾸준히 수익을 내기 위한 조건은 아래와 같습니다. 1. 변동성이 커야 합니다. – 트레이딩 하는 자산군 또는 개별 종목의 변동성이 커야 변동성 돌파 전략이 잘 먹힙니다. – 변동성이 크면 돌파 후에 매수 시 수수료와 슬리피지를 커버하고도 수익을 낼 수 있기 때문입니다.
2. 노이즈가 적어야 합니다. – 추세적 = 노이즈가 적다 = 추세가 한번 형성되면 추세데로 쭉 간다는 뜻 입니다. 비추세적 = 노이즈가 크다 = 오르면 떨어지고, 떨어지면 하락하는 가격의 방향이 바뀌는 성질이 강하는 뜻 입니다. – 특정 종목이 추세적이라면 캔들 차트의 위꼬리 또는 아래꼬리가 짦습니다. 위꼬리는 가격이 올라갔다가 하락하면서 생기고, 아래꼬리는 가격이 하락했다가 오르면서 생깁니다. – 위꼬리와 아래꼬리가 짦으면 노이즈가 적다는 것, 길으면 노이즈가 크다 라고 해석하면 됩니다. 이를 한줄의 공식으로 풀어보면
노이즈 = 1 – abs(시가-종가)/(고가-저가)
– 분모를 캔들의 전체 길이로 잡아보자. 캔들의 전체 길이를 계산하기 위해서는 고가에서 저가를 빼면 됩니다. – 분수를 (시가 – 종가)의 절대값 (absolute value)로 하면 캔들 전체 길이에서 시가 대비 종가의 길이 비율을 계산할 수 있습니다. – 마지막으로 이 비율을 1에서 빼면 위꼬리와 아래꼬리의 비율이 됩니다. 그리고 이를 하나의 지표로 사용할 수 있습니다!
변동성 돌파 전략에 노이즈 비율을 활용할 수 있는 방법은 크게 4가지가 있습니다! 1.노이즈 값이 특정 수준 이하인 경우만 진입!
– 단일 종목 진입의 필터 조건으로 활용!
2. 노이즈 값이 특정 수준 이할일 경우만 포트폴리오 유니버스에 편입!
– 포트폴리오 구성의 필터 조건으로 이용!
3. 노이즈 값이 작은 종목들만 선별적으로 선택하여 트레이딩 !
– 노이즈 값이 작다는 것은 종목이 추세적이라는 뜻!
4. 노이즈 값에 따라 진입의 역치를 조절!
– 노이즈가 값이 작으면 돌파 계수를 낮게!
– 노이즈 값이 높으면 돌파 계수를 높게 조절!
1~3번의 활용방법은 트레이딩 유니버스를 코인 시장에서 가장 큰 시가총액과 엄청난 거래량이 발생하고 있는 비트코인과 이더리움만 트레이딩 하고 있으며 생략하였습니다. 그리고 4번인 노이즈 값에 따라 진입의 역치를 조절하는 변돌 분노자 지표의 노이즈 비율을 사용하여 백테스트 해본 결과 아래와 같습니다.
계수와 제곱을 1로 설정하면 고정 k 값이 아닌 노이즈 비율에 따라 유동적으로 돌파선을 조절합니다. 바이비트 비트코인 인버스 선물계약, 2019년 01월01일 부터 2021년 05월11일 까지의 수익곡선 입니다. 노이즈 비율을 사용할 시 수익곡선이 깨지는 것을 볼 수 있었습니다. 이더리움에도 노이즈 비율을 사용해보았습니다! 거래빈도수가 올라가고 수익곡선이 망가지지는 않습니다.
하지만 노이즈 비율을 사용하지 않는것이 백테스트 상 결과가 더 좋네요~결과적으로 퀀트픽은 노이즈 비율을 사용하지 않기로 결정하였습니다!
퀀트픽 VB+는 1. 비트코인과 이더리움만 트레이딩 합니다.
2. 바이낸스 선물 거래소를 활용하여 거래비용을 낮추고 레버리지를 활용합니다.
3. 일중 모멘텀이 가장 뚜렸한 10시를 기준으로 돌파선 형성 및 타임커트를 합니다.
4. 백테스트 상 MDD -25% 이하를 기준으로 변동성 조절 기법을 응용합니다.
5. 레버리지는 최고 200%로 제한하여 시장보다 아웃퍼폼하되 강제청산의 가능성을 낮추었습니다.
제가 공부하고 조사한 자료 출저는 아래와 같습니다.
1. SYSTRADER79 카페
2. 할투 유튜브
3. 가상화페 투자 마법 공식
4. 철투 유튜브
5. 철투 사이트
그리고 위의 모든 자료와 데이터 그리고 트레이딩 뷰 스크립트를 적절하게 조합하고 위에 말씀드린 모든 요소들을 고려하여 퀀트픽은 가장 기본적인 변동성 돌파 전략에서 빌드업을 하여 퀀트픽 VB+를 운용하고 있습니다.
*** 철투 2021신전략 소개 및 세팅 방법 을 참고하여 전략을 구매하고 세팅하는 방법까지 모두 확인하실 수 있습니다!
06-2 변동성 돌파 전략 구현
변동성 돌파 전략
래리 윌리엄스(Larry Williams)가 Long-Term Secrets to Short-Term Trading에서 소개한 변동성 돌파 전략은 최근 ‘가즈아! 가상화폐 투자 마법공식 (강환국 저)’ 등에서 소개된 이후로 국내에서도 유명해졌습니다. 변동성 돌파 전략을 간략히 요약해 보면 아래와 같습니다.
1) 가격 변동폭 계산: 투자하려는 가상화폐의 전일 고가(high)에서 전일 저가(low)를 빼서 가상화폐의 가격 변동폭을 구합니다. 2) 매수 기준: 당일 시간에서 (변동폭 * 0.5) 이상 상승하면 해당 가격에 바로 매수합니다. 3) 매도 기준: 당일 종가에 매도합니다.
간단한 예제와 함께 변동성 돌파 전략을 이해해 봅시다. 가상화폐는 24시간 거래되고 있기 때문에 먼저 시가와 종가를 계산할 기준 시간을 잡아야 합니다. 00:00:00 분부터 그날의 거래가 시작되고 23:59:59에 거래가 종료된다고 가정합시다.
1) 가격 변동폭은 00:00:00~23:59:59 사이의 거래 중에서 가장 높았던 금액과 가장 낮았던 금액을 빼주면 되겠지요? 예를 들어 12월 10일의 비트코인의 고가가 460만 원이고 저가가 300만 원이었다면 이날의 가격 변동폭은 160만 원입니다.
2) 12월 11일 비트코인의 시가(open)가 400만 원이라면 12월 11일의 매수 목표가는 400 + 160 x 0.5 = 480만 원이 됩니다. 12월 11일 하루 종일 일정한 시간마다 현재가를 계속 조회하다가 현재가가 매수 목표가인 480만 원을 넘어서면 바로 매수합니다.
3) 매도는 12월 12일 00:00:00초에 갖고 있는 비트코인을 시장가로 전량 매도합니다.
단계-1: 주기적으로 현재가 얻어오기
래리 윌리엄스의 변동성 돌파 전략을 단계별로 구현해 나가 보겠습니다. 24시간 동안 실행해야 하기 때문에 반복문 while을 사용합니다. Ch06/06_12.py는 0.2초에 한 번씩 비트코인의 현재가를 화면에 출력합니다. 거래소마다 초당 호출할 수 있는 API의 횟수에 제한이 있기 때문에 0.2초 정도 쉬는 겁니다.
# ch06/06_12.py 1: import pybithumb 2: import time 3: 4: while True: 5: price = pybithumb.get_current_price(“BTC”) 6: print(price) 7: time.sleep(0.2)
라인 4: 반복 횟수가 정해져 있지 않기 때문에 while문을 사용합니다.
라인 5: get_current_price() 함수를 호출하여 비트코인의 현재가를 얻어옵니다.
라인 6: 얻어온 현재가를 화면 출력합니다.
라인 7: 0.2 초 동안 수행을 멈춥니다.
단계-2: 목표가 계산하기
비트코인의 전일 가격 정보를 얻어온 후 금일 매수 목표가를 계산해 봅시다. pybithumb 모듈의 get_ohlcv() 함수는 시가/고가/저가/종가/거래량의 일봉 데이터를 DataFrame 객체로 반환합니다. 함수의 파라미터로 조회하려는 암호화폐의 티커를 입력합니다. 다음 코드는 비트코인 (BTC)의 가격 정보를 화면에 출력합니다.
1: import pybithumb 2: 3: df = pybithumb.get_ohlcv(“BTC”) 4: print(df.tail())
라인 3: get_ohlcv() 함수를 호출해서 비트코인의 일봉 정보를 DataFrame 객체로 얻어옵니다.
라인 4: tail() 메서드를 사용해서 DataFrame 객체에 저장된 일봉 데이터 중 끝의 5개 값만을 출력합니다.
출력 결과를 살펴보면 가격 데이터가 날짜를 기준으로 내림차순 정렬돼 있습니다. 가장 마지막 행에는 금일 조회 시점까지의 거래 정보가 들어있습니다. 따라서 하루 전의 데이터는 DataFrame 끝에서 두 번째행을 얻어와야 합니다. 정수 인덱스 값을 사용해서 행 단위로 값을 얻어올 때는 iloc를 사용했었지요?
open high low close volume 2018-12-11 00:00:00 3931000.0 3988000.0 3787000.0 3800000.0 4236.665853 2018-12-12 00:00:00 3803000.0 3919000.0 3777000.0 3845000.0 3714.563063 2018-12-13 00:00:00 3845000.0 3931000.0 3800000.0 3839000.0 3602.461280 2018-12-14 00:00:00 3839000.0 3861000.0 3670000.0 3704000.0 5563.794047 2018-12-15 21:00:00 3707000.0 3712000.0 3590000.0 3607000.0 3145.158777
가상화폐는 24시간 시장이 열리기 때문에 어제의 종가가 오늘의 시가와 비슷합니다. 따라서 어제의 시가, 고가, 저가, 종가 데이터를 가져오면 목표가 계산에 필요한 전일 저가, 전일 고가, 당일 시가를 모두 얻을 수 있습니다. (보다 정확히 구현하려면 오늘의 시가를 따로 얻어와야 합니다)
# ch06/06_13.py 01: import pybihtumb 02: 03: df = pybithumb.get_ohlcv(“BTC”) 04: yesterday = df.iloc[-2] 05: 06: today_open = yesterday[‘close’] 07: yesterday_high = yesterday[‘high’] 08: yesterday_low = yesterday[‘low’] 09: target = today_open + (yesterday_high – yesterday_low) * 0.5 10: print(target)
라인 4: iloc [-2]로 끝에서 두 번째 행(전일 데이터)을 가져옵니다. yesterday에는 전일 데이터가 Series 객체로 바인딩됩니다.
라인 6: Series 객체로부터 ‘close’ 인덱스를 사용해서 당일 시가를 얻어옵니다.
라인 7: Series 객체로부터 ‘high’ 인덱스를 사용해서 전일 고가를 얻어옵니다.
라인 8: Series 객체로부터 ‘low’ 인덱스를 사용해서 전일 저가를 얻어옵니다.
라인 9: 래리 윌리엄스 변동성 돌파 전략의 목표가를 계산합니다. (당일 시가 + 레인지 x 0.5)
목표가는 프로그램이 시작될 때 한 번 그리고 매일 자정마다 재계산되어야 합니다. 코드의 재사용을 위해 목표가를 계산하는 부분을 함수로 정리해 봅시다.
def get_target_price(ticker): df = pybithumb.get_ohlcv(ticker) yesterday = df.iloc[-2] today_open = yesterday[‘close’] yesterday_high = yesterday[‘high’] yesterday_low = yesterday[‘low’] target = today_open + (yesterday_high – yesterday_low) * 0.5 return target
단계-3: 자정에 목표가 갱신하기
래리 윌리엄스의 변동성 돌파 전략에서 목표가는 프로그램이 시작될 때 한 번 그리고 매일 자정마다 갱신해야 합니다. 목표가를 계산하는 get_target_price() 함수를 구현해놨기 때문에 이 함수를 적절한 시점에 호출해주기만 하면 됩니다. 하지만 현재 시각을 얻어오는 것뿐만 아니라 자정인지 아닌지를 판단하는 부분도 어려워 보입니다. 이러한 기능을 처음부터 구현하는 것보다는 기존에 구현된 모듈을 사용하면 좋겠죠?
파이썬은 시간을 쉽게 다룰 수 있는 datetime 모듈을 제공합니다. 처음 접하면 어려울 수 있기 때문에 다양한 코드를 살펴보며 datetime의 사용법을 익혀봅시다. 다음 코드는 2018년 12월 1일 00:00:00 초가 저장된 datetime 객체를 생성합니다.
1: import datetime 2: 3: dt = datetime.datetime(2018, 12, 1) 4: print(dt) 5: print(dt.year, dt.month, dt.day)
라인 1: datetime 모듈을 import 합니다.
라인 3: datetime 클래스의 초기화자로 년/월/일 세 개의 값을 전달합니다.
라인 4: datetime 객체가 바인딩된 dt 변수를 출력합니다.
라인 5: datetime 객체에 저장된 인스턴스 변수를 출력합니다.
위 코드를 실행하면 datetime 객체에 저장된 현재 시각이 다음과 같이 출력됩니다. 원하는 시각을 갖는 datetime 객체가 생성된 것을 확인할 수 있습니다. 또한 datetime 객체에 저장된 년/월/일 값이 year, month, day 속성에 바인딩된 것을 알 수 있습니다.
2018-12-01 00:00:00 2018 12 1
datetime 모듈에서 현재 시각은 now() 메서드를 사용해서 얻습니다. 다음 코드는 now() 메서드로 얻어온 datetime 객체와 직접 생성한 datetime 객체를 비교합니다.
1: import datetime 2: 3: dt = datetime.datetime(2018, 12, 1) 4: now =datetime.datetime.now() 5: print(now) 6: 7: print(now == dt) 8: print(now > dt)
now 에는 현재 시각이 datetime 객체로 저장돼 있습니다. 예제에서는 호출한 시점이 2018년 12월 16일 02:35:30초입니다. 직접 만든 dt 변수와 now 변수에는 모두 datetime 객체가 바인딩 돼 있기 때문에 비교 연산을 사용할 수 있습니다. 만약 현재 시각이 문자열로 저장돼 있다면 비교 연산을 사용할 수 있을까요? 사용 방법이 어려워 보이지만 datetime을 사용할 때의 얻을 수 있는 가장 큰 장점입니다.
2018-12-16 02:35:20.921899 False True
지금까지 배운 내용을 모두 응용해서 다음날 자정의 시각이 저장된 datetime 객체를 만들어봅시다. now() 메서드로 생성한 datetime의 속성 값을 얻어오는 것이 핵심입니다.
1: import datetime 2: 3: now = datetime.datetime.now() 4: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 5: print(now) 6: print(mid)
라인 3: now() 메서드로 현재 시각을 얻어옵니다.
라인 4: 00:00:00 초의 datetime 객체를 생성하고, 1일의 시간을 더해 다음 날 자정으로 만듭니다. timedelta(1)이 1일의 시간을 의미합니다.
변동성 돌파 전략은 24시간 동안 실행되며, 자정마다 목표가를 갱신해야 합니다. while문 안에서 now() 메서드와 datetime 클래스를 활용해서 자정을 판별해 보겠습니다. Ch06/06_14.py는 매일 자정마다 “자정입니다” 문자열을 화면에 출력하기를 기대하는 프로그램입니다. 코드에 문제가 있어 정상적으로 실행되지 않기 때문에 “기대”라고 언급했습니다. 문제점을 찾아보기 위해 코드를 이해해 봅시다.
# ch06/06_14.py 01: import time 02: import datetime 03: 04: now = datetime.datetime.now() 05: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 06: 07: while True: 08: now = datetime.datetime.now() 09: if now == mid : 10: print(“정각입니다”) 11: now = datetime.datetime.now() 12: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 13: 14: print(now, “vs”, mid) 15: time.sleep(1)
라인 4: 프로그램이 시작할 때 실행되는 코드로 다음날 자정 시각을 계산하기 위해 현재 시각을 얻어옵니다.
라인 5: 다음날 자정의 시각을 계산해서 datetime 객체로 저장합니다.
라인 8: while문 안에서 반복해서 현재 시각을 얻어옵니다.
라인 9: datetime의 비교 연산을 사용해서 얻어온 현재 시각이 자정인지 체크합니다.
라인 11~12: 자정이라면 다음날의 자정 시각을 계산합니다.
라인 14: 현재 시각과 다음날 자정 시각을 출력합니다.
코드를 실행하면 1초에 한 번씩 현재 시각과 다음날 자정의 시각이 출력됩니다. 출력값의 첫 번째 행을 보면 now() 메서드로 얻어온 현재 시각은 12월 16일 03:12:55초라는 것을 알 수 있습니다. 시간이 지나 현재 시각이 12월 17일 00:00:00 초가 되면 “정각입니다” 문자열이 출력될 것을 기대합니다. 하지만 안타깝게도 “정각입니다” 문자열은 출력될 수도 있고 안될 수도 있습니다. 두 번째 행의 현재 시각이 첫 번째 행과 비교하여 1.000459초 차이 납니다. 이는 프로그램에서 정확하게 1초 단위로 시각을 비교할 수 없음을 의미합니다. 컴퓨터에 과부하가 걸릴 경우 시간 차이는 더욱 커질 수 있기 때문에 now() 메서드로 얻어온 현재 시간이 23:59:59초 다음 자정이 아니라 24:00:01초로 넘어갈 수도 있습니다.
2018-12-16 03:12:55.149264 vs 2018-12-17 00:00:00 2018-12-16 03:12:56.149723 vs 2018-12-17 00:00:00 2018-12-16 03:12:57.150150 vs 2018-12-17 00:00:00
이런 문제를 해결할 수 있는 쉬운 방법 중 하나는 반복문 내에서 특정 시각을 비교하는 것이 아니라 보다 긴 구간(약 10초)에 속하는지를 확인하는 겁니다. 예를 들어 지금 시간이 00:00:00초를 비교하는 것보다 지금 시간이 00:00:00초 보다는 크고 00:00:10초보다는 작은 구간에 있는지를 비교하는 겁니다. ch06/06_15.py는 구간을 비교해서 목표가까지 계산하는 코드입니다.
# ch06/06_15.py 01: import time 02: import datetime 03: 04: now = datetime.datetime.now() 05: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 06: 07: while True: 08: now = datetime.datetime.now() 09: if mid < now < mid + datetime.timedelta(seconds=10) : 10: print("정각입니다") 11: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 12: 13: time.sleep(1) 라인 9의 코드를 눈여겨보세요. datetime.delta는 datetime에 offset을 더할 때 사용하는데, (seconds=10)은 10초를 더한다는 의미입니다. 현재 시각(now)이 자정(mid)와 자정에서 10초 뒤의 구간 사이에 있는가를 비교합니다. Ch06/06_16.py은 목표가 계산까지 포함된 전체 코드입니다. # ch06/06_16.py 01: import time 02: import pybithumb 03: import datetime 04: 05: def get_target_price(ticker): 06: df = pybithumb.get_ohlcv(ticker) 07: yesterday = df.iloc[-2] 08: 09: today_open = yesterday['close'] 10: yesterday_high = yesterday['high'] 11: yesterday_low = yesterday['low'] 12: target = today_open + (yesterday_high - yesterday_low) * 0.5 13: return target 14: 15: now = datetime.datetime.now() 16: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 17: target_price = get_target_price(“BTC”) 18: 19: while True: 20: now = datetime.datetime.now() 21: if mid < now < mid + datetime.timedelta(seconds=10) : 22: target_price = get_target_price(“BTC”) 23: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 24: 25: current_price = pybithumb.get_current_price("BTC") 26: print(current_price) 27: 28: time.sleep(1) 단계-4: 매수 시도 이번에는 매수 기능을 추가해 보겠습니다. 목표가가 현재가 이상일 경우 잔고를 조회하고 주문 가능한 수량을 계산한 후에 시장가 매수합니다. Ch06/06_17.py 은 6.1.3 절의 잔고조회와 6.1.4 절의 시장가 주문을 사용합니다. # ch06/06_17.py # 코드 생략 23: while True: 24: now = datetime.datetime.now() 25: if mid < now < mid + datetime.timedelta(seconds=10): 26: target_price = get_target_price(“BTC”) 27: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 28: 29: current_price = pybithumb.get_current_price("BTC") 30: if current_price > target_price: 31: krw = bithumb.get_balance(“BTC”)[2] 32: orderbook = pybithumb.get_orderbook(“BTC”) 33: sell_price = orderbook[‘asks’][0][‘price’] 34: unit = krw/float(sell_price) 35: bithumb.buy_market_order(“BTC”, unit) 36: 37: time.sleep(1)
라인 30: 현재가가 목표가 보다 크다면 다음 코드를 실행합니다.
라인 31: 잔고 조회 API를 사용해서 보유 중인 원화를 얻어옵니다.
라인 32~33: 호가창을 조회해서 최우선 매도 호가를 조회합니다.
라인 34: 원화 잔고를 최우선 매도가로 나눠서 구매 가능한 수량을 계산합니다.
라인 35: 시장가 주문으로 비트코인을 매수합니다.
매수와 관련된 코드(라인 30~35)를 buy_crypto_currency() 함수로 정리해 봅시다. buy_crypto_currency () 함수는 매수하려는 암호화폐의 티커를 입력받습니다.
def buy_crypto_currency(ticker): krw = bithumb.get_balance(ticker)[2] orderbook = pybithumb.get_orderbook(ticker) sell_price = orderbook[‘asks’][0][‘price’] unit = krw/float(sell_price) bithumb.buy_market_order(ticker, unit)
단계-5: 매도 시도
이번 절에서는 매도 기능을 추가해보겠습니다. 변동성 돌파 전략에서는 보유 중인 비트코인을 다음 날 시초가에 전량 매도합니다. 즉, 00:00:00초에 시장가 매도를 하는 겁니다. 앞서 여러분은 이미 while 루프 내에서 00:00:00 ~ 00:00:10초 사이의 시간을 판단하는 분기문을 추가했습니다. 따라서 해당 분기문에서 다음과 같이 sell_crypto_currency() 함수를 호출해줍니다.
while True: now = datetime.datetime.now() if mid < now < mid + datetime.delta(seconds=10): target_price = get_target_price(“BTC”) now = datetime.datetime.now() mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) sell_crypto_currency(“BTC”) 이번에는 sell_crypto_currency()라는 매도 함수를 구현해 봅시다. 매도 함수에서는 단순히 본인 계좌에서 비트코인이 있는지 잔고 조회한 후 조회된 수량의 비트코인을 시장가로 전량 매도하면 됩니다. def sell_crypto_currency(ticker): unit = bithumb.get_balance(ticker)[0] bithumb.sell_market_order(ticker, unit) 정리해보면 매일 밤 자정에는 다음과 같은 순서로 작업이 진행됩니다. 1) 보유한 비트코인이 있다면(당일 매수 조건에 따라 매수가 됐다면) 해당 비트코인을 시장가로 매매 2) 전일 시가, 고가, 저가, 종가 기준으로 래리 윌리엄스의 변동성 돌파 전략 기반 목표가 재계산 3) 해당 일 기준으로 다음 날의 00:00:00 초 시간 계산 매수/매도 기능까지 함수로 정리한 전체 코드는 다음과 같습니다. # ch06/06_18.py # 코드 생략 34: while True: 35: now = datetime.datetime.now() 36: if mid < now < mid + datetime.timedelta(seconds=10): 37: target_price = get_target_price(“BTC”) 38: mid = datetime.datetime(now.year, now.month, now.day) + datetime.timedelta(1) 39: sell_crypto_currency("BTC") 40: 41: current_price = pybithumb.get_current_price("BTC") 42: if current_price > target_price: 43: buy_crypto_currency(“BTC”) 44: 45: time.sleep(1)
단계-6: 보안 및 예외처리
이번 절에서는 예외처리 및 보안을 강화해 보겠습니다. 앞서 여러분은 Bithumb 클래스의 객체 생성에 필요한 Connect Key와 Secret Key를 코드 상에 문자열로 직접 입력했습니다. 그러나 이러한 방식은 코드가 공개됐을 때 여러분의 Connect Key와 Secret Key가 노출됩니다.
코드와 여러분의 키값을 분리해 봅시다. 윈도우 메모장을 실행한 후 그림 6-15과 같이 Connect Key와 Secret Key를 각각 다른 줄에 붙여 넣기를 해줍니다. Connect Key가 첫 번째 줄에 위치하고 Secret Key를 그다음 줄에 붙여 넣기 해주시기 바랍니다. 메모장에서 저장을 눌러 bithumb.txt라는 이름으로 파일을 저장합니다.
그림 6-15 Connect Key와 Secret Key
기존에 문자열로 표현된 Connect Key와 Secret Key를 사용해서 Bithumb 클래스의 인스턴스를 생성하는 코드를 다음과 같이 변경합니다. 이때 메모장에서 저장한 bithumb.txt 파일은 반드시 현재 소스코드와 같은 디렉터리에 위치하고 있어야 합니다.
1: with open(“bithumb.txt”) as f: 2: lines = f.readlines() 3: key = lines[0].strip() 4: secret = lines[1].strip() 5: bithumb = pybithumb.Bithumb(key, secret)
라인 1: 예외처리 기능이 포함된 파일 열기 코드입니다.
라인 2: 파일에서 모든 줄(line)을 읽어서 파이썬 리스트로 저장합니다.
라인 3: lines[0] 번(Connect Key)을 읽은 후 strip() 메서드를 호출하여 좌우 공백을 제거한 문자열을 key라는 변수로 바인딩합니다.
라인 4: lines[1] 번(Secret Key)을 읽은 후 strip() 메서드를 호출하여 좌우 공백을 제거한 문자열을 key라는 변수로 바인딩합니다.
라인 5: key, secret 변수를 사용해서 Bithumb 클래스에 대한 인스턴스를 생성합니다.
지금까지 구현한 변동성 돌파 전략은 이상적인 환경에서만 동작합니다. 네트워크 상태가 일시적으로 좋지 않거나 bithumb 서버가 불안정한 경우 API 호출의 실패로 프로그램이 종료될 수 있습니다. pybithumb모듈은 API의 호출이 실패할 경우 None 값을 반환합니다. 다음 코드에서 get_current_price() 함수가 None 값을 반환하면 어떻게 될까요? if문에서 None 값과 숫자(target_price)를 비교하다 TypeError 메시지를 출력하고 프로그램이 종료됩니다.
current_price = pybithumb.get_current_price(“BTC”) if current_price > target_price: buy_crypto_currency(“BTC”)
프로그램이 종료되면 매수/매도를 해야 할 시점에 대응하지 못해 추가적인 손실을 입히거나 시장 참여 기회를 잃어버릴 수 있습니다. API의 호출 실패는 생각보다 빈번하게 일어나기 때문에 안정적인 프로그램 운용을 위해서는 에러 처리를 위한 코드를 추가해야 합니다.
파이썬에서는 에러를 제어하기 위해 try ~ except 문법을 사용합니다. try 키워드에는 정상 상황에서 실행될 코드를 들여 쓰기 한 후 작성하고 except 키워드에는 에러 상황에서 실행될 코드를 들여 쓰기 한 후 추가합니다. 다음은 고의로 에러를 발생시키는 코드입니다. 어떻게 동작할지 생각해봅시다.
1: try: 2: if None > 123: 3: print(“정상”) 4: except: 5: print(“에러 발생”)
라인 2-3: 정상 환경에서 실행될 코드로 에러를 발생시키기 위해 고의로 None 값과 정수 값을 비교합니다.
라인 5: 에러 상황에서 실행될 코드입니다.
정상적인 상태라면 라인 2와 라인 3의 코드를 차례로 실행하고 프로그램은 종료됩니다. 하지만 위 예제에서는 라인 2에서 에러가 발생하기 때문에 라인 3의 코드는 실행되지 못하고 라인 5의 코드가 실행됩니다. 그 결과 “에러 발생”이라는 문자열이 화면에 출력됩니다. 에러 처리를 하지 않는 경우 파이썬 인터프리터가 라인 2에서 에러를 출력하고 종료되지만 에러 처리를 한 경우에는 에러가 있더라도 파이썬 인터프리터가 종료되지 않고 다음 코드를 실행할 수 있습니다.
에러 발생
구현한 변동성 돌파 전략 코드에 try ~ except 구문을 적용해서 에러 처리를 적용해 봅시다.
트레이딩의 끝판왕 자동매매 전략 구현하기 (feat. 변동성 돌파 트렌드 전략 by TVExtBot)
1. 자동매매란?
현물에서는 싸게 사서, 비싸게 파는 것을 자동으로 해주는 것을 말하며, 선물 및 마진거래에서는 롱(매수) 또는 숏(매도) 포지션 진입과 청산을 자동으로 해주는 것을 말함
2. 자동매매에 대한 나만의 생각 및 무한도전
싸게 사서 비싸게 팔 수 있는 방법이 있고, 이를 자동으로 실행할 수 있는 자동매매 툴이 있다고 생각해 보자.
상상만으로도 짜릿하지 않은가? 아마도 트레이딩을 하는 투자자들의 로망(파랑새)이 아닐까 생각한다.
이를 위해 누군가는 열심히 방법을 찾아가고 있고, 테스팅해 본다. 잃기도 하고 수익을 얻기도 한다.
아직 완벽한 방법이란 없다.
본인이 예전에 자동매매 지표로 활용한 ‘하이킨아시를 활용한 supertrend benjake 지표 전략’도 상당히 성공적이여 보였지만 실질적으로 지속적으로 자동매매만으로 할 수 없게 하는 뭔가가 (장애물이) 있었다.
개인이 자동매매를 신뢰하지 못하는 실수도 있었고,
시장이 과거와는 다르게 전개되는 경우도 있었다.
지속적으로 관찰하는 끈기가 부족하기도 했다.
성공적인 자동매매 전략을 찾는 것은
나에게 ‘무한도전’이지만 누군가는 이를 ‘무모한도전’이라고 할 수 있으리라.
3. 변동성 돌파 트렌드 전략을 통한 자동매매
나의 이러한 도전에 도움을 주시는 분이 있다.
TVExtBot 개발자 분이다.
이 분께서 이번에 ‘변동성 돌파 트렌드 전략’을 내 놓았다.
(TVExtbot을 사용하시는 분은 아시겠지만 expert 버전을 구매하시는 분께서는 무료로 제공하고 있다.)
변동성 돌파 트렌드 전략은
변동성 돌파 기본 전략을 1시간봉과 2시간봉에 최적화하여
롱과 숏 양방향으로 매매가능하도록 수정한 단기 추세 전략이다.
여러분도 파랑새를 한번 찾아보시죠.
아래 포스팅을 확인해 보세요.
https://tvextbot.github.io/post/indicator_vbt/
변동성 돌파 전략
앤테바
변동성 돌파 전략 기본
래리 윌리암스 (Larry Williams)에 의해 고안됨
트렌드 추종을 기본으로 함. 상승하는 놈이 계속 상승한다!!!
전략이 굉장히 심플하지만 강력함
변동성 돌파 전략 핵심
돌파 가격 = 오늘 시가 + (전일 고가 – 전일 저가) * k. k 값은 0.4~0.6
오늘 가격이 돌파 가격을 넘어가면 매수
다음날 아침 장이 시작하면 모두 매도
변동성 돌파 전략 예시
전일 시가 : $920, 전일 고가 : $1000, 전일 저가 : $900, 전일 종가 $960
오늘 시가 : $960
돌파 가격 = $960 + ($1000 – $900) * 0.6 = $1020
오늘 장중에 돌파 가격 $1020을 넘어서면 매수해서 다음 날 아침 장 시작하면 모두 매도
변동성 돌파 전략 설명
변동성 돌파 전략 강점
오늘 매수해서 내일 팔기 때문에 시장 심리에 휘둘리지 않음
전략이 간단해서 자동 매매 구현이 쉬움
전략이 너무 간단해서 과연 이게 통할까???
다음 글에서는 비트코인에 변동성 돌파 전략을 적용하여 백테스트를 수행하겠습니다.
과연 얼마의 수익이 발생할까요?
함께 보면 좋은 글:
tradingview.com/chart/TSLA/vlvAMwqN-Volatility-Breakout-Trading-Explained/
【트레이딩 챔피언십 1위】 래리 윌리엄스의 변동성 돌파전략! | 래리 윌리엄스 변동성 돌파 전략 새로운 업데이트
We are using cookies to give you the best experience on our website.
You can find out more about which cookies we are using or switch them off in settings.
변동성 돌파 전략 끝판 왕 125 개의 베스트 답변 – Ko.taphoamini.com
We are using cookies to give you the best experience on our website.
You can find out more about which cookies we are using or switch them off in settings.
변동성 돌파 트렌드 전략
변동성 돌파 트렌드 전략은 변동성 돌파 기본 전략을 1시간봉과 2시간봉에 최적화하여 롱과 숏 양방향으로 매매가능하도록 수정한 단기 추세 전략입니다.
중요사항 EXPERT 사용자 전용 지표입니다.Expert 사용자이외에는 사용하실수 없습니다.
1시간과 2시간봉에만 사용가능합니다. 그이외의 시간봉에서는 사용하지 마세요.
고배율의 레버리지는 사용하지 마세요. 만약 레버리지를 사용하신다면 개인적으로는 2배를 추천드립니다.
지표 사용에 의해서 발생한 매매손실에 대해서는 일체 책임을 지지 않으니 유의하여 주세요.
설명
변동성 돌파 트렌드 전략은 변동성 돌파 기본의 롱 전략과 하이킨아시의 숏 전략을 시간 단위로 적용하여 단기적으로 수익을 실현하기 위한 롱&숏 전략입니다.
가장 큰 특징은 파인스크립트의 스트래티지를 소스 수정없이 바로 자동매매에 사용할수 있기 때문에 파인스크립트를 몰라도 누구나 간단히 사용할수 있습니다.
백테스트
아래의 백테스트 결과는 바이낸스 선물 ETH/USDT 차트의 2시간봉 기준입니다.
(테스트 기간:2018년1월1일~2021년7월26일)
※ 백테스트는 누구나 사용가능합니다. 아래의 링크를 클릭하여 즐겨찾가에 추가한 다음 직접 테스트를 실시하여 수익률을 확인하세요.
입력항목 설명
인풋 항목 Noise Ratio (Day) (노이즈비율기간) : 30일
BeforeDay Open-Close Volatility (%) (전날 시가종가 변동률) : 7%
ToDay Open-Close Volatility (%) (당일 시가종가 변동률) : 7%
TakeProfit (%) (익절) : 15%
Trailing Stop(%) (트레일링 스탑) : 5%
Long Only (롱만 사용) : 체크함
Short Only (숏만 사용) : 체크함
BackTest Period (백테스트 기간) : 2018/ 01 / 01 ~ 2050/12/31
Long Leverage (롱 레버리지) : 1
Short Leverage (숏 레버리지) : 1
※전날 시가종가 변동률이란 전날 시가와 종가의 변동률이 입력한 값보다 크면 시그널이 발생하더라도 진입을 하지 않습니다.
※당일 시가종가 변동률이란 시가 대비 진입가가 입력한 값보다 크면 시그널이 발생하더라도 진입을 하지 않습니다.
※트레일링 스탑이란 진입 이후의 종가에서 “스탑”설정한 비율 만큼 하락할 경우 자동으로 포지션을 종료하여 수익 및 손실을 방어하는 주문을 의미합니다.
주문메시지 작성
※바이낸스 선물 무기한 ETH/USDT (단방향모드사용)를 예로 설명하겠습니다.
변동성 돌파 트렌드 전략 자동매매 설정 동영상 가이드
매수 주문메시지
1.주문메시지 작성화면에서 아래와 같이 매수주문에 필요한 내용을 입력하여 메시지등록 버튼을 클릭합니다.
※주문ID는 메시지를 등록하시면 자동생성됩니다. ①과②는 차트설정에서 사용합니다.
예) 매수 주문 메시지 내용 거래소 : Binance-Futures (USDT-Ⓜ 선물)
계정 : 본인의 계정을 선택
거래코인 : ETH/USDT
거래방법 : 매수
주문유형 : 시장가
주문수량 : 50%(잔액대비)
포지션 청산후 주문실행 : 체크함
레버리지 : 2x
메모 : 바이낸스 ETH 매수 (변돌트랜트2H)
※포지션 청산후 주문실행을 반드시 체크하세요.
매도 주문메시지
2.주문메시지 작성화면에서 아래와 같이 매도주문에 필요한 내용을 입력하여 메시지등록 버튼을 클릭합니다.
※주문ID는 메시지를 등록하시면 자동생성됩니다. ③과④는 차트설정에서 사용합니다.
예) 매도 주문 메시지 내용 거래소 : Binance-Futures (USDT-Ⓜ 선물)
계정 : 본인의 계정을 선택
거래코인 : ETH/USDT
거래방법 : 매도
주문유형 : 시장가
주문수량 : 50%(잔액대비)
포지션 청산후 주문실행 : 체크함
레버리지 : 2x
메모 : 바이낸스 ETH 매도 (변돌트랜트2H)
※포지션 청산후 주문실행을 반드시 체크하세요.
청산 주문메시지
3.주문메시지 작성화면에서 아래와 같이 청산주문에 필요한 내용을 입력하여 메시지등록 버튼을 클릭합니다.
※주문ID는 메시지를 등록하시면 자동생성됩니다. ⑤과⑥는 차트설정에서 사용합니다.
예) 청산 주문 메시지 내용 거래소 : Binance-Futures (USDT-Ⓜ 선물)
계정 : 본인의 계정을 선택
거래코인 : ETH/USDT
거래방법 : 청산
주문유형 : 시장가
주문수량 : 미입력 (※미입력시 전액 청산)
메모 : 바이낸스 ETH 청산 (변돌트랜트2H)
차트설정
주의사항 매수 얼러트를 설정할때 변동성 돌파 라인을 돌파한 시점에서 얼러트를 추가하면 매수 시그널이 발생하여 매수 주문이 실행 됩니다. 그래서 반드시 아래와 같이 해당 거래소의 API 연결을 차단한후 얼러트를 설정을 해주세요.
【API키 차단중】
아래의 얼러트 추가를 끝낸후 반드시 API를 연결중으로 해주셔야 합니다.
【API키 연결중】
4.먼저 사용하실 거래소와 2시간봉을 선택한후 변동성 돌파 트렌드 지표(VBTS)를 불러옵니다.(※ 예는 바이낸스선물 2시간봉 차트입니다.)
※지표검색창에 『[TVExtBot]Volatility Breakout Trend Strategy(1H&2H)』을 입력
5.차트에 지표를 추가하면 자동적으로 인풋화면이 열려 아래와 같이 위의 주문메시지 작성에서 등록된 주문메시지의 주문ID와 메모를 입력합니다.
※주문ID와 메모는 주문메시지 작성화면에 있는 을 클릭하면 복사됩니다.
주문ID와 메모 입력하기 Authentification Key (인증키) : 봇 구매시에 메일로 받은 인증키를 입력
Long Entry OrderID (롱진입 주문ID) : ①을 입력 Memo : ②를 입력
Long Close OrderID (롱청산 주문ID) : ⑤을 입력 Memo : ⑥를 입력
Short Entry OrderID (숏진입 주문ID) : ③을 입력 Memo : ④를 입력
Short Close OrderID (숏청산 주문ID) : ⑤을 입력 Memo : ⑥를 입력
※롱청산 주문ID와 숏청산 주문ID에는 동일한 주문ID를 입력합니다.
주문ID와 메모 입력후 화면
중요사항 자동매매중에 위의 인풋 항목을 변경할 경우 변경한 내용을 자동매매에 적용하기 위해서는 반드시 기존 얼러트를 삭제하고 새로운 얼러트를 추가하셔야 합니다.
얼러트 설정
얼러트 설정 입력내용 ⑦ 조건 : 『[TVExtBot]VBTS』 를 선택
⑧ 웹훅 URL : 『 https://tvextbot-expert.web.app/api/webhook 』 웹훅URL을 입력 (※1)
』 웹훅URL을 입력 ⑨ 얼러트 네임 : 『바이낸스 ETH (변돌트랜트2H)』 를 입력 (※입력하지 않아도 됩니다)
⑩ 메시지 : 『{{strategy.order.alert_message}}』 를 입력 (※2)
(※1) 반드시 본인의 메시지 작성화면에 있는 웹훅URL을 입력해 주세요.
(※2) 아래의 내용을 복사해서 얼러트에 메시지란에 붙여쓰기 하세요.
{{ strategy . order . alert_message }}
※얼러트는 한개만 추가하면 됩니다.
단기 변동성 돌파 전략(헤이비트 Advanced 1.0 버전)
헤이비트의 advance 1.0 전략은 이전의 Basic 버전과 비교하여 MDD와 수익률 면에서 크게 개선된 버전이다.
전략개요
후보 암호화폐 : 5종
K값 : 최근 20일 간의 노이즈 비율의 평균 값
배팅비율 : (이동평균선 스코어) * (변동성 조절 비율)
타임프레임 분산 : O
[출처 : 헤이비트]세부전략
1. 종목선정
– 암호화폐 중 시가총액이 가장 높고, 거래소에서 거래가능한 종목 5종을 대상으로 선택하며, 이를 월 단위로 갱신함.
2. 돌파신호 정의
– 래리 윌리엄스의 기법에서 K값이 노이즈 비율에 따라 변화하도록 하여 돌파가격이 때에 따라 다르게 함.
3. 다섯 개의 종목 중 돌파신호를 보이는 코인을 선택하여 배팅 비율 만큼 매수함
4. 종가에 익절이든 손절이든 모두 매도함
시장과 종목의 추세 수준에 따른 파라미터 값 선정
# K값
– 고정된 K값을 설정할 경우, 시장과 종목의 추세 수준이 변화하는 것에 대응되지 않을 수 있다.
예를들어, 해당 종목의 추세성이 약한 상태라면, 설령 돌파신호가 발생 하더라도 그 추세가 이어질 확률이 낮다.
반대로, 해당 종목의 추세성이 강한 상태라면, 돌파신호 발생 후 수익을 거둘 확률이 높다.
따라서, 이때는 돌파신호의 발생 점을 낮춰서 수익성을 높일 수 있게 된다.
– 이를 위해, 노이즈 비율이라는 지표를 사용할 수 있다. 이 지표는 해당 종목이 얼마나 추세적인지를 나타내는 지표이다.
가격이 일방향으로 지속적으로 움직인다면 추세적 노이즈가 적은 것이고,
가격이 오르면 떨어지고 떨어지면 오르는 성질을 가진다면 비추세적, 즉 노이즈가 많은 것이다.
– 이를 캔들에서 확인해보면, 추세적일 때는 위꼬리나 아래꼬리가 짧은 장대양봉 혹은 장대음봉 이고,
비추세적 일 때이라면 위꼬리나 아래꼬리가 길어 장중에 가격이 반전되는 성향이 강하다는 것을 알 수 있다.
이런 관점에서 일중 캔들의 노이즈를 다음과 같이 정의할 수 있다.(아래의 식에서 abs는 절대값을 의미함)
노이즈 비율 = 1 – abs(시가 – 종가) / (고가 – 저가)
– 노이즈 비율이 높은 경우 최대 1일 때는 추세성이 전혀 없는 상태이고,
노이즈 비율이 0이라면 아주 순수한 추세라는 의미로 볼 수 있다.
– 헤이비트에서는 최근 20일 간의 노이즈 비율의 평균값을 K로 사용하였는데 이는 백테스팅에서 얻은 결과로 판단된다.
이에 따라 최근 20일간의 노이즈 비율이 높은 경우 변동성 돌파 지점을 높여 거짓 추세를 피해가고,
최근 20일간의 노이즈 비율이 낮은 경우 변동성 돌파 지점을 낮춰 추세에 빨리 올라탈 수 있게 된다.
K = 최근 20일간의 노이즈 비율의 평균값
# 배팅비율
– 배팅 비율은 (이동평균선 스코어) x (변동성 조절 비율)로 정해진다.
@ 이동평균선 스코어
– 헤이비트의 이전버전인 Basic 버전에서는 5일 이동평균선과 현재 가격을 비교해 상승장 유무를 판단해 진입을 결정하였다.
그러나, 이렇게 true/false의 이분법적인 방법으로 대응하게 되면 대응이 최적화 될 수 없다고 한다. 대신 Advanced 에서는
더 섬세한 이동평균선 스코어에 의한 베팅 비율 조절을 적용한다.
– 이동평균선 스코어는 다음과 같이 계산한다.
3일 ~ 20일의 18개의 이동 평균선을 각각 계산하여
이동평균선 스코어 = 각 이동평균선을 넘은 개수 / 18
즉, 3일 이동평균선을 넘으면 + 0.055(1/18)점, 4일 이동평균선을 넘으면 + 0.055(1/18)점
이렇게 18번을 모두 넘으면 이동평균선 스코어는 총 1(18/18)점이 되는 것이고
이렇게 18번을 모두 넘지 못하면 이동평균선 스코어는 총 0(0/18)점이 되는 것이다.
– 이렇게 구해진 수치를 모두 넘은 강한 추세에는 100%(18/18)의 풀베팅을,
이동평균선을 절반만 넘은 적당한 추세에서는 50%(9/18)의 하프베팅을,
이동평균선을 전혀 넘지 않은 비추세장에서는 0%의 베팅 회피를 하게 되는 것이다.
이러한 과정을 통하여, 추세의 정도에 맞는 베팅을 할 수 있게 된다.
[출처 : 헤이비트] 이 때의 이동평균선 스코어(=베팅비율) : 17/18@ 변동성 조절 비율(2%룰)
– 변동성을 제어하는 것은 투자 손실을 제어하는 중요한 원칙 중 하나이다.
변동성이 큰 장에선 큰 금액을 베팅할 경우, 크게 잃을 확률이 증가하는 것은 자연스러운 일인데,
변동성이 클 때는 베팅 양을 줄이고, 변동성이 작을 때는 베팅 양을 늘림으로써 변동성을 제어할 수 있다.
– 문제는 변동성을 어떻게 파악하냐는 것인데, 이에 대해서는 변동성이 큰 구간과 작은 구간이 무리지어 나타나는
변동성 군집(Volatility clustering) 현상을 이용한다. 최근의 변동성이 오늘의 변동성과 유사할 가능성이 높다는 것.
– 변동성 조절(2%룰) 비율을, 다음과 같은 공식으로 조절한다.
변동성 조절 비율 = 타겟 변동성 / 전일 변동성 / 대상 암호화폐 수
– 타겟 변동성
내 전략이 맞추고자 하는 변동성 수준으로 헤이비트는 2%를 목표 값으로 한다.
한 번의 트레이딩에서 2% 이상의 자산을 잃지 말라는 것은 전설적인 트레이더들이 한 목소리로 조언하는 중요한 원칙임.
– 전일 변동성
(전일 고점 – 전일 저점) / 현재가격
– 대상 암호화폐 수
Advanced 버전에서는 5종을 트레이딩 하므로 값은 5이다.
# 타임프레임 분산
– 변동성 돌파 전략의 최종 공식은 위에 까지 해서 구해졌으나 헤이비트의 운용 방식에는 한 가지 요소가 더해져 있다.
그것은 타임프레임 분산 기법인데, 이것은 자산을 한꺼번에 운용하지 않고 각기 다른 시간구간별로 분산해서 운용하는 것을 의미함.
– 헤이비트는 사용자의 금액과 전체 사용량 등에 의거해 분할 매수와 시간대를 조정할 수 있다.
– 클로즈 베타 단계에서는 24시간 분할을 적용하며, 운용 방식은 아래와 같다.
먼저, 자산을 24분할한다.
자산의 1/24를 0시부터 24시의 구간에서 최종 공식대로 운영
자산의 1/24를 1시부터 25시의 구간에서 최종 공식대로 운영
자산의 1/24를 2시부터 26시의 구간에서 최종 공식대로 운영
…
자산의 1/24를 23시부터 47시의 구간에서 최종 공식대로 운영
이렇게 잘게 나뉘어진 자산이 순차적으로 작동하여 각각 다른 시간 구간에서 운영된다.
– 이렇게 분산을 하는 이유는?
1) 슬리피지
모든 사용자가 동일 시간대에 매수/매도신호를 받게 되면, 헤이비트의 사용자 및 운용액이 커짐에 따라 해당 시점에
슬리피지가 크게 발생하게 된다. 이는 단기 트레이딩 전략에게 치명적일 수 있는데, 이렇게 분산이 될 수록 병목이 급격히 줄어
슬리피지를 회피할 수 있다.
2) 타임 프레임별 성과 차이 발생 가능성 제거
동일한 전략으로도 어떤 시간대에 굴리느냐에 따라 성과 차이가 날 수 있다.
특정 시간대에 발생한 대형 호재를 놓치거나, 대형 악재로 인한 극단적 피해를 입을 가능성도 있다.
타임프레임 분산은 이런 문제를 효과적으로 헷징하여 전체적인 성과를 평탄화함으로써 안정적인 성과를 거둘 수 있도록 돕는다.
– 이 과정은 인간이 재현하기에 불가능에 가깝다. 5개 종목를 24분할시 120개 인데, 이를 별도로 매매해야하기 때문이다.
이는 헤이비트가 자동매매를 제공하므로 쉽게 이용할 수 있다.
백테스트 결과
# 백테스트 결과 분석
– 위의 전략을 백테스트 하기 위해서는 상위 암호화폐 5종의 시간 단위의 데이터가 필요하다.
– 헤이비트는 빗썸을 통해 2017년 9월 29일부터의 데이터를 구해 알고리즘을 적용해 볼 수 있다고 한다.
– 아래의 결과는 2017년 10월 19일 ~ 2018년 5월 15일 까지의 성과이다. 슬리피지는 매수/매도 모두 0.2% 적용
검은색 선은 비트코인, 비트코인캐시, 이더리움, 리플, 라이트코인을 단순 1/5씩 분산 매수하고 홀드한 경우의 그래프이며,
연말까지 9배의 폭등을 경험했다가, 1월 초부터 약 80%의 폭락을 기록했다.
이 변동성이 큰 장세에서 헤이비트의 Advanced전략은 안정적으로 2배이상으로 상승한 것을 볼 수 있다.
CAGR(연평균수익률) : 238.4%
MDD(최대낙폭) : 6.11%
[출처 : 헤이비트]– 마지막 지점에서 단순 분산 매수&홀드 전략이 더 많이 번 것같이 보이지만 우리는 17년10월과 같은 기가막힌 저점에서부터
투자를 시작할 수 있다는 보장이 없다. 만약 꼭대기에서 투자를 시작했다면 엄청난 손실로 끝났을 것이다.
– 헤이비트의 Advanced 전략을 18년 1월부터 사용했다고 해보면 아래와 같이 엄청난 폭락 속에서도 수익을 낼 수 있다.
여기서 주목할 만한 것은 한결같이 낮은 MDD!!
CAGR(연평균수익률) : 88%
MDD(최대낙폭) : 5.86%
결론
헤이비트의 변동성 돌파 전략은 현재 시장의 상황을 가리지 않고 시작 가능하고, 대폭락의 구간에서도 안정적으로 낮은 MDD를 유지하며 결과적으로는 자산을 우상향 시킨다. 단순히 높은 수익을 기록하는 것 뿐 아니라 그 과정이 편안하여 삶의 질 향상까지도 얻을 수 있다.
키워드에 대한 정보 변동성 돌파 전략 끝판 왕
다음은 Bing에서 변동성 돌파 전략 끝판 왕 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 53. 역대 최강의 트레이더의 가장 위대한 전략 – 변동성 돌파전략
- 투자
- 퀀트
- 계량투자
- 할 수 있다! 퀀트투자
- 변동성 돌파
- 래리 윌리엄스
- 미셸 윌리엄스
- systrader79
53. #역대 #최강의 #트레이더의 #가장 #위대한 #전략 #- #변동성 #돌파전략
YouTube에서 변동성 돌파 전략 끝판 왕 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 53. 역대 최강의 트레이더의 가장 위대한 전략 – 변동성 돌파전략 | 변동성 돌파 전략 끝판 왕, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.