빙구처럼 트레이딩: 코인 차트 "처음부터" 공부하기 #17- 간단한 보조지표 만들기 (RSI)

in sct •  2 years ago  (Edited)


과매수, 과매도 잡아주는 아름답다면 아름다운 보조지표를 알아볼 것 입니다. 물론 당연하게도 코딩으로 진행할 것이며, 지금까지 배운 모~~든 내용을 활용하니깐 (제 모든 포스팅은 앞의 내용을 활용합니다!) 복습 복습 !!

들어가며, RSI 는 사실 스토케스틱, MACD, 볼린저 벤드 이렇게 네 가지 정도 많이 알려진 지표 들이죠. 하지만 보조지표라는게 정말 많습니다. 자신이 원하는 스타일의 상황에 맞춰서 사용할 수 있는 보조지표는 왠만하면 다 나와있어요. 비추세인데 작은 파동이 좋다, 추세 파동이 좋다 등등. 즉, 직접 많은 보조지표들을 접해보셔야 나한테 뭐가 맞는지, 뭐가 맞지 않는지 알 수 있답니다. 만약 그럼에도 불구하고, 맞는 지표를 찾지 못하신다면, 만드셔도 좋구요! 앞 포스팅에서도 보셨다시피, 만드는게 그리 어렵진 않답니다!


RSI

단순하게 이런 보조지표 입니다. 주황색 선을 보시고, 이 주황색 선이 아래로, 일정 수치 밑으로 내려가면 과매도를 뜻하고, 일정 수치 위로 올라가면 과매수를 뜻하죠. 보통 이런 일정 수치들을 25, 75 등으로 활용합니다.

source: https://www.investopedia.com/terms/r/rsi.asp

계산은 얼마나 올랐니~ 얼마나 내렸니~를 서로 나눠주고 1을 더해준 다음 역수를 취해준 것을 100으로 곱해주고 100에서 빼준 것 입니다.

분모의 분모에 <얼마나 내렸니~> 항이 있어 커질 수록 숫자가 커지고, <얼마나 올랐니~> 항이 분모의 분자에 있어 커질 수록 숫자가 작아지게 되며, 이걸 다시 100 에서 빼주니깐 <얼마나 내렸니~> 가 커지면 숫자가 0으로 가고, <얼마나 올랐니~> 가 커지면 숫자가 100에 수렴하게 되는 구조죠.

이걸 기본값은 과거 14일 만큼 얼마나 올랐니, 내렸니를 측정하니깐. 결론적으로 14일동안 얼마나 올랐나, 내렸나 를 평균적으로 알려주는 툴 입니다. 즉, 과매수, 과매도 라는 언어는 사실 잘못 된 것이죠. 상대적으로 14 라는 주기 안에 올랐는지 내렸는지, 한국어 번역되어 있는 상대 강도 지수, Relative Strength 이게 오히려 맞는 언어가 되겠습니다. 절대 과매도/과매수 라고 이해는 안하는게 좋은 것 같습니다.


트레이딩뷰에 넣기

당연하게도, RSI 하나만 소개하러 온건 아닐테고~ 이걸 트레이딩뷰에 좀 더 직관적으로 볼 수 있도록 만들어 보겠습니다.

새로운 스크립트를 열어주시구요,

https://www.tradingview.com/pine-script-reference/

로 들어가 RSI 를 검색해줍니다.

감사하게도 RSI 라는툴이 이미 만들어져 있습니다. 나중에 전략을 직접 만들어볼 때는 밑에 있는

pine_rsi
코드를 이용하여 커스터마이징을 한 층 더 할 수 있어 보입니다.

이제 변수를 하나 만들어줍니다. RSI 가 매수에 대한 시그널을 주는 25 이하의 수치를 가질때, rsibuy 라는 변수를 줍니다.

rsibuy = rsi(close,14) < 25

말로 풀어보자면 종가로 만들어진 14 주기의 RSI 가 25 이하면 rsibuy 상황이 true 가 된다.

그럼 true 가 됬을때 우리 눈에 보여야 하니깐, 백그라운드에 칠해줍니다.

bgcolor(color = rsibuy ? purple : na)

만약 rsibuy 상황이 true 이면, 바탕화면에 보라색을 칠해라! 즉, 바탕화면에 보라색이 나오면 사라는 시그널!

