MACD지표를 이용한 시스템트레이딩 로직 예시

오늘은 MACD지표를 통해 시스템트레이딩 로직을 구현해 보도록 하겠습니다.

 

우선 MACD는 추세 지표 중 하나입니다. 저 역시도 시스템트레이딩 로직을 구현할 때 MACD지표를 추세 지속, 또는 추세전환의 판단 지표로 사용합니다. 

"MACD 지표는 단기 지수 이동평균값과 장기 지수 이동평균값을 뺀 차이로  두 이동 평균선 간의 관계를 보여주는 지표입니다" 뭔소리냐구요? 그냥 지표 차트를 봅시다.

 

간단하게 말하면, "빨간색이 짙어지면 오르는 중이고, 파란색이 짙어지면 내리는 중이다." 라는 겁니다.

그럼 추세 전환은 당연히 파란색이 줄어들고 빨간색이 생기기 시작하면 하락->상승으로 추세전환

반대로 빨간색이 줄어들고 파란색이 생기기 시작하면 상승->하락으로 추세전환 이겠죠?

 

MACD지표가 MACD Signal 지표를 상향돌파하면(빨갛게 변하면) 매수 입니다

여기서 MACD Signal  지표는 MACD지표를 가중이동평균한 값입니다. 위의 지표 화면에서는 9개 봉을 가중이동 평균한 수치이죠. 

 

자 그럼 시스템은 간단하게 다음과 같은 로직이 나올 수 있겠습니다.

 

1. 하락추세가 끝나고 상승추세가 시작되면 매수하라. 

2. 상승추세가 끝나고 하락추세가 시작되면 매도하라.

3. 상승추세 중에만 매수하라, 또는 하락추세 중에만 매도하라.

 

 

 

MACD지표를 이용한 시스템트레이딩 로직 예시

청산 로직은 지난 두 포스팅의 청산 로직을 가져왔습니다. 매수의 경우 macd 가 상승추세로 전환될 때 즉, macd지표가 macd_signal 지표를 상향 돌파하면 매수하되, macd지표가 음수(즉, 바닥권일때 상승추세로 전환하면 매수하라)일때 매수하라고 하겠습니다.

 

 

MACD지표를 이용한 시스템트레이딩 로직 예시 결과 1

 

 

 3000개 봉 시뮬레이션의 경우 승률은 약 57퍼센트 높진 않지만, 바닥권 추세전환시 진입하는 로직이므로, 수익이 날때는 제법 크게 납니다. 최대 수익 255포인트네요. 

 

한번의 거래에 500만원 이상의 수익도 낼 수 있다는 이야기입니다.

 

손실금액도 제법 되기 때문에, 좀 더 보완이 필요해 보입니다.

 

이번에는 지난시간에 간단하게 만들어 보았던 Stochastics를 활용한 시스템트레이딩 로직에 MACD 지표를 추가해서 기존의 로직에 필터를 걸어서 좀더 나은 상황에서 진입할 수 있도록 세팅을 해보겠습니다.

 

앞서 설명드린 지표를 활용하는 방법의 3번에 해당 되겠습니다.

 

 

 

우선 지난 시간에 만들었던 Stochastics를 활용한 시스템로직은 어떻게 거래를 하고 있는지 볼까요?

 

지난 시간 이후의 거래가 대부분 손실이네요. 

 

ㅎㅎ 시뮬레이션만 믿고 과거의 기록이 미래에도 그대로 될거라 믿고 충분한 검증과 테스트 없이 실 거래를 진행하면, 저 표에 나타난 것처럼 손실을 기록하게 됩니다....

 

자. 그럼 손실 난 구간을 찾아보고 MACD를 적용 할 수 있나 볼까요?

 

 

 

 

 

 

MACD지표를 이용한 시스템트레이딩 로직 지표추가

이런.... 60일선도 상승하는 중이고, 양의 MACD 구간, 추세는 상승 중인데 매도를 진입했네요. 

 

 

macd지표가 파란색 구간에만 매도를 진입하도록 지표를 추가해줍니다.

MACD지표를 이용한 시스템트레이딩 로직 지표 추가 예시

 

 

MACD 조건이 추가되면서 몇가지 거래가 사라졌지만, 최근에 발생한 상승 추세에 매도 진입을 하는 거래는 제거 되었습니다.

 

그외에도 시뮬레이션상 매도 진입한 부분의 타이밍을 보면서 좀 더 튜닝을 해준다면 조금 더 나은 성능을 기대할 수 있겠네요.

 

