지표를 활용한 트레이딩

마지막 업데이트: 2022년 4월 10일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
RSI지표로 시스템트레이딩 구현하기, 로직1

[주식투자] 보조지표 RSI를 활용한 전략 백테스트 해보기

오늘은 보조지표를 활용한 매매전략의 백테스트를 해보려고 합니다. 사용할 보조지표는 바로 Relative Strength Index(RSI) 지표입니다. RSI 지표는 주식투자를 하시는 분들이라면 아마도 한 번쯤은 들어보셨을 거라고 생각하는데요, 이 보조지표를 활용한 매매전략 역시 상당히 잘 알려져 있습니다. 그러면 백테스트를 통해 이 전략이 정말로 수익을 만들어내는지 한번 확인해보도록 하겠습니다.

먼저 RSI의 계산은 다음과 같이 이루어지게 됩니다. 평균은 14일 평균을 사용하였습니다.

RSI = AU / (AU + AD)

AU = 지표를 활용한 트레이딩 지표를 활용한 트레이딩 14일간의 상승 평균, (상승이 없으면 0)

AD = 14일간의 하락 평균, (하락이 없으면 0)

RSI 전략의 매매신호는 다음과 같습니다.

매도 : RSI > 70 종가 매도

그럼 바로 코스피 200 ETF를 대상으로 RSI 전략의 백테스트 결과를 볼까요?

RSI14 buy < 30 sell >70, TPI 1.38

약 18년 동안 약 2배에 가까운 수익률을 올렸습니다.(수수료 + 슬리피지로 0.1%를 주었습니다.) 그렇다면 매매 성능지수는 얼마나 나오는지 한 번 볼까요?

RSI 전략의 승률은 약 71.4%가 나와버렸습니다. 거래 횟수가 18년 동안 21번밖에 안되지만 이 수치는 꽤 괜찮은 수치입니다. 그럼 손익비는 얼마가 나왔을까요? 손익비는 0.94정도의 값이 나왔는데 승률이 70%가 넘는것을 생각하면 그리 나쁘지 않은 값입니다. 이렇게 나온 승률과 손익비로 계산된 TPI는 1.38입니다. 1.38은 꽤나 괜찮은 수치인데요. 자 여기서 우리는 또다시 이 전략을 검증해봐야 합니다. 이 전략은 18년동안 겨우 21번밖에 거래하지 않는 꽤나 심심한 전략입니다. 앞선 포스트에서 말했듯이 이렇게 적은 거래량으로는 이 전략이 탄탄한지 판단하기가 쉽지 않습니다. 그러면 한번 평균일 수를 조정해볼까요? 한번 평균치를 10일로 바꿔봤습니다.

RSI10 buy < 30 sell >70, TPI 0.91

어떤가요? 전략이 무너져 버렸습니다. 아무래도 전략에 문제가 좀 있는 것 같죠? 그럼 18일 평균은 어떨까요?

RSI18 buy < 30 sell >70, TPI 1.4

RSI를 18일 기준으로 잡았을 때는 오히려 다시 전략이 살아나는 모습이지만 오히려 거래 횟수는 더 줄어들었습니다. 제 기준에서 이런 전략을 실전에 투입하기란 쉬운 일이 아닙니다. 기대수익도 문제지만 평균 일이 바뀌면서 전략이 손실 보는 전략으로 바뀌기도 하고 수익을 보는 전략으로 바뀌기도 한다는 건 전략의 탄탄함에 의구심이 들게 합니다. 어떤가요? 답은 없습니다. 제가 미쳐 지표를 활용한 트레이딩 알지 못하는 다른 방법으로 어떤 사람은 RSI 지표를 바탕으로 시장에서 알파를 얻고 있을지도 모를 일입니다. 이 글을 읽는 여러분들도 한번 백테스트를 통해 알파를 찾아보는 건 어떨까요?

지표를 활용한 트레이딩

2018. 11. 18. 23:00

    본문 폰트 크기 조정 본문 폰트 크기 작게 보기 본문 폰트 크기 크게 보기 가

안녕하세요 오늘은 트레이딩 전략에 대한 글입니다^^ 비트코인캐시 관련해서 그 여파가 우리 스팀에게 또 힘겨운 시간을 안겨주네요 제가 스팀을 알게 된 이후에 가장 낮은 가격대를 보는 거 같습니다 정말 무수히 많은 코인들이 현재 유통되고 있는데요 이 가운데 스팀은 무려 41위 에 랭크되어 있습니다 상당히 높은 순위라고 생각합니다 스팀의 가치가 아직까지 인정을 받고 있다는 증거겠죠? 좋은 주말 보내세요^^

