Envelope 활용 전략

  • 추세 파악
    Envelope 보조지표를 이용해 주가의 상승 추세와 하락 추세를 파악합니다. 일반적으로 상승 추세에서는 주가가 중심선(이동평균선) 위에서 움직이며, 하락 추세에서는 주가가 중심선 아래에서 움직입니다.

  • 매수 포인트 결정
    상승 추세에서는 주가가 하한선에 접근할 때마다 매수 포인트를 결정할 수 있습니다. 이때, 주가가 하한선에 접근하면서 RSI 지표 등 다른 보조지표들과 함께 사용하여 과매도 구간에서 벗어날 때를 파악해 매수를 결정할 수 있습니다.

  • 매도 포인트 결정
    하락 추세에서는 주가가 상한선에 접근할 때마다 매도 포인트를 결정할 수 있습니다. 주가가 상한선에 접근하면서 RSI 지표 등 다른 보조지표들과 함께 사용하여 과매수 구간에서 벗어날 때를 파악해 매도를 결정할 수 있습니다.

  • 리스크 관리
    위와 같은 전략을 사용할 때, 항상 리스크를 고려해야 합니다. 이를 위해, Stop-loss 주문을 설정하거나 이전 저항선(Resistance) 등을 참고하여 매매 시점을 잘 결정해야 합니다.

위 전략은 단순한 예시일 뿐이며, Envelope 보조지표를 활용한 매매 전략은 거래자마다 다를 수 있습니다. 따라서, 자신에게 적합한 매매 전략을 찾기 위해 Envelope 보조지표와 다른 기술적 분석 지표를 함께 활용하면서 연습과 경험이 필요합니다.

Envelope 지표 활용 예제
Envelope 지표 예제

 

엔벨로프 Envelope 란?

엔벨로프 Envelope는 주가 이동평균선의 일종으로 20일 이동평균선을 기준으로 상한선, 하한선을 각각 3~5% 범위로 설정하는 것이 일반적입니다. 이렇게 그려진 밴드는 주가 차트의 상단과 하단을 각각 가로지르며, 주가가 이들 밴드 내에서 움직이면 과매수와 과매도 구간을 파악할 수 있게 됩니다. 이를 통해 동향을 파악하거나, 주가의 트렌드를 확인할 수 있습니다.

비슷한 지표로는 볼린저밴드(Bollinger Bands)가 있고 두 지표 모두 주가의 추세와 변동성을 파악하는 데 사용되는 지표이며, 비슷한 모양을 가지고 있기 때문에 종종 혼동될 수 있습니다. 그러나 두 지표 간에는 몇 가지 차이점이 있습니다.

가장 큰 차이점은 Envelope 지표는 이동평균선의 일정 비율만큼 이동시킨 상한선과 하한선으로 구성되며 볼린저밴드는 이동평균선 위아래로 일정 표준편차의 값으로 구성된다는 것입니다. 따라서, Envelope 지표는 상한선과 하한선이 수평적으로 유지될 가능성이 높지만, Bollinger Bands 지표는 주가의 변동성에 따라 밴드의 넓이가 조절되므로 상대적으로 유동성이 높습니다.

또한 Envelope 지표는 주로 추세를 파악하는 데 사용되며, 주가와 상한선 또는 하한선이 교차하는 시점을 중요한 신호로 여기는 반면, Bollinger Bands 지표는 상대적으로 가격 변동폭이 넓어졌다는 것을 나타내는 주가가 밴드를 돌파할 때를 중요한 신호로 판단합니다.

마지막으로 Envelope 지표는 기본적으로 이동평균선을 기반으로 하므로 특정 주기에 따른 지표의 변화가 미세할 수 있지만 Bollinger Bands 지표는 표준편차의 변화에 따라 밴드의 넓이가 조절되므로 상대적으로 주기에 민감하게 반응합니다.

Envelope 지표는 주가의 상승과 하락 추세를 파악하기 쉽고 상한선과 하한선을 이용해 과매수와 과매도 구간을 파악하기 용이하고 이동평균선을 기반으로 하기 때문에 시장의 노이즈에 비교적 강합니다. 다만 시장 변동성이 크면 지표가 불안정해질 수 있으며 단순한 추세 기반 지표이기 때문에 최적의 상한선과 하한선 설정이 어렵고 다른 지표와 같이 사용하는 것이 좋습니다.

 