이렇게 MACD지표는 추세를 판단하는 지표로 사용되고, 때로는 추세전환시 변곡에서 진입을 할 수 있는 지표로 활용 할 수도 있습니다.

 

다음 포스팅에는 이동평균선을 활용한 시스템트레이딩 로직 구현과 지표 활용 방법에 대해 적어 보겠습니다.

 

감사합니다.

 

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

 

조건을 몇가지 추가해 주었더니 결과는 어떻게 되었을까요?

 

 

 

오~ 최대 손실폭도 줄어들고, 최대 손실금액도 줄어들었습니다.

 

전체적으로 진입하는 횟수가 줄었지만, 손실 가능성을 줄여주는 조건이 추가되었다고 판단할 수 있겠습니다.

 

주식 차트를 통한 거래를 하는 수많은 책에서 나오는 기술들 중에서 조금만 응용하면 이렇게 좋은 결과를 나타낼 수 있습니다.

 

물론 실제로 시스템트레이딩을 통해 거래를 하시는 분들이 이렇게 단순한 2줄으로 거래를 하지는 않지만,

 

이렇게 한줄, 두줄만으로도 높은 수익을 낼 수 있는 것이 시스템트레이딩을 통한 매매입니다.

 

아직 완벽하지는 않지만, 좀 더 보완하면 좋은 로직으로 활용 할 수도 있겠네요.

 

다음 포스팅은 MACD 지표를 활용한 시스템트레이딩 로직을 구현해 보도록 하겠습니다.

 

감사합니다.

 

 

Stochastics(스토캐스틱) 지표로 시스템트레이딩 구현하기

 

 

오늘은 제가 가장 블로그를 다시 시작하는 기념으로

 

제가 가장 좋아하는 지표인 스토캐스틱 지표를 활용하여 시스템트레이딩 로직을 함께 간단하게 구현하면서 얼만큼 수익이 나는지 보도록 하겠습니다.

 

60분봉 기준으로 나스닥100 선물 차트를 통해 진행하겠습니다.

 

StochasticsK (스토캐스틱)은 간단하게 최근 N개봉 주가에서 가장 높은 값을 100, 가장 낮은 값을 0이라고 할때, 현재 주가의 위치를 표현하는 수치. 즉, 최근 주가대비 현재의 위치라고 생각하면 됩니다.

 

뭐 지수이동평균하고 이런게 있는데, 쉽게 말하면 과거대비 현재 주가의 위치 입니다.

 

이렇게 계산할 때의 맹점은 주가가 위아래 큰 진폭이 없이 옆으로 횡보할때, 그리고 한쪽으로 강하게 내리거나 오를때, 지표를 신뢰하기 힘들어 집니다. 왜냐하면, 실제로 주가가 많이 상승하지 않아도, 지표값으로 볼때는 많이 상승한 것 처럼 보입니다.

 

위의 그림에서, 

 

파란색 박스를 보면 Stochastics 지표는 30에서 80까지 상승하였으나, 주가는 아주 약간 상승한 모습이고 이내 하락합니다. 반대로 빨간색 박스를 보면, 두개의 박스 모두 주가의 상승과 Stochastics 지표의 상승 모양이 비슷합니다. 

 

주가가 횡보할때, 또는 급격하게 한쪽으로 움직일때를 제외한다면, Stochastics를 활용한 매매는 유효해 보입니다. 

(횡보할때, 급격하게 한쪽으로 움직일때는 지표를 통한 매매는 손실을 유발 하겠죠?)

 

자 이론은 여기까지하고, 얼른 로직을 만들어 봅시다. 간단하게 로직을 구현 해봅니다.

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 구현 예시1

 

StochasticsK(지표창 빨간선)이 StochasticsD(지표창 파란선)을 크로스업하면 매수,

StochasticsK가 StochasticsD를 크로스다운하면 매도하게 입력하면, 다음과 같이 됩니다.

 

 

 

 Stochastics(스토캐스틱)을 이용한 시스템트레이딩 구현 결과1

 

역시 정신없이 많은 거래를 합니다. 지표만 보고 거래하다보니 고점에서 매수를 진입하기도 하며, 저점에서 매도를 진입하기도 하네요, 조금 더 세밀하게 진입할 수 있게 조절을 해 보겠습니다.

 

매수 진입은 지표가 낮을 때만 할 수 있게 제한하고, 매도 진입은 지표가 높을 때만 할 수 있게 조절해 보겠습니다.

 