The percentage of stocks above the 50-day SMA is a breadth indicator that measures the degree of participation in an index, the S&P 500 in this case. This article will show two methods to use this indicator as part of a trading strategy. First, a long-term moving average can be applied to identify the general tone of the market, which is either bullish or bearish. Second, a short-term moving average can be used to identify pullbacks and bounces. Putting these two together, chartists can look for pullbacks when the general tone is bullish and bounces when the general tone is bearish. The idea is to participate in the bigger trend with a better risk-reward ratio

The % of stocks above
the 50-day SMA

50일 SMA 위의 주식 비율은 지수, 이 경우에는 S&P 500의 참여의 정도를 측정하는 광범한 지표이다 이 글에서는 트레이딩 전략의 일환으로서 이 지표를 이용한 두 가지 기술을 다룬다 첫째, 장기 이동 평균은 시장의 일반적인 기조(tone)를 확인하는 데 적용될 수 있으며, 강세(bullish) 또는 약세(bearish)이다 둘째, 단기 이동 평균은 되돌림(pullbacks) 또는 반등(bounces)을 확인하는 데 활용된다 이 둘을 가지고, 차티스트는 일반적인 기조가 강세일 때 되돌림을 그리고 일반적인 기조가 약세일 때 반등을 찾을 수 있다 이 아이디어는 더 좋은 위험보상 비율로 더 큰 추세에 진입하기 위한 것이다

Strategy

As the chart below shows, the raw data for this indicator can be quite volatile with frequent crosses above/below the 50% line. In general, the bulls have the trading edge when the indicator is above 50% and the bears have the edge when the below 50%

전략

아래 차트에서처럼, 이 지표의 경우 로우 데이터는 50% 선 위/아래의 빈번한 교차로 변동성이 매우 클 수가 있다 일반적으로, 강세(bulls)는 지표가 50% 이상일 때 트레이딩 우위(edge)를 가지고 약세(bears)는 50% 이하일 때 우위를 가진다

The raw data is too choppy for an effective system. Therefore, chartists can use moving averages to smooth the data and reduce volatility. A long moving average can be used to set the overall tone, bullish or bearish. A short moving average can then be used to identify overbought or oversold levels. There are three steps to developing this system with two moving averages

로우 데이터는 효과적인 시스템을 위해서는 너무 변동성이 심하다 따라서, 차티스트는 데이터를 평활화하고 변동성을 줄이기 위해서 이동 평균(moving averages)을 활용한다 장기 이동 평균은 전체적인 기조, 강세 또는 약세를 설정하는 데 사용된다 그리고 단기 이동 평균은 과매수 또는 과매도 수준을 확인하는 데 사용된다 두 가지 이동 평균을 가지고 이 시스템을 발전시키기 위한 세 가지 단계가 있다

1. Define the market tone with a long-term moving average

Smoothing the indicator with a 150-day EMA will greatly reduce volatility and allow chartists to establish a general tone for the S&P 500. Even though a move above 50% is technically bullish and a move below 50% bearish, whipsaws can be reduced by using buffers for bullish and bearish thresholds. Therefore, a move above 52.5% is deemed bullish until countered with a move below 47.5%. Conversely, 지표를 활용한 트레이딩 a move below 47.5% is deemed bearish until countered with a move above 52.5%

1. 장기간 이동 평균으로 시장 경향 정의하기

150일 EMA(지수이동평균)로 지표를 평활화하면 변동성을 크게 줄이게 되고 차티스트는 S&P 500을 위한 일반적인 경향을 규정할 수 있다 50% 이상 상승은 기술적으로 강세이며 50% 이하 하락은 약세이지만, 강세와 약세의 입구에 완충 구간(buffer zone)을 이용하면 휩소(whipsaws)를 줄일 수 있다 따라서, 52.5% 이상 상승하면 반대로 47.5% 이하로 하락할 때까지는 강세로 간주된다

2. Use a short-term indicator to identify pullbacks or bounces

While the raw indicator can be used, applying a short 5-day EMA provides a little smoothing without sacrificing too much sensitivity. Chartists then need to set the levels to identify pullbacks and bounces. Setting these levels too high or low will result in too few signals, while setting these levels too much in the middle will result in too many signals. A golden middle is needed. This example uses 40 and 60. A move below 40 signals a pullback, while a move above 60 signals a bounce

2. 되돌림 또는 반등 확인을 위한 단기 지표의 활용

로우 지표(raw indicator)를 사용할 수도 있지만, 5일 EMA를 적용하면 민감도를 너무 많이 희생하지 않고도 약간의 평활화가 가능하다 차티스트는 되돌림과 반등을 확인하기 위한 수준을 설정해야 한다 이 수준을 너무 높거나 낮게 설정하면 신호가 거의 발생하지 않는 결과를 낳을 수 있는데, 반면 이 수준을 너무 중간에 설정하면 너무 많은 신호를 발생할 수 있다 황금비율의 중간이 필요하다 이 사례에서는 40과 60을 사용한다 40 아래로 내려가면 되돌림(pullback)의 신호이고, 반면 60 위로 올라가면 반등(bounce)의 신호이다