그리고 차트에 적용시켜 봅시다.

not bad

Very bad

추세가 터질 때에는 낫배드 했는데, 추세가 하방 또는 비추세 구간일때는 역시 베드 입니다. 그리고 상승 추세일 때는 너무 시그널이 안뜨는 듯 하군요.

매수 시그널에 해당하는 25 이하에 표시를 35 이하에 표시로 바꿔보겠습니다.

rsibuy = rsi(close,14) < 35

그리고 저번 포스팅에서 배운 이동평균선의 진입 기준을 적용시켜, 상승 추세일 경우에만 매수 시그널 발생하게 해봅시다.

MA5 = sma(close,50)
plot(MA5, color=purple, linewidth=1 )
up = close > MA5
ascending = MA5 > MA5[1]
goingup = up and ascending
bgcolor(color = goingup ? blue : na)

상승 추세에 해당했던 코드 입니다. 추가 해봅시다.

상승 추세에 파란색/매수 시그널에 보라색 배경

으... 차트가 어질어질 합니다 정리해줍시다. 우린 "상승 추세" 에서 RSI 가 35 이하인 구간만 표기해주면 되니깐요!

goingup = up and ascending and rsibuy

goingup 이라는 변수에 rsibuy 를 추가해줍니다. 50 이동평균선이 상승하고 있고, 가격이 이동평균선 위에 있고, RSI 가 35 이하일때만 표시해주는 것 입니다.

그랬더니, 아예 잡질 않네요. 제가 원하는 것은

이런 구간을 잡는 것이니깐요~ RSI 주기를 조절해줘봅시다.

rsibuy = rsi(close,7) < 35

반으로 줄어봤습니다.

오호~ 꽤나 의미있는 진입을 몇개 주는 군요.

아까전에 하락 추세에 발생했던 시그널은 추세에 대한 보정으로 필터링이 되었군요.

좀더 작은 파동에 대하여 매수를 받고 싶다면, rsi 를 5 까지 줄이는 것도 좋습니다. 제가 개인적으로 사용하는 방법이기도 하구요.

지금까지 코드는 요렇코롬


기본적인 RSI 와 이동평균선을 활용하여 매수 시그널을 주는 보조지표를 만들어 보셨습니다! 하지만 역시 이걸로 매매를 하기에는 부족합니다. 그리고 15개의 포스팅에 걸쳐 소개해드린 파동론과 아직 연결도 되지 않았습니다. 만약 맛보기로 보조지표와 파동을 합친 전략을 만드신다면,

  1. 상승 추세가 나타난다. => 파동론 = 주관적
  2. 보조지표의 시그널을 기다린다. => 보조지표 = 객관적

이런식의 조합이 가능해집니다. 물론 어떤 상승 추세를 원하는지에 따라는 달리지며, 어떤 보조지표의 시그널을 기다리는지에 따라 달라지겠죠. 하지만 확실한 것은

이런 횡보 구간에서 매매하는 것을 방지하실 수 있습니다.


바로 활용의 예시로는 이러한 것들을 사용해보실 수 있죠~

상승 추세가 일어나고, 바로 다음에 나타나는 매수 시그널에 매수! 제가 강의해드리는 모든 지표들은 종가 기준으로 (양자화?!) 되어 있기 때문에 미래에 데이터가 바뀌지 않습니다. 즉, 5분뒤 시그널이 발생한다면, 평생 박제되는 것이라는 거죠.


완벽한 보조지표는 이 세상에 없다고 생각합니다. 이거보다 조금 더 좋은 보조지표 또는 내가 테스팅한 범위에서만 좋은 보조지표와 같은 것은 있어도 해당 전략을 꾸준히 시행할 수 있느냐 라는 부분이 월등히 중요해보입니다. 이제 약간 더 아이디어를 추가하여 발전시켜 보겠습니다!

현재 아이디어는 이렇습니다. 가격이 상승 추세일 경우 조정을 상대적으로 많이 주면 진입을 해라! 하지만 문제는 조정인지, 아닌지 구분하기가 어렵습니다. 그래서 한 가지 필터링 장치를 해줍니다.

상승 추세이고, 조정을 많이 준 음봉 캔들이고, 다음 캔들이 양봉이면 진입해라!