Envelope 랑 비슷한 지표

  • Bollinger Bands
    Bollinger Bands는 Envelope과 비슷한 대칭성을 가지는 보조지표입니다. 이 보조지표는 이동평균선 주위에 상한선과 하한선을 추가하여 주가의 변동성을 파악합니다.

  • Keltner Channel
    Keltner Channel은 Envelope과 Bollinger Bands와 유사한 대칭성을 가지고 있지만, 이동평균선 대신 볼린저 밴드와 유사한 중심선을 사용합니다. 더불어, Bollinger Bands와 달리 주가의 변동성을 파악하는 데에 볼린저 밴드와는 다른 방법을 사용합니다.

  • Donchian Channel
    Donchian Channel은 가장 높은 고가와 가장 낮은 저가를 사용하여 상한선과 하한선을 만듭니다. 이 보조지표는 주가의 모멘텀을 파악하는 데에 유용합니다.

 


Envelope를 구하는 Python 함수

# Envelope 계산 함수
import pandas as pd

def calculate_envelope(df, ma_period=20, ma_type='simple', percent=0.025):
    """
    Calculates Envelope indicator.
    
    Args:
        df (pandas.DataFrame): The input OHLCV data.
        ma_period (int): The period of the moving average. Default is 20.
        ma_type (str): The type of moving average to use. 
            Can be one of 'simple', 'exponential', or 'weighted'. Default is 'simple'.
        percent (float): The percentage distance from the moving average for the upper and lower bands. Default is 2.5%.
    
    Returns:
        pandas.DataFrame: A DataFrame containing the Envelope indicator as well as the input data.
    """
    # Calculate the moving average
    if ma_type == 'simple':
        ma = df['close'].rolling(ma_period).mean()
    elif ma_type == 'exponential':
        ma = df['close'].ewm(span=ma_period, adjust=False).mean()
    elif ma_type == 'weighted':
        weights = list(range(1, ma_period+1))
        ma = df['close'].rolling(ma_period).apply(lambda prices: np.dot(prices, weights) / weights.sum(), raw=True)
    
    # Calculate the upper and lower bands
    upper_band = ma * (1 + percent)
    lower_band = ma * (1 - percent)
    
    # Combine the input data and the Envelope indicator
    df = pd.concat([df, upper_band, lower_band], axis=1)
    df.columns = ['open', 'high', 'low', 'close', 'volume', 'upper_band', 'lower_band']
    return df


# 함수 실행
import yfinance as yf

# Download AAPL data from Yahoo Finance
aapl = yf.download('AAPL', start='2022-01-01', end='2022-02-21')

# Calculate Envelope indicator with default parameters
aapl_envelope = calculate_envelope(aapl)

# Print the last 5 rows of the result
print(aapl_envelope)


# 실행 결과
                 open       high        low      close     volume  upper_band  lower_band
Date                                                                                        
2022-01-03  176.990005  179.320007  176.100006  179.179993  122322000  185.547584  165.812425
2022-01-04  177.720001  179.320007  176.580002  179.100006   90596400  185.687211  165.592790
2022-01-05  178.479996  180.520004  177.929993  180.399994   84193600  185.822448  165.461555
2022-01-06  177.720001  177.949997  174.779999  175.660004  103855600  185.330718  165.151296
2022-01-07  174.720001  176.889999  174.210007  176.770004   83345600  185.006441  165.368562
...               ...         ...         ...         ...        ...         ...         ...
2022-02-15  172.710007  175.210007  171.820007  174.229996   82746600  184.665464  164.308535
2022-02-16  174.350006  175.869995  173.050003  175.490005   61100700  184.636535  164.584468
2022-02-17  176.070007  176.479996  173.690002  174.149994   64464700  184.318205  164.951800
2022-02-18  174.130005  175.880005  173.199997  175.539993   70417400  184.404466  164.911537
2022-02-22  176.889999  180.830002  176.800003  180.339996   80117800  184.402332  165.197654

[34 rows x 7 columns]

+ Recent posts