3. Set 지표를 활용한 트레이딩 a level to signal that the pullback or bounce has reversed

At this point, chartists are looking for pullbacks when the general tone is bullish and bounces when the general tone is bearish. The pullback serves as an alert, but we need a level to signal that the pullback has ended. A move back above 50 provides the first indication that breadth is improving again and the uptrend may be resuming. After a bounce above 60, a move back below 50 provides the first indication that breadth is deteriorating again and the downtrend may be resuming

3. 되돌림(pullback) 또는 반등(bounce)의 반전 신호 수준 설정하기

이 시점에서, 차티스트는 일반적인 경향이 강세일 때는 되돌림을 그리고 일반적인 경향이 약세일 때는 반등을 찾는다 되돌림은 경고의 역할을 하지만, 우리는 그 되돌림이 끝났다는 신호를 알리는 수준이 필요하다 50 위로 다시 올라가면 수치가 향상 중이며 상승추세가 다시 재개 중일 수도 있다는 첫 번째 지표를 제공한다 60 이상 반등한 이후에는, 50 밑으로 다시 내려가면 수치가 다시 악화 중이며 하락 추세가 재개 중일 수도 있다는 첫 번째 지표를 제공한다

Bull Signal Recap:

* 150-day EMA of $SPXA50R crosses above 52.5 and remains above 47.50 to set the bullish tone
* 5-day EMA of $SPXA50R moves below 40 to signal a pullback
* 5-day EMA of $SPXA50R moves above 50 to signal an upturn

Bear Signal Recap:

* 150-day EMA of $SPXA50R crosses below 47.50 and remains below 52.50 to set the bearish tone
* 5-day EMA of $SPXA50R moves above 60 to signal a bounce
* 5-day EMA of $SPXA50R moves below 50 to signal a downturn

강세 신호 재개

* 150일 EMA가 52.5 위로 교차하고 47.50 이상을 유지하면 강세 기조를 설정한다
* 5일 EMA가 40 아래로 내려가면 되돌림의 신호이다
* 5일 EMA가 50 위로 올라가면 상승 전환을 알린다

약세 신호 재개

* 150일 EMA가 47.50 아래로 교차하고 52.50 아래에서 유지되면 약세 기조를 설정한다
* 5일 EMA가 60 위로 올라가면 반등의 신호이다
* 5일 EMA가 50 아래로 내려가면 하락 전환을 알린다

Trading Examples
The first chart shows the indicators in the first two windows and the S&P 500 in the bottom window. In the middle window, the 150-day EMA of $SPXA50R sets the bullish tone with a move above 52.50 in early May 2003. This bullish tone would last until January 2008 when the indicator moved below 47.50. With a bullish tone, chartists would only focus on bullish signals using the 5-day EMA of $SPXA50R. A move below 40 signals a pullback and a subsequent move back above 50 triggers the bullish signal. There were no bullish signals in 2003 and three bullish signals in 2004. Signals 1 and 2 did not work out well, but signal 3 preceded a solid advance and signaled a continuation of the bigger uptrend

첫 번째 차트에서 처음 두 창은 지표를 나타내고 맨 아래 창은 S&P 500을 나타낸다 가운데 창에서, 150일 EMA는 2003년 5월 초에 52.50 위로 상승하며 강세 기조를 설정한다 이 강세 기조는 2008년 1월 지표가 47.50 아래로 하락할 때까지 이어진다 강세 기조에서, 차티스트는 5일 EMA를 이용한 강세 신호에만 초점을 맞춘다 40 아래로 내려가면 되돌림 신호이며 곧이어 다시 50 위로 상승은 강세 신호를 촉발한다 2003년에는 강세 신호가 없었고 2004년에는 3개의 강세 신호가 있었다 신호 1과 2는 잘 작동하지 않았지만, 신호 3은 견고한 상승을 이끌며 더 큰 상승추세의 지속을 알렸다

시스템트레이딩과 300억 프로젝트의 기록

RSI지표로 시스템트레이딩 구현하기

지난 글에 이어 이번에는 지표를 활용한 트레이딩 RSI지표에 대해 알아보고, 간단하게 시스템트레이딩 로직을 구현해 보도록 하겠습니다.

RSI지표는 현재 추세의 강도를 백분율로 나타내는 지표입니다.

RSI지표가 70 이상을 돌파하면 과매수 상태로 진입하였다고 판단하고, 30이하로 떨어지면 과매도 상태로 진입했다고 판단 하는 것이 일반적입니다.

RSI를 활용한 시스템트레이딩 로직에서는 일반적으로 두가지 방법을 사용합니다.