추가적으로 매수 진입을 StochasticsK가 낮을 때에만 하도록 했지만, 매수 청산은 Stochastics 지표가 크로스다운하면 빠져나올 수 있어야 하므로 청산 거래 로직을 추가 해줍니다.

 

왜냐하면, 기존 로직으로만 보면 StochasticsK지표가 80이상에서 크로스다운 해야만 매수포지션을 종료하고 매도로 전환되니, 그전에 하락세로 전환하면 더 큰 손실이 되기전에 매수 포지션을 정리하고자 함입니다.

 

매도 로직은 반대로 하면 되겠죠?

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 구현 예시 2

 

 

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 구현 예시 2 결과

 

 

오호, 이제 제법 괜찮은 타이밍에만 매수, 매도를 진입하고, 적당한 타이밍에 빠져나오는 모습을 볼 수 있습니다. 물론 허술한 면이 더 많겠죠? 그래도 3000개의 봉 전체의 기록을보면, 수익을 내는 로직으로 바뀌었습니다. 슬슬 수익이 나기 시작하네요. 시스템트레이딩을 돌려도 될만한 성능이 나오는지 시스템 성능보고서를 볼까요?

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 구현 예시 2 결과

 

아직은 승률이 52%, 매수거래는 아직 타이밍이 안좋나봅니다. 매도거래는 수익이 좀 발생하네요, 이런 경우에 로직을 튜닝하거나 또는 매수거래를 하지 못하게 한다면 800포인트 수익이 발생하겠네요. 6개월간 약 1800만원 정도 수익이 발생하겠죠? 

 

이걸로는 아직 부족합니다. 지금 로직이 어디서 문제가 발생하는지 차트를 살펴봅니다.

 

아, 여기가 문제군요.

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 로직 분석

 

주가가 내려가다가 양봉이 발생하니 Stochastics지표가 크로스업을 했고, 매수 진입을 해버리네요.

 

로직은 정확하게 작동했지만, 결과적으로는 큰 손실이 발생합니다. 어떻게 바꾸어 볼까요?

 

네 그렇습니다. 주가가 하락하는 와중에 한번 올라줬다고 매수하는 우를 범하지 않도록, 혹은 반대로 주가가 상승하는 도중에 한번 내려갔다고 매도 하는 것을 방지하기 위한 장치를 마련 해줍니다.

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 로직 예시 3

 

봉 하나 늦게 들어가더라도 확실하게 올라가는 걸 보고 들어가겠다는 전략이죠.

 

1개봉 전에 StochasticsK가 20보다 낮으며, StochasticsK가 StochasticsD를 돌파하면 매수하라 에서

 

2개봉 전에 StochasticsK가 20보다 낮으며, StochasticsK가 StochasticsD를 1개봉 전에 돌파하고, 현재봉이 1개봉 전보다 높을때만 매수하라로 바꾸어 줍니다. 위와같은 훼이크에 당하지 않도록 말이죠.

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 로직 예시 3 결과

 

 

그러면 원래 매수했던자리가, 매도한 포지션을 정리만하는 매도청산 로직만 발동됩니다.

 

3000개 봉 전체에 적용하면 어떻게 되었을까요?

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 로직 예시 3 결과

 

 

오~~ 매수 로직의 손실이 많이 줄었고, 매도 로직의 수익이 증가했습니다. 하지만 아직 많이 부족해 보이네요.

 

이번엔 좀 괜찮은 팁을 알려 드리도록 하겠습니다. 로직을 구현하다보면, 필터로 걸어놓는 승률을 높이는 지표들이 있는데요 그것중에 가장 괜찮은 녀석이 이동평균선입니다.

 

이동평균선이 상승할때만 매수하고, 이동평균선이 하락할때만 매도하라로 필터를 걸어보겠습니다.

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 로직 예시 4

 

 

60일선을 기준으로 60일선이 상승하는 중에 Stochastics 매수 조건이 발동하면 매수하라고 바꾸고,

60일선이 하락하는 중에 Stochastics 매도 조건이 발동하면 매도하라고 조건을 추가해 줍니다.

 

결과는 어떻게 되었을까요?

 

오... 4줄만 적었을 뿐인데 엄청난 로직이 완성되었습니다.

 

승률 77%에 수익이 1500포인트 6개월 시뮬레이션 결과상 약 3천만원이상 수익이 발생합니다.