아이디어를 그림으로 표현해보자면, 이렇겠죠!

코드로 옮겨봤습니다.

goingup = up[1] and ascending[1] and rsibuy[1] and close > open

즉, up, ascending, rsibuy 라는 조건이 1개 이전 캔들에서 충족하고, 종가가 시가보다 클 경우 진입해라! 라는 뜻 입니다. 가격이 상승하려면 어느순간 과한 조정이 와야하고, 과한 조정에서 추가 상승을 하려면 양봉이 한 번은 떠야 함으로, 그러한 가격 상승의 당연한 조건을 활용하여 만들어 보는 것이죠.

study("Awesome SteemCoinPan #2", overlay=true)
rsibuy = rsi(close,5) < 35
MA5 = sma(close,50)
plot(MA5, color=purple, linewidth=1 )
up = close > MA5
ascending = MA5 > MA5[1]
goingup = up[1] and ascending[1] and rsibuy[1] and close > open
bgcolor(color = goingup ? blue : na)


트레이딩에서 코딩이란 자신의 머릿속에 구상하고 있는 그림을 어떻게 가시화 할 수 있을까 를 목적으로 하는 것 같습니다. 보통 트레이딩을 처음 접하는 분들을 여러가지 보조지표들을 짬뽕시켜 한 개의 좋은 시그널을 만들려 하시지만, 반대로 전략이 이미 머릿속에 있고, 그것을 수식으로 표현하는 것이 필수적으로 보입니다. 자신이 세운 규칙에 기반하여 가격의 움직임의 본질이 정해지지 않으면, 코딩은 무쓸모 라는 것이죠~


몇 일 쉬고 돌아왔습니다! 오늘도 열심히 봐주셔서 감사합니다!

질문, 댓글, 팔로우는 감사합니다!

새로운 아이디어, 종목 추천 등은 언제나 환영입니다!


Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

우와 정말 멋진 글입니다 그동안 폭풍 성장하셨군요!

허머나 세상에 스님이라요! 스님이다아!!!! 보고 시펐습니다아아!!! ;) 감사합니다! 아직 스님이 비하면 베이비.... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

전 마진 할 땐 ADX 변조(?) + 응용해서 쓰고 있는데 정말 괜찮은거 같아요. 이것도 한번 연구해주세요~

하걱 보조지펴 끝판왕 adx!!! 조만간 꼭 다루겠습니다 ~ :)

Posted using Partiko iOS

현기증 나요 빨리 다뤄주세요. 이번편처럼 응용하면 어떻게 할건지 궁금합니다 : )

하핳 예전에 원유 선물 단기 트레이딩 연구하며 자세히 들여다 봤었는데, 변수나 식 자체가 상당히 복잡하게 되어 있어서 다룰게 많긴 하겠더라구요! DMI (DI +, -) 도 포함 시키면 되는거죠? ㅎㅎ 늦어도 담주 안으로 준비해보도록 하겠습니다 +.+

정말 많이 공부하고 성장한게 느껴지내요. DI는 얘기도 안했는데

저도 투자를 시작하면서 제일 처음 배운 보조지표 RSI를 보며 트레이딩을 했었는데요...

하지만 항상 마음이 지표와는 다른 방향으로 흐르더라는... ㅠㅠ

그래서 제가 돈을 못 버나 봅니다... ㅠㅠ

앗아... 하핫.. 헤헤.... 헬로님이랑 RSI 가 안맞는 지표일 수도 있습니다!!! 마음에 쏙 맞는 지표를 찾으실 수 있을 때 까지 연재하겠습니다~ ㅋㅋㅋㅋㅋㅋ 저도 저한테 맞는 친구 (현재 keltner채널) 를 찾을 때까지 수십~수백까지 정도 알아봤는데, 그 중 맘에 맞는게 한개쯤을 있더라구요! 홧팅입니다!

아이디어를 코드로 적고 검증하는 과정이 뭔가
개발자님들 느낌도 나고 암튼 멋지네요~앞으로도 화이팅입니다! ^^

앗 개발자님이라뇨 너무 초보적이라 ㅎㅎㅎ 황송하옵니다!! (내심 기분 좋은 +.+ )
연님도 홧팅입니다~