1. 70이상을 돌파했을때, 과매수 구간에 들어가면 매수를 하고 과매수 구간이 풀리면 매수청산을 한다.

2. 30이하로 떨어져서 과매도 구간에 진입했다가 반등이 오면 30이상으로 올라올때 매수해서, 과매수 구간이 풀리면 매수 청산을 한다.

오늘은 2번을 활용하여 RSI지표가 바닥을 찍고 상승으로 추세전환했을때 매수 진입을 하고, 과매수 구간이 끝나고 다시 하락추세로 전환할때 매도하는 로직으로 시스템트레이딩을 구현해 보도록 하겠습니다.

RSI지표로 시스템트레이딩 구현하기, 로직1

2번의 조건을 간단하게 두줄로 매수 시점과 청산 시점을 지정해 줍니다.

RSI지표로 시스템트레이딩 구현하기, 로직1 차트

첫 지표를 활용한 트레이딩 그림처럼 원하는 위치에 매수 및 청산이 수행됩니다.

이 로직을 3000개 봉을 기준으로 시뮬레이션 했을 때, 총 손익은 약 1500포인트 즉, 6개월간 약 3000만원의 수익이 발생합니다. 다만, 최대손실이 -800포인트 입니다.

즉, 원금을 두둑히 넣어놓고 시스템 트레이딩을 하거나 시스템을 보완해야 되겠죠.

우선은 수익을 좀 늘려보도록 하겠습니다.

앞서 입력한 로직에서 추가로 매수 시점을 보완해줍니다.

추가적으로 지난 글에 올렸던 Stochastics 지표도 추가 해보겠습니다.

그리고 RSI지표를 통해 바닥을 친 이후 상승하는 주가를 잡으려고 하는 것이니, StochasticsK 지표도 낮을때 진입하도록 조건을 추가해 주겠습니다.

1. stochasticsK 지표가 낮을때 진입하라

2. 20일선 보다 아래있을 때 진입하라

3. RSI지표가 30을 돌파했지만, 38보다는 낮을 때만 진입하라.

4. RSI지표를 좀 더 길게(추세를 좀 더 길게보고 30이상일때 진입하라) : 하락세일때, RSI지표를 짧게하면 30선을 오르락내리락하면서 계속 하락하는 경향이 있으므로 추세를 좀 길게 보면 땅굴파는 추세에서 진입하는 우를 줄일수 있습니다)

RSI지표로 시스템트레이딩 구현하기, 로직2

angelhouse161013

Hello, everyone :) If you want to subscribe to strategy indicators, please contact me. ※ All Eating Strategy Indicators enquiry -> https://t.me/angelhouse161013 /// All Eating Telegram Chat -> https://t.me/AllEatingChat

XBTUSD: [XBTUSD] 0415 스토케스틱 지표를 활용한 주가의 방향성 예측 및 대응 (스토케스틱의 수상한 신호?)

안녕하세요. 엔젤하우스 입니다. 오랜만에 인사드립니다. 필자의 이전 분석글인 0317 MFI 보조지표를 활용한 주가의 선행 방향성 예측 및 그에 따른 대응 편 이후 (연관 아이디어 링크 참고) 스토케스틱을 활용한 주가의 선행 방향성 예측 및 그에 따른 대응에 관한 분석글을 올려드린다고 하였기에, 이번 시간에는 스토케스틱을 활용한 주가의 방향성을 짚어보려 합니다. ■ 스토케스틱(Slow) 지표는 많은 트레이더들이 사용하는 지표인 많큼 주가의 선행 방향성을 예측하기에 아주 좋은 지표 중 하나 입니다. 스토케스틱 지표는 통상 20-12-12 / 10-6-6 / 5-3-3을 많이 사용하며, 때에 따라 14,3,3을 곁들여 사용하기도.

XBTUSD: [XBTUSD] 0325 주가는 중요한 변곡점에 도달하다 (feat : 지표가 보내는 하락의 신호)

안녕하세요 엔젤하우스 입니다. 현재 주가는 중요한 변곡점에 도달하였다고 생각해 볼수 있습니다. 주가는 1D기준 20이평선 이자 4H기준 120이평선에 도달하여 저항을 받는 흐름이 발생되고 있습니다. 또한 주가는 직전 고점을 돌파하지 못하고 쌍봉을 만드는 흐름이 발생되고 있습니다. 4H기준 RSI, MFI, CCI, Stoch등 다수의 보조지표 또한 주가의 상승분 만큼 상승하지 못하고, 쌍봉을 형성하며, 하락 다이버전스의 신호가 발생되고 있습니다. 좀더 낮은 시간대인 1H에서도 역시 각종 보조지표에서 단기 상승분에 대한 하락 다이버전스의 신호가 발생되고 있습니다. 이를 종합하여 분석한다면, 주가는 현재 저항라인과 주요 이평선의 저항을 받으며.