매수거래의 경우 승률이 100퍼센트네요. 이정도면 조금만 더 튜닝하고 시스템트레이딩을 운영해도 될거 같습니다.

 

다만 성능보고서를 잘 보면 최대손실폭이 -316포인트, 즉 승률은 100퍼센트지만 평가손익으로 -700만원을 기록하고, 수익을 내는 경우도 있다는 것을 알 수 있습니다.

 

즉, 이 시스템을 거래하기위해서는 여유로 최소 700만원은 더 넣어놓고 시스템을 운영해야된다는 이야기죠. (그렇게 엄청나게 좋은시스템은 아니라는 이야기입니다)

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 로직 예시 4 결과

 

그리고 매도거래의 경우 기존에 900포인트 수익에서 수익금이 줄었습니다. 손실도 줄었지만 이는 거래 진입 자체가 많이 줄었기 때문인것 같네요.

 

세부적으로 매매 거래내역을 볼까요? 

 

엄청납니다. 한번에 거의 400포인트 약 900만원 수익이 나는 거래도 보이네요. 

 

 

Stochastics(스토캐스틱)을 이용한 시스템트레이딩 로직 예시 4 결과

 

 

이렇게 간단하게 몇줄만으로도 꽤 괜찮은 로직이 만들 수 있음을 알 수 있습니다. 여기서 조금더 튜닝을 하고 보완을 하면 좋은 타이밍에 매수하는 로직이 만들어 질 것 같습니다.

 

아니면 매도거래 진입을 제한 해버리고 매수 로직만 진입하도록 만든 다음, 매수타이밍을 조금더 조절해주면 괜찮은 StochasticsK를 통한 시스템트레이닝 로직이 완성될 수 있을 것 같습니다.

 

다음 포스팅은 RSI 지표를 통한 시스템 로직을 구현하면서 지표를 분석해보겠습니다.

 

감사합니다

 

 

지난밤에 2017/09/07 1시경 매수신호 발생후 이동평균선 저항 즈음에 자동 청산 신호 발생함.

 

이럴 줄 알았다면 Golden Egg 시스템에 1계약만 걸고 저걸로 하나 돌렸으면, 3.75포인트니 약 20만원 수익인데,

 

 

 

단타 시스템 요놈도 거의 완벽한 놈인것 같다. 일단 메인 시스템을 가동하면서 수익이 발생하면 동시에 가동해서 수익률을 극대화 하면 좋을 것 같음.

 

단타 시스템이라 수수료가 높으면 별로 효용성이 떨어지긴 하지만 승률이 워낙 좋으니 동시 진행 해볼만 한듯.

 

그런데 여기서 슬리피지 까지 추가적으로 줘야된다면 좀 튜닝이 필요한것 같기도함,.

'시스템트레이딩 > 기타 로직 신호 기록' 카테고리의 다른 글

단타시스템 로직 구현  (1) 2017.08.30

 

 

 

 

 

2년간 이런 저런 실험과 아이디어를 접목하면서 쌓인 경험치로

 

 

문득 생각이 들었던 단타 시스템, 본 시스템인 Golden Egg 시스템을 가동하면서도 최적의 단타타이밍이 온다면 함께 투자해볼만한 시스템을 만들자 라는 아이디어를 접목해서 약 10분동안 코딩해서 만든 로직임.

 

 

에센피, 즉 주가는 우상향이 기본이므로 매수만 대응하기로 하고,

 

매일 진입하지는 않지만 승률이 85%에 육박하는 시스템이 나옴. 10000개 봉으로 검증한 결과임.

 

매번 수익이 많진 않지만 수익이 확실한 그런 시스템이라고 생각됨. 6월 7월 8월 돌렸으면 약 420만원이나 수익나는 시스템임 ㄷㄷ

 

 

초기에 시스템로직을 구현할때 엄청 복잡하고 힘들게 만들고나서, 아주 간단한 RSI 기준 매수 매도 로직을 5분만에 구현한적이 있는데

 

복잡하게 만든 시스템보다 5분만에 구현한 로직이 훨씬 승률 및 수익률이 좋았음.

 

 

알게된점은

 

복잡하고, 다양한 경우의 수가 들어간 로직이 무조건 적으로 좋은 시스템은 아니라는 것!

 

아는 형과 늘 하는말이 있는데, 줄때 얼른 먹자, 줄얼먹

 

그것을 실행하는 단타 시스템인 이것은 나름 괜찮아보임.  9월 1일 시작전 시험 가동 시작함.

+ Recent posts