MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가

마지막 업데이트: 2022년 5월 8일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

이동평균 오실레이터

이전에 포스팅한 5. Pandas를 이용한 Naver금융에서 주식데이터 가져오기는 Naver금융에서 주식데이터를 MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 수집하는 방법에 대해 알아보았다.
이번 포스팅에서는 수집한 주식 데이터를 가지고 주식 분석에서 필수 보조 지표라고 할 수 있는 MACD 를 Python의 pandas 모듈을 이용하여 구현해 보도록 한다.

1. MACD 란?

MACD 는 Moving Average Convergence Divergence의 약어로써, 이동평균선(MA)이 수렴과 발산을 반복한다 는 원리를 이용해 단기이동평균선(12)과 장기이동평균선(26) 사이의 관계를 보여주는 Gerald Appel 이 개발한 지표다. MACD에서 단기이동평균 으로는 12일 , 장기이동평균 으로는 26일 을 사용하고, MACD의 9일 이동평균선 을 Signal 이라고 하고, MACD와 Signal의 차이를 Oscillator 라고한다.

  • MACD : 단기이동평균(12)와 장기이동평균선(26)의 차이값
    • 보통 주식HTS에서는 이값을 파라미터 값으로써 조정할 수 있게 되어있다. 우리나라 주식시장에 맞는 5일과 20일 로 대체해서 사용하기도 한다.
    • 일반적으로 9일을 설정하여 MACD의 값들을 완충 및 일반화 하는 역할을 한다.
    • MACD의 값이 Signal값보다 클때는 양의 막대, 작을 때는 음의 막대가 그려진다.

    1) MACD 공식

    • MACD : MACD = < EMA >_ < 12 >- < EMA >_ < 26 >M A C D = E M A ​ 1 2 ​ ​ − E M A ​ 2 6 ​ ​ ( < EMA >_ < n >E M A ​ n ​ ​ : n n 일간의 지수이동평균선)
    • Signal : Signal=\frac < \sum _< t=1 >^< n >< < MACD >_ < t >> >< n >S i g n a l = ​ n ​ ​ ∑ ​ t = 1 ​ n ​ ​ M A C D ​ t ​ ​ ​ ​ (일반적으로 n=9 n = 9 로 설정)
    • Oscillator : Oscillator=MACD-Signal O s c i l l a t o r = M A C D − S MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 i g n a l

    2) MACD를 이용한 주식분석 - 참고 : 앤트하우스

    2. pandas 를 이용해 MACD 구현하기

    위의 내용에서 MACD가 무엇이며 어떻게 활용하는지에 대해 알아보았다. 이제 부터는 MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 python 의 pandas 모듈을 이용하여 MACD를 직접 구현해 보도록 한다.

    1) pandas.read_html() 을 이용해 krx에서 종목코드 가져오기

    네이버금융에서 원하는 종목의 주식데이터를 가져오기 위해 먼저 코스피(KOSPI)과 코스닥(KOSDAQ)의 종목코드가 필요하다. 한국거래소(krx)에서는 주식시장에 상장된 기업들에 대해 종목코드 를 제공한다. pandas 모듈의 pandas.read_html() 을 이용해 종목코드를 가져올 수 있다. pandas.read_html()은 HTML에서 태그를 찾아 자동으로 DataFrame 형식으로 만들어준다. 아래의 소스코드를 통해 주식의 종목코드를 가져올 수 있다.

    head() 함수를 통해 상위 5개의 코드를 확인할 수 있다.

    N0.namecode
    0BYC001460
    1CJCGV
    2CJ씨푸드011150
    3DSR제강069730
    4KB금융105560

    2) Naver금융에서 일자별 주식데이터 가져오기

    이제 네이버금융에서 원하는 종목의 일자 데이터를 가져와 보도록 하자. 여기서는 신라젠(215600) 의 일자 데이터를 가져온다. 아래의 소스코드는 특정 종목뿐만 아니라 사용자가 원하는 종목의 일자데이터를 가져올 수 있도록 get_url 이라는 함수를 만들어 줬다. Naver금융에서 주식데이터를 가져오는 방법에 대해 자세히 알고 MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 싶다면 5. Pandas를 이용한 Naver금융에서 주식데이터 가져오기를 참고하면 된다.

    아래의 소스코드는 추후에 데이터 분석에서 편하게 하기위해 추가적으로 처리해 준 코드이다.

    3) MACD 지표 구현하기

    MACD를 구현하기 위해 필요한 데이터들을 수집하였으면, 이제 MACD를 구현해보도록 한다. 아래의 소스코드는 MACD를 get_macd() 라는 함수로 구현하였다.
    입력값으로 DataFrame, 단기(short=12), 장기(long=26), Signal을 구할때 사용할 일자(t=9)를 입력값으로 받으며, MACD 지표들이 추가된 DataFrame 을 리턴(return)해준다.

    위의 코드에서 구현한 get_macd() 를 이용해 아래의 코드를 입력하면 DataFrame 에 macd의 MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 지표 macd, macds, macdo 가 포함되어 있는것을 확인할 수 있다.

    3. plotly 를 이용해 MACD 차트 그리기

    마지막으로 plotly 를 이용하여 MACD 차트를 그려보도록 한다. plotly 에 대한 설명은 이전 포스팅인 4. Plotly를 이용한 캔들차트-Candlestick chart 그리기를 참고하면 된다.
    아래의 소스코드를 통해 MACD 차트를 그릴 수 있다.

    이동평균 오실레이터

    히포차트 키움증권 C# API 솔루션에 MACD 보조 지표가 추가되었습니다.

    그림에서 상단 보조지표 라인을 MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 자세히 보시면 이평선과 MACD, 볼린저밴드 등의 체크박스가 보이는데요, 다른 체크박스는 체크 헤제되있고 MACD MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 가 체크되어 있습니다.

    빨간색 - Sigmal

    으로 별도로 그리지 않고 주가 차트랑 함께 그려보았습니다.

    *MACD 공식 계산하는 방법

    MACD = 12일 이동평균선 - 26일 이동평균선

    signal = MACD 의 9일 이동평균선

    오실레이터 = 두 값의 차이 (교차하는 0 지점이 중요)

    아래 네이버 지식도 함께 참고하시고요,

    이동평균수렴·확산지수. 기간이 다른 이동평균선 사이의 관계에서 추세변화의 신호를 찾으려는 진동자 지표다. 이동평균선은 주가의 단기변동 때문에 나타나는 불규칙성을 제거하기 위해서 만드는데 MACD 는 이러한 이동평균선을 이용해 매매신호를 찾으려 한다. 단순이동평균선은 추세전환 신호가 늦게 나타난다는 단점이 있기 때문에 이를 해결하기 위해서 MACD 에서는 지수이동평균을 사용한다. MACD 는 추세전환 시점을 찾는 것보다는 추세 방향과 주가 움직임을 분석하는데 좋은 지표로 알려져 있다.

    [네이버 지식백과] MACD (매일경제, 매경닷컴)

    투자에 많이 이용하는 지표로 알고 있는데요, 히포차트 키움증권 솔루션을 통해 직접 적용을 시켜 자동매매프로그램을 제작하실 수도 있고, 매매 타이밍때 알람을 받을 수도 있게 개발할 수 있습니다.

    카페를 통해 더욱 자세히 알아보세요 ~

    히포차트 | 하영대 | 경기도 성남시 수정구 복정동 631-5 401 | 사업자 등록번호 : 경기도 성남시 수정구 복정동 631-5 401-34-55719 | TEL : 031-751-6673 | Mail : MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 [email protected] | 통신판매신고번호 : 제 2010-경기성남-1203호 | 사이버몰의 이용약관 바로가기

    젠포트 [MACD Oscillator를 통한 매수]

    이동평균수렴·확산지수. 기간이 다른 이동평균선 사이의 관계에서 추세변화의 신호를 찾으려는 진동자 지표다. 이동평균선은 주가의 단기변동 때문에 나타나는 불규칙성을 제거하기 위해서 만드는데 MACD는 이러한 이동평균선을 이용해 매매신호를 찾으려 한다.
    단순이동평균선은 추세전환 신호가 늦게 나타난다는 단점이 있기 때문에 이를 해결하기 위해서 MACD에서는 지수이동평균을 사용한다. MACD는 추세전환 시점을 찾는 것보다는 추세 방향과 주가 움직임을 분석하는데 좋은 지표로 알려져 있다.
    출처: [네이버 지식백과] MACD (매일경제, 매경닷컴)

    MACD는 26일간의 지수평균과 12일간의 지수평균의
    차이를 산출한 곡선이고,
    이 두 지수 평균의 차이를 다시 9일간의 지수평균으로
    산출한 것이 MACD Signal 곡선이다.

    '슬기로운 주식생활' 채널(Ch+)을 추가하시면 주식, 코인, 경제뉴스, 시황 뿐아니라 여러분의 투자에 도움을 드리는 관심종목까지 매일 한번에 체크!!

    보통 MACD 곡선이 MACD Signal 곡선을
    상향 돌파하면 매수시점,
    하향 돌파하면 매도시점 으로 판단한다.

    두 번째 MACD Oscillator는
    MACD값에서 MACD Signal값을 뺀 수치를 막대그래프로 그려낸 진동이다.

    이 또한 복잡하게 생각치 말고

    MACD Oscillator 그래프의 값이
    0을 상향 돌파하면 매수시점,
    0을 하향 돌파하면 매도시점 으로 본다.

    그럼 MACD Oscillator 값이 0을 돌파할 때 매수하기 위한 조건식은 어떻게 할까?

    [ MACD 오실레이터가 0값 상향돌파 시 매수 ]

    not(before(A,1)) and A

    [전전일에는 0값 이하였으나 전일 상향돌파]

    MACD, 젠포트, 주식자동매매, 퀀트 투자, 젠포트 우선순위, 젠포트 조건, 젠포트 전략

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


    이렇게 만들면 된다.
    단기매매에 큰 도움이 되는 조건식이다.
    1일, 5일, 10일보유 포트의 단기전략이라면 꼭 넣어볼만 하다.
    [20일 이상의 포트에서도 결과가 괜찮다.]

    여기에 다른 조건들을 섞어준다면
    더 좋은 매수조건을 만들 수 있다.

    참고하셔서 매수 조건을 만들어보시길. ^^

    젠포트에서 '나도 이제 알고리즘 메이커 (MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 제 15회 : 기술지표 MACD)' 유튜브 영상도 참고해보자.

    이 포스팅이 도움이 되셨다면
    구독, 공감(하트), 댓글 부탁드립니다.^^

    정배열 조건[상승추세]이 궁금하세요?

    젠포트에서 정배열을 찾으려면?

    정배열 주가가 정배열로 전환됐다는 것은 장기 이동평균선(120일)이 제일 밑에 위치하고 중기 이동평균선(60일)이 중앙에, 단기 이동평균선(20일)이 제일 위에 위치한 상태를 말한다. 또한, 상승

    이동평균 오실레이터

    [주식용어사전]거래량지표[volume oscillator, 去來量指標]

    요약하자면 주식용어로 주식거래량을 지표화한 것이라고 말할 수 있겠다.

    증권시장의 장세를 판단하기 위하여 거래량을 지표화한 것이다. 거래량이 주가 에 선행하므로 매매시점을 판단하는 데에 중요한 지표가 되는데, 마치 주파수처럼 표시할 수 있으므로 영문으로는 volume oscillator (발진기)로 표기한다. 거래량이동평균( volume moving average )과 OBV ( on balance volume )· VR ( volume ratio )·거래량회전율( turnover ratio ) 등 다양한 지표가 있다.


    거래량이동평균은 주가 가 오르고 있을 때는 매입수요가 증가하여 거래량이 늘어나는 경향이 있고 주가 가 내려갈 때에는 거래량이 감소하는 경향이 있다고 보는 것으로, 단기지표는 6일, 중기지표는 25일, 장기지표는 75일 이동평균선이 쓰인다.

    OBV 는 일정한 기간동안 주가 가 상승한 날의 거래량 누계에서 하락한 날의 거래량 누계를 차감해서 산출하는 지표이다. 주식 시장이 매집상태인지 분산상태인지를 알아보는 데에 유용하며, 특히 주가 가 정체양상을 보일 때 시장변화를 예측하기 위하여 많이 사용된다.

    VR 은 주가 가 상승한 날의 거래량 누계를 하락한 날의 거래량 누계로 나누어 산출하는 지표로, VR 100%라면 주가 가 오른 날의 거래량과 내린 날의 거래량이 같음을 뜻한다. 150% 정도면 보통 수준으로 보고 450% 이상이면 과열, MACD 시그널(signal)지표 추세 이동평균선 오실레이터 관련 추가 70% 이하면 침체로 해석한다. 천정권보다는 바닥권에서 유리한 지표이다.

    거래량회전율은 주식 시장에서 상장 주식 수가 일정한 기간 동안 몇 차례 회전하는가를 나타낸 것이다. 일정기간 누적된 거래량을 평균상장 주식 수로 나눈 뒤 100을 곱하여 산출한다. 따라서 상장 주식 수가 일정기간에 1회전 매매되면 100%가 된다. 보통 100% 이상이면 과열시장, 20% 이하이면 침체시장으로 본다. 이밖에도 클라이맥스지표·변환지표 등 다양한 지표가 있으며, 거래성립률과 같은 비율도 지표로 활용된다.

    [주식용어사전]거래량지표[volume oscillator, 去來量指標] 주식용어정리 증권용어사전 주식용어사전 초보주식용어 주식은어 금융용어 주식용어100 주식원리 재테크 국제금융용어 면접금융용어 금융용어정리


0 개 댓글

답장을 남겨주세요