XBTUSD: [XBTUSD] 0317 MFI 보조지표를 활용한 주가의 선행 방향성 예측 및 그에 따른 대응

안녕하세요. 엔젤하우스 입니다. 오랜만에 인사드립니다. 오늘은 주가의 중장기적 방향성 예측과 대응에 있어 보다 높은 신뢰도를 가진 보조지표를 활용한 분석을 진행하려 합니다. 필자가 실전에 사용중인 보조지표 중 한가지이며, 해당 지표는 앞서 말씀드렸듯이 주가의 방향성 예측과 대응에 있어 상당히 신뢰도가 높은 보조 지표 중 하나입니다. ■ MFI 보조지표 설명 MFI(Money Flow Index) 지표는 자금의 유입/유출을 측정하여, 지표를 활용한 트레이딩 주가의 추세전환 시기를 예측하거나 가격의 과열 및 침체 정도를 파악하기 위한 보조 지표 RSI는 단순히 주가만을 반영하여 계산한 지표라면, MFI는 주가+거래량을 반영하여 계산함으로써 RSI보다 좀더 신뢰도가 높고.

BTCUSD: 06/19 [BTCUSD] 중/장기 상승파동의 Higher High 이후 Higher Low는 어디까지?

안녕하세요. 엔젤하우스입니다. 여전히 주가는 중/장기 상승파동의 진행형으로 해석할수 있습니다. 주가는 한없이 오르기만, 한없이 내리기만 하지 않습니다. 상승파동에서는 반드시 조정파동이 발생되며, 하락파동에서는 반드시 반등파동이 발생됩니다. 그렇다면 현재 주가의 새로운 고점을 형성되었다는 전재하에, 현재 주가 위치와 새롭게 생성될 Higher Low는 어디까지 일까요? 분석을 참고하시어, 새롭게 생성될 저점을 잘 체크해 보시기 바랍니다. 1. Patterns - 4H 주가는 평행채널 하단의 지지를 받고 있으며, 평행채널 하단 이탈시 Bear Flags 패턴으로 인식되어.

BTCUSD: 0605 [BTCUSD] 비트코인 단기 하락 추세 전환 이후 시황 및 매매 전략

안녕하세요. 엔젤하우스(웅이) 입니다. 비트코인 단기 하룩 추세 전환 이후 시황 및 매매 전략 입니다. ★ 4H Dow theory, Resistance/Support 주가는 중단기 상승파동 이후 직전 Higher Low를 하방이탈하며, 다우이론의 근거한 저점과 고점이 낮아지는 단기 하락 파동으로 전환되었다고 해석할수 있습니다. 현재 형성된 Lower Low 이후 Lower High 생성을 위한 단기적 상승이 진행된다면, 직전 수평 매물대 Resistance Zone ($8179 ~ $8301)에서 저항을 예상해 볼수 있습니다. 만약 현재 위치에서 추가적인 조정의 흐름을 이어갈시 대다수의 트레이더들이 지지 및 매수구간으로 인삭하는 Support.

BTCUSD: 0530 [BTCUSD] 1D(일봉) 우리가 해야할일은 예측하고 대응하는 일입니다.

안녕하세요. 엔젤하우스 입니다. 4월부터 시작된 주가의 급격한 상승 추세는 연일 꺽일줄 모르고 있으며, 현재도 진행중에 있습니다. 주가가 조정없이 급격하게 상승한다는것은 하락 전환시 하락의 진폭 또한 커진다고 해석해 볼수 있습니다. 주가가 주요 저항라인인 $9500 ~ $9600 가격대 부근에 도달함에따라 매도 심리가 강해지고 있는것 또한 사실입니다. 대부분의 트레이더들이 해당 저항 구간 도달시 청산을 목표로 할것이라고 예상해 볼수 있습니다. 물론 5월초 처럼 누구나 강한 저항을 받을것이라 예측했던 $6000 구간을 가볍게 돌파했듯이 이번 저항구간 또한 다수의 트레이더들의 생각과 반대로 돌파의 흐름이 발생될수도 있습니다. 그렇다 하더라도.

BTCUSD: 0527 [BTCUSD] 1D(일봉) 이동평균선의 변곡으로 알아보는 중/장기적 매수/매도 포인트 선점하기 (꿀팁)

