본문 바로가기
투자/퍼플트레이딩

새로운 지표 개발하기 4 : 새로운 시장 온도계의 생성 (수식공개)

by 주식하는 개발자 퍼플 2023. 11. 13.

 

새로운 지표 개발하기 4 : 새로운 시장 온도계의 생성 (수식공개)

목차

     

    안녕하세요?
    주식하는 개발자 퍼플입니다.

     

    1. 공감하기

     

    공감하기

     

    지난 시간에 시장의 상태를 파악하기 위한 5가지 팩터를 살펴보았습니다.그 중, 정량화해서 차트 위에 바로 표현할 수 있는 거래량, 변동성, 모멘텀 세 개의 팩터를 0~100의 값을 갖도록 표준화하고 각각의 지표에 가중치를 두어 곱한 뒤 , 모두 더하면 새로운 시장 온도계 지표를 생성할 수 있습니다.

     

    새로운 시장 온도계의 가독성을 높이기 위해 50을 빼주면 이 값은 -50~50까지의 값을 갖게 됩니다.이 값을 통해 시장의 온도를 판단해보고, 이 지표의 특성이 차트 분석에 어떤 도움이 되는지 알아보도록 하겠습니다.

    2. 지표의 표준화

     

    1). 거래량의 표준화

     

    거래량의 표준화

     

    거래량 지표를 0에서 100까지의 값으로 표준화하는 과정은 다음과 같습니다.우선, 정해진 기간 동안의 거래량 목록을 선택한 뒤, 가장 높은 거래량과 가장 낮은 거래량을 찾습니다.

     

    표준화된 거래량은 현재 거래량에서 최소 거래량을 뺀 값을 최대 거래량에서 최소 거래량을 뺀 값으로 나눈 뒤 100을 곱해서 백분율로 나타냅니다. 즉, 0에서 100 사이로 정규화한 것입니다.

     

    이 방법을 사용하여 표준화된 거래량 지표를 생성하면, 가장 낮은 거래량에 대한 값은 0이 되고, 가장 높은 거래량에 대한 값은 100이 됩니다.

    2). 변동성의 표준화

    변동성의 표준화

     

    변동성을 표현하는 방법은 다양합니다. 주가의 표준편차를 이용하는 방법도 있고, ATR을 이용할 수도 있습니다. 오늘은 표준편차의 개념이 녹아든 볼린저 밴드의 밴드폭을 변동성 지표로 사용하겠습니다. 볼린저 밴드 폭을 표준화하는 과정은 다음과 같습니다.

     

    우선 볼린저 밴드 폭을 계산합니다. 그리고 정해진 기간 동안의 밴드폭 목록을 선택한 뒤, 가장 높은 밴드폭과 가장 낮은 밴드폭을 찾습니다.

     

    표준화된 밴드폭은 현재 밴드폭에서 최소 밴드폭을 뺀 값을 최대 밴드폭에서 최소 밴드폭을 뺀 값으로 나눈 뒤 100을 곱해서 백분율로 나타냅니다. 즉, 0에서 100 사이로 정규화 한 것입니다.

    3). 모멘텀의 표준화

     

    모멘텀의 표준화

    모멘텀 지표는 MFI를 사용할 것입니다. MFI는 0~100까지의 값을 갖는 한계지표로 이미 표준화된 지표입니다. 그래서 그 값을 그대로 사용합니다.

    4). 지표의 가중치

     

    지표의 가중치

    투자 전략과 주가 특성에 따라 가중치와 표준화 방법을 조정할 필요가 있습니다. 따라서 실제 투자에 활용하기 전에 충분한 백테스팅과 검증을 거쳐야 합니다. 또한, 투자 결정에 있어서는 추가적인 분석과 판단이 필요하며, 지표 자체로만 판단을 내리는 것은 피해야 합니다. 오늘은 가중치를 거래량 30%, 변동성 40%, 모멘텀 30%로 적용하기로 합니다.

    3. 지표의 생성

    1). 조건설정

    조건설정

    지표를 생성하기 위해 먼저 지표 조건을 정의합니다.가격은 주가의 형태를 정의하는 것으로 고가/저가/시가/종가를 비롯해 다양하게 설정 가능합니다. 오늘은 Typical Price를 의미하는 (고가+저가+종가)/3을 사용하도록 합니다.

     

    주가의 기간은 20이며, 볼린저 밴드 연산을 위한 표준편차 승수는 2입니다.모멘텀 지표로 사용할 MFI 기간은 10입니다.

    그리고 나머지 조건들은 가중치에 관한 조건들입니다. 이 가중치에 따라 지표의 모양이 조금씩 바뀔 수 있습니다.

    2). 수식 1

     

    수식 1

     

    //거래량 표준화
    minVol = Lowest (V,기간);
    maxVol = Highest (V,기간);
    sVolume =  ( V - minVol ) / ( maxVol - minVol ) * 100;
    
    //변동성 - 밴드폭 표준화
    tCBand = MA ( 가격, 기간, 단순 );
    tUpBand = tCBand + 승수 * stdev ( 가격, 기간 );
    tDnBand = tCBand - 승수 * stdev ( 가격, 기간 );
    bWidth = ( tUpBand - tDnBand ) / tCBand;
    minBWidth = Lowest ( bWidth, 기간 );
    maxBWidth = Highest ( bWidth, 기간 );
    sBWidth =  ( bWidth - minBWidth ) / ( maxBWidth - minBWidth ) * 100;
    
    //모멘텀 - MFI
    sMFI = MFI (mfi기간 );
    
    //新시장온도계
    newTmp = sVolume * 거래량가중치 + sBWidth * 변동성가중치 + sMFI * 모멘텀가중치 - 50;

    수식 1에는 새로운 시장 온도계를 계산하는 모든 수식이 포함되어 있습니다. 순서대로 차근차근 설명하도록 하겠습니다.

    거래량 표준화

    먼저 거래량의 표준화에 대해 설명하겠습니다. Lowest 함수를 통해 정해진 기간 동안의 거래량 최솟값을 구합니다.

    Highest 함수를 통해 정해진 기간 동안의 거래량  최댓값을 구합니다.현재의 거래량과 최소 거래량 그리고 최대 거래량을 이용해서 거래량을 표준화합니다.

     

    표준화 공식은 ( 거래량 - 최소거래량 ) / ( 최대거래량 - 최소거래량 ) * 100입니다.

    이 공식의 의미는 최소 거래량과 최대 거래량 사이에서 현재 거래량이 어느 위치에 있는지를 백분율로 나타낸다는 것입니다. 현재의 거래량이 최소 거래량과 같으면 0%가 되고, 현재의 거래량이 최대 거래량과 같으면 100%가 됩니다. 이 표준화 공식은 변동성 표준화에도 동일하게 사용됩니다.

    변동성 표준화

    가격의 단순이동평균을 계산하여 볼린저 밴드의 중심밴드를 구합니다. 잘 아시다시피 볼린저 밴드의 중심밴드는 단순이동평균입니다. stdev 함수를 활용하여 가격의 표준편차를 구합니다. 승수와 표준편차를 곱하여 중심밴드에 더하면 상단밴드를 계산할 수 있습니다.

     

    반대로 승수와 표준편차를 곱하여 중심밴드에서 빼면 하단밴드를 계산할 수 있습니다. 중심밴드와 상단밴드 그리고 하단밴드를 구했으니 밴드폭을 구할 수 있습니다. 밴드폭은 상단밴드에서 하단밴드를 뺀 값을 중심밴드로 나눠서 계산합니다.

    이제 거래량과 마찬가지로 정해진 기간 동안의 밴드폭 최솟값과 최댓값을 계산합니다.

     

    그리고 거래량에서 사용한 표준화 공식을 그대로 적용합니다.

    표준화 공식은 ( 밴드폭 - 최소밴드폭 ) / ( 최대밴드폭 - 최소밴드폭 ) * 100입니다.

    모멘텀 표준화

    모멘텀 지표는 MFI를 사용합니다. MFI는 0에서 100까지의 한계값을 갖는 상대지표입니다. 이미 표준화된 지표이므로 별도의 표준화 과정 없이 그대로 사용합니다.

     

    물론, MFI 역시 거래량과 변동성처럼 최솟값과 최댓값을 구한 뒤 표준화 공식에 대입해서 표준화할 수 있습니다. 이 부분은 여러분이 직접 해보시기를 권장합니다. 일관성을 위해서는 이 방법이 좋을 수도 있습니다.

    새로운 시장 온도계

    이제 표준화된 거래량과 변동성 그리고 MFI 지표에 각각 정의된 가중치를 곱해서 더하면 새로운 시장 온도계를 계산할 수 있습니다. 이렇게 계산된 새로운 시장 온도계는 0에서 100까지의 값을 갖게 되는데, 이 지표를 차트에 표시할 때 가독성을 높이기 위해 50을 빼줍니다. 그렇게 되면 새로운 시장 온도계의 값은 -50 ~ 50까지의 값을 갖게 됩니다.

    3). 수식 2-5

    수식 2~5

     

    수식2에서 수식5까지는 상수값을 입력합니다. 수식2에는 -40, 수식3에는 -20, 수식4에는 20, 그리고 수식5에는 40을 입력합니다.

     

    4). 라인/기준선 설정

    라인/기준선 설정

    시장 온도계는 막대로 표현하며 기준선은 0입니다. 나머지는 선으로 표현합니다. 선은 완성된 지표를 참고하여 설정하시면 됩니다.

     

    4. 지표의 완성 

    지표의 완성

    새로운 시장 온도계가 완성되었습니다. 이 지표는 다음과 같이 해석할 수 있습니다.

    • -40미만은 냉각이고,
    • -40이상에서 -20미만은 서늘입니다.
    • -20이상에서 0미만은 약한 온화이고,
    • 0이상에서 20미만은 강한 온화입니다.
    • 20이상에서 40미만은 열기이고,
    • 40이상은 과열입니다.

    새로운 시장 온도계는 다이버전스를 포착하는 용도로 사용할 수도 있습니다. 종합적인 분석이 선행되어 거래를 확정했다면, 서늘 이하 단계에서 분할 매수하고 열기 이상 단계에서 분할 매도하는 전략이 보편적인 활용 방법이 될 수 있습니다.

    지표의 논리적인 기반과 생성되는 원리를 이해하면 활용 방법은 저절로 얻어질 것입니다.

     

    언제나 강조하지만 지표는 만능이 아닙니다. 맹신해서는 절대 안됩니다.

     

     

    기능 제한 없이 완전 무료 공개합니다.✨

     

    퍼플의 프리모 : 균형복원 트레이딩 시스템 - 공개 다운로드

    안녕하세요? 주식하는 개발자 퍼플입니다. 균형복원 트레이딩 시스템 퍼플의 프리모 다운로드 및 커뮤니티를 안내해드립니다. 1. 균형복원 트레이딩 시스템 - 퍼플의 프리모 📈.키움증권 계좌

    joannesoft.tistory.com

     

    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오툭 공유하기
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기

    댓글