안녕하세요. 엔젤하우스 입니다. 오늘은 여러분들께 일봉 이동평균선의 변곡으로 알아보는 중/장기적 매수/매도 포인트 선점하기에 대하여 말씀드리려 합니다. 제가 오늘 여러분들께 말씀드리는 매수/매도 포인트는 현재 매수/매도 점을 말씀 드리는것이 아닙니다. 앞으로 다가올 좋은 매수점과 매도점을 이야기 하는것 입니다. 제가 작성한 글을 잘 읽고 이해하신다면, 앞으로 비트코인의 상승추세에서 좋은 매수/매도 지점을 선점하시리라 생각됩니다^^ 정말 좋은 꿀팁이니 잘 활용하시기 바랍니다. ★ 1D(일봉) 이동평균선의 변곡으로 알아보는 중/장기적 매수/매도 포인트 선점하기 (꿀팁) 1.

BTCUSD: 0525 [BTCUSD] 비트코인 1W(주봉) 일목균형표 프렉탈 구조로 보는 비트코인 방향 그외 가벼운 분석

안녕하세요. 엔젤하우스 입니다. 정말 오랜만에 인사드리는것 같습니다. 다들 건강 하시죠? ^0^ 오랜만에 가볍게 비트코인 시황글 하나 작성하고 가겠습니다 ㅋ 1W(주봉) 일목균형표 프렉탈 구조로 보는 비트코인 방향 -현재 주봉상 주가는 과거와 비슷한 흐름으로 음운 상단을 돌파하며, 지속적인 상승 추세를 만들어 갈지 지켜볼 필요가 있습니다. 1D 일목균형표 강세국면 진행 중. 1. 일목균형표에서 강세국면이라 함은 주가 > 전환선 > 기준선 > 양운구름대 순서로 상승 추세가 진행중일때 강세국면의 진행중이라 해석합니다. 현재 주가는 강세국면으로 돌입함과 동시에.

빙구처럼 트레이딩: 코인 차트 "처음부터" 공부하기 #38- 복합 전략 만들기 I (SAR, MA, RSI, ATR)

지금까지는 한 개의 보조지표를 사용하여 전략을 구성하는 방법들에 대하여 알아 보았습니다. 이번 포스팅 부터는 추세를 위한 보조지표, 손절을 위한 보조지표, 필요하다면 변동성에 대한 부분까지 추가하여 복합적인 전략을 구성 후, 과거 데이터를 기반으로 최고 수익률을 내었던 계수 조작을 해주어, 최적화 작업까지 해보겠습니다.

그리고 여러가지 전략을 만든 후 과거에 만들었던 전략들과 수익률/최고 손실률/진입 횟수 를 비교하여 어떤 전략이 가장 좋고, 돈을 많이 벌어주는지 살펴보겠습니다! :)

만약 새로운 보조지표를 활용한 전략을 만들게 되면, 먼저 해당 지표를 소개시켜 드린 후 전략까지 구성하는 방향으로 가겠습니다.

그리고 주관적 요소가 들어가는 일반적인 차트 분석이 아닌, 보조 지표를 활용한 분석하는 방법으로 진행하는 이유는 누가봐도 동의할 수 있는 "통계적" 객관성이 있기 때문 이라고 생각합니다. 최적화한 값을 미래에 대입했을 때 동일한 결과물은 나오지 않겠지만, 일단 수익률이 일반적인 트레이딩 이상으로 나오기에. 그리고 내 전략이 어느정도까지 마이너스 볼 것을 각오 해야하는지 등 어렴풋이 알 수 있습니다.

그리고 저도 실험적으로 접근하는 전략들이기에, 수익률이 안나올 수도, "현실적이지 않을 수"도 있다는 점, 참고해주세요!

사용할 보조지표

추세: 이동평균선
진입 시그널: RSI
변동성: ATR
손절: Parabolic SAR

위 네 가지를 활용하여 "간단하게" 전략을 구성해보겠습니다! 트레이딩을 시작하실 때 가장 쉽게 접근하시는 이동평균선, RSI, SAR 을 사용하며, 좀 더 정확한 부분에서 진입을 위하여 ATR 을 추가해보겠습니다.

복합 전략인 만큼, 복잡한 코드들은 이전 포스팅 것을 쓰겠지만, 쉽거나 이미 트레이딩뷰에서 제공하고 있는 함수이면 복습겸 다시 작성해보도록 하겠습니다! :)

스크립트 세팅

strategy("Awesome SteemCoinPan #17", overlay=true, default_qty_type=strategy.cash, default_qty_value=1000, initial_capital=1000, currency="USD")

스크립트를 위와 같이 세팅해줍니다. 첫 자본금은 천 달러로 시작하여, 1회 배팅할 때 천 달러씩 진입한다!

추세의 기준점: 이동평균선

먼저 추세의 기준을 세워줄 이동평균선 입니다.

먼저 이동평균선을 정의해주고, 나중에 최적화할때 편의성을 위하여 input 처리해줍니다. 어차피 자동으로 진입하여 자동으로 청산시킬 것이기에, 따로 개별적으로 플로팅 (차트에 표기하는 것) 은 하지 않겠습니다. (나중에 확인용으로만~)

그리고 추세에 대한 부분을 간단하게 정리해줍니다. 이동평균선이 상승하고 있을때, 종가가 이동평균선 보다 클 때 trend 이다.

진입의 기준: RSI

RSI 역시 코딩을 후딱해줍니다.

RSIinput = input(14)
RSI = rsi(close, RSIinput)

먼저 RSI 역시 나중에 최적화 대상임으로 종가에 대하여 기본값인 14 주기를 먼저 넣어, 저희가 알고 있는 RSI 를 코딩해줍니다.

RSI 에 대한 매수는 이런 과매수가 발생하고, 반등하고 올라가는길에 올라타고 싶습니다. 다시 한 번 말씀드리자면, 저점 잡는 것은 확률적으로 저~엉말 어려우며, 올라가는길에 올라타는게 더 쉽습니다. (코딩하기도 ㅎㅎ 더 쉽습니다. )

그리고 위 사진을 고대로 코딩하면, 이전 캔들이 RSI 과매도 구간 이하에 있고, 현재 캔들이 양봉일 때 매수 시그널 buy 를 정의해줍니다.

변동성의 기준: ATR

이건 제 직관에 의하여 생긴 논리긴 하지만, 가격이 변동성이 클 때랑 작을 때랑 다른 패턴을 보이며 움직입니다. 변동성이 클 경우 좀 더 비이성적인 움직임이 나와, 그것을 패턴화 할 수 있죠.

ATRshort = input(5)
ATRlong = input(50)
ATRconfirm = atr(ATRshort) > atr(ATRlong)

예전에 작성한 ATR 에 대한 기준에 변수를 input 으로 변경하였습니다.

손절의 기준: Parabolic SAR

SARinc = input(0.02)
SARstart = input(0.02)
SARmax = input(0.2)
SAR = sar(SARstart, SARinc, SARmax)
SARstop = close < SAR
SARuptrend = close > SAR

SAR 도 인풋으로 깔끔하게 정리해주고! SAR 의 기준으로 손절과, SAR 의 기준으로 상승 추세도 따로 정의하여, SAR 하락 추세일 경우 매수 진입을 하지 않도록 조작해줍니다.

매수 진입과 손절 정의

이제 위에서 정의한 모든 변수들을 합하여, 매수 추세의 진입 시그널과 손절 시그널을 만들어줍니다.

Entry= buy and trend and ATRconfirm and SARuptrend

먼저 매수 (Entry) 는 RSI 의 매수 시그널, 이동평균선의 추세, ATR 의 충분함, SAR 의 상승 추세가 확인될 때 매수를 잡으며

손절은 간단하게 종가가 SAR 보다 밑에 있으면, 손절로 설정하여 손절과 익절의 기능을 동시에 하게끔 조작해 지표를 활용한 트레이딩 줍니다. 예전에 잠깐 말씀해드렸던 트레일링 스탑의 정석이죠.

전략 구성

이제 마지막 단계 입니다. 전략으로 만들어줍니다!

if (Entry)
strategy.entry("long", strategy.long)
if (Stoploss)
strategy.close("long")

만약 Entry 시그널이 나온다면, 매수 진입해라!
만약 Stoploss 시그널이 나온다면, 매수 진입한 물량을 청산해라!

ㅋㅋㅋ 전부 기본값을 넣어버렸더니, 진입 횟수 1회 입니다. 계수를 조작해줍시다. 보조지표를 기반으로 만드는 것이니, 차트에 모든 지표들을 가시화 하여 근사값을 찾아보겠습니다.

plot(MA, color =#FF7F00 )
bgcolor(color = buy ? #008000: na, transp = 85)
bgcolor(color = ATRconfirm ? #FF00FF: na, transp = 85)
plot(SAR, color = #FF0000)

먼저 이동평균선은 주황색 선으로 플롯, RSI 에 대한 매수 시그널은 초록색 배경화면으로, 변동성에 대한 부분은 보라색 배경화면으로, SAR 에 대한 부분은 빨간색 선으로 그려줍니다.

  • 가장 눈에 띄는 부분은 SAR 파트 입니다. 빨간색 선으로 되어 있는 SAR 은 추세가 발생했을 경우 추세가 끝날 때 까지 쭉 이어져야 합니다. 하지만 위의 예시에서는 추세가 진행중임에도 위 아래로 흔들리며 추세를 정확히 캐치하지 못하고 있습니다.

요 세값을 조작하여 빨간색 선이 좀 더 매끈하게 이어지도록 조작해줍시다.

시작값과 상승값을 각각 0.1 을 곱해줘, 민감도를 대폭 감소.

훨씬 부드러운 추세를 보여줍니다. 체계적 최적화는 나중에 하기로 하겠습니다.

  • ATR 필터링은 충분하니, 배경 표시를 꺼주도록 하겠습니다.

  • 이제 진입 시그널을 살펴보면, 너무 쌩뚱맞은 구간에서 생깁니다. 주기와 과매수 기준을 낮춰 최대한 추세가 발생하면, 첫 조정에서 바로 진입하도록 조작해줍니다. 주기는 5 정도, 기준은 45 정도.

슬슬 진입을 어느정도 하기 시작하며, 수익권으로 나오기 시작합니다.

이제 수익권으로 돌아섰으니 최적화를 시작해보겠습니다. 저는 지표를 활용한 트레이딩 개인적으로 손절 파트부터 건들여, 진입이 얼마나 잘못되었든 최고의 수익률이 나오게 하는 작업을 우선시 합니다! SAR 부터 건들여보겠습니다.

시작값은 임의로 0 으로 설정했습니다. 상승값이 변함에 따라, SAR 값은 크게 변하기에. 0.001 부터 0.001 단위로 0.02까지 쭉~ 넣어보면~

손절을 줄일 수록 수익률이 떨어지는 현상을 보실 수 있습니다. 0.002값이 피크 인 것 같습니다.

상당히 이쁜 우상향 수익률을 보이고 있으며, 최고 손실률이 14.13% 밖에 나오지 않습니다. 진입 횟수는 47 회로 약간 아쉽군요.

여기서 살짝 개인적인 궁금함이 들어서 아예 큰 수를 넣어버려서, "큰 추세가 아닌 작은 추세를 단기로 잡으면 어떨까?" 라는 생각이 들어 0.05 를 넣어보니,

어라? 생각보다 잘나오네요. 범위밖의 또다른 피크를 찾은 것 같습니다.

실질적으로 따져봤을때 0.05값을 넣었을 때 수익률이 훨씬 지표를 활용한 트레이딩 안정적으로 상승하는 모습을 보실 수 있습니다. 최고 손실률이 7.45% 이며, 수익률이 42% 입니다. 즉, 2배 레버리지를 사용했을 경우 수익률이 84%, 손실률이 15%로 0.0002를 넣었을 때 보다 높은 수익률입니다. 진입 횟수도 10 회 더 많아, 통계적으로 20% 정도 신뢰할 수 있다고 생각합니다.

그래서 0.01 부터 다시 0.1 까지 테스팅.

오호! 그냥 0.05를 진짜 잘 찍은 숫자였군요 ㅋㅋㅋㅋㅋㅋㅋㅋ 이걸로 SAR 상승값 잡아보겠습니다.

이제 SAR 초기값 (시작값) 을 잡아보겠습니다. 임의로 0 으로 두고 시작을 했는데,

똑같이 0.01 부터 0.1 까지!

ㄷㄷ. 0.06 값이 상당하군요.

먼저 추가적인 정보를 보자면 1회 진입시 평균정도 10 캔들 이후 청산이 된다고 합니다. 즉, 단기 트레이딩이라는 점을 확인할 수 있죠.

승률은 50% 조금 안되지만, 최고 손실률이 3% 인 만큼 상당히 꾸준한 상승세를 보입니다. 사실 이렇게만 써도 될 것 같은데.

1시간 봉이라 1년 6개월치 데이타 인데, 18 개월동안 66 회 진입은 음..

일단 진입 횟수를 늘렸을때 어떤 현상이 나타나는지 확인해보고 싶어졌습니다. 진입에 대하여 직접 관장하는 RSI 파트를 건들여보죠.

RSI 를 40 부터 한 70 까지 5 단위로 찾아보죠.

일단 수익률은 50 일 떄가 가장 큽니다.

하지만 살펴보면 최고 손실률이 10% 임으로 위 45 일때보다 거의 3배 차이나는 군요. 수익률이 더 좋아도, 실질적으로 45를 사용하고 레버리지를 사용하는게 더 좋아보입니다.

뭐 이제 건들여볼께 이동평균선 하나 남았네요.

옼헤이 이동평균선은! 60 일 때가 가장 좋다고 합니다. 60 일때 스펙을 살펴보면 손실률이 더 줄었습니다. 하지만 역시 진입 횟수가 너무 안나오네요. 수익률도 늘었습니다.

전략 비교!

오늘 전략과 저번 포스팅 전략을 비교해 보았습니다. 오늘 값이 비트코인 bitfinex 기준이여서, 거래소를 바꾸면 똑같은 수익률이 나오지 않는 "현실적" 이지 않은 값이 나왔으나. 저번 포스팅에서도 bitfinex 기준으로 맞췄으니, 이번에도 bitfinex 기준으로 비교해보았습니다. 최고 손실률이 비정상적으로 낮다는 점에서 오차가 발생했다고 생각합니다.


0 개 댓글

답장을 남겨주세요