안녕하세요 racoonee 입니다.
오늘은 HCL 지표값과 두가지의 이동평균 그리고 ADX를 활용한 중복진입 추세 전략을 알려드리려고 합니다.
다른 전략들과 달리 오늘 말씀드린 전략은 알려드리는 전략을 그대로 사용하지 마시고, 변수 수정, 지표 추가, 다른 지표 사용을 통해서 많은 조합이 가능하오니 참고하시면서 내용확인 해보시기 바랍니다.
오늘은 키움 나스닥 15분봉에 조회 봉수 10000으로 해서 많은 수의 캔들을 조회해서 보도록 하겠습니다.


- 시뮬레이션
- 수수료 : 편도 3.2$
- 슬리피지 : 편도 3 Tick

설정 > 주문설정 > 주문일반 탭 하단에서 최소 필요봉수를 200으로 설정 해주시기 바랍니다.

중복진입 설정은 아래와 같이 5회로 진행을 하고 진입조건은 하나로 작성된 내용이기 때문에 모든 진입신호 허용으로 해주시기 바랍니다.

전략 설명 전 오늘 핵심 변수를 만들어 보겠습니다.

오늘의 핵심은 c3에 계산된 HLC 평균값이 핵심입니다.
HLC의 평균과 H와 L를 이용하여 지수이동평균, 단순이동평균을 계산하여 추세를 확인하려고 합니다.
위와 같이 계산된 내용을 지표로 그려보도록 하겠습니다.

조회된 차트의 일부분을 보고 계십니다.
추세가 유지되는지 추세가 바뀌는지 확인 되시는 부분이 있으신가요?
주기가 15분이기 때문에 IOG를 사용하지 않는 전략에서는 조정을 줄 때 MDD가 높게 나올 수 있으므로 참고하시면 될 것 같습니다.
(※ IOG란 : 조건이 만족하면 봉중간에 진입이 가능하도록 하는 예약어
- 과거 백테스팅이 정확하지 않음
- 실시간에서 확인 가능
- 스크립트 작성이 매우 복잡해짐 )
좀 더 확대를 시켜 지표 설명을 드리도록 하곘습니다.

다음 보시는 이미지에서 노란색 지표는 단순이동평균, 흰색 지표는 지수이동평균을 그려놓은 지표 입니다.
그리고 각각의 색에서 점선이 아닌 실선이 HLC의 평균을 넣은 지표, 상단은 H, 하단은 L을 각각 넣어서 그려지는 지표 입니다.
3개의 이동평균선들의 움직임과 캔들의 움직임을 보고 진입을 하려고 합니다.
진입조건은 ADX 지표를 설명하고 보도록 하겠습니다.
아래 수식은 ADX를 계산한 수식입니다.
기존과 다른 점은 종가 C를 사용하지 않고 C[1] 대신에 HLC의 평균인 c3를 사용해 c3[1]인 PreC 라는 변수를 만들어 사용하고 있습니다.
변수는 작성된 부분은 상단 이미지에서 확인 가능합니다.
나머지 내용은 이전에 말씀드린 ADX 수식과 동일 합니다.

차트에 드려진 HLC와 합성한 ADX 지표를 확인해보도록 하겠습니다.

기존에 ADX 지표에선 25를 기준으로 추세의 힘을 확인 했지만 다음 만들어진 지표에서는 40을 기준으로 보도록 하겠습니다.
주황색 선이 HLC 합성된 ADX, 파란색 선이 기준선이 40 입니다.
단순이동평균인 노란색지표를 기준으로 캔들 및 흰색 지수이동평균선이 위에 있으면 상승추세
반대로 아래에 있으면 하락추세로 볼 수 있습니다.
확인해야 하는 부분은 아래 이미지에서 보신것과 같이
모든 지수이동평균선이 단순이동평균선 위, 아래에 있어야지 추세가 변경됨을 확인 할 수 있습니다.
일부부만 하락을 했다 하더라도 상단에 남아 있는 선이 있다면 추세는 유지가 되고 있습니다.

상승추세
하락추세에서도 같습니다. 모든 선들이 돌파를 해야만 추세가 변동이 되는데 일부분만 통과를 하고 나머지 선들은 통과를 하지 못해 하락 추세 유지하고 있습니다.

하락추세
그리고 추세를 확인하고 들어갈 전략이기 때문에 추세가 잡힌 시점을 확인하는 2가지 방법으로는
상승추세에서는 캔들이 지수이동 평균선 상단을 상향 돌파 할 때 + ADX가 40 이상일 때
하락추세에서는 캔들이 지수이동 평균선 하단을 하향 돌파 할 때 + ADX가 40 이상일 때
로 정리가 되는데, 돌파 할 때의 시점에 ADX를 보고 진입을 하게 됩니다.
위에 말씀드린 조건을 수식으로 작성을 해보면서 완성된 수식을 정리해보겠습니다.

- 매수 진입
- 지수이동평균 하단선이 단순이동평균 상단선보다 클 때 : oema3 > oma2
- 가장작은 하단선이 가장 큰 상단선 위에 있으면 모든 선들이 위에 위치함
- 캔들의 종가가 지수이동평균 상단선을 상향 돌파 할 때 : CrossUP(C, oema2)
- ADX가 40보다 클 때 : oADX > 40
- ADX가 상승중 : oADX[1] < oADX
- 이전봉의 ADX보다 현재봉의 ADX가 클 때 상승
- 현재 포지션이 매도가 아닐 때 : mp <> -1
- 중복 진입을 위한 조건
- 매도가 아닐 때 = 매수 포지션이거나 무포지션일 때
- 스위칭 하지 않음
- 지수이동평균 하단선이 단순이동평균 상단선보다 클 때 : oema3 > oma2
- 매도 진입
- 지수이동평균 상단선이 단순이동평균 하단선 보다 작을 때 : oema2 < oma3
- 가장 큰 상단선이 가장 작은 하단선 아래에 있으면 모든 선들이 아래에 위치함
- 캔들의 종가가 지수이동평균 하단선을 하향 돌파 할 때 : CrossDown(C, oema3)
- ADX가 40보다 클 때 : oADX > 40
- ADX가 상승중 : oADX[1] < oADX
- 이전봉의 ADX보다 현재봉의 ADX가 클 때 상승
- 현재포지션이 매수가 아닐 때 : mp <> 1
- 중복 진입을 위한 조건
- 매수가 아닐 때 = 매도 포지션이거나 무포지션일 때
- 스위칭 하지 않음
- 지수이동평균 상단선이 단순이동평균 하단선 보다 작을 때 : oema2 < oma3
- 손절라인 준비
- ADX가 40을 상향돌파 할 때 : CrossUP(oADX, 40)
- 1번조건 + 매수일 때 지수이동평균 하단선 b_loss에 저장
- 1번조건 + 매도일 때 지수이동평균 상단선 s_loss에 저장
- 다음 변수에 저장한 값들은 각각의 포지션에서 손절 라인을 정할 때 사용
- 손절
- 청산되지 않는 포지션이 손실 중일 때 : PositionProfit < 0
- 매수 일 때 매수 손절라인 b_loss에서 2% 아래 값을 하향 돌파 할 때 매수청산 : CrossDown(C, b_loss*0.98)
- 매도 일 때 매도 손절라인 s_loss에서 2% 위에 값을상향 돌파 할 때 매도청산 : CrossUp(C, s_loss*1.02)
- 익절
- 계약수가 2계약 이상이면 익절(또는 손절) 강제청산 수식은 모두 다음과 같이 작성해주셔야만 올바르게 동작합니다.
- 진입이 되어 계약수가 0이 아닐 때 1.5% 수식이면 익절
매수 진입과 익절 하는 신호 위치입니다.
상승추세에서 매수 진입 후 익절을 하고 이후 추세가 유지되는 것으로 보여 다시 매수를 진입하여 이후 신호도 익절 신호가 나오는 것을 보실 수 있습니다. (빨간 점선 익절표시, 파란 점선 손절표시)

매수 신호 및 매수 익절
매도 진입 역시 매도 진입 후 매도 익절 후에 추세가 유지됨을 확인하고 추가로 매도 진입을 하는 것을 볼 수 있습니다. (빨간 점선 익절표시, 파란 점선 손절표시)

매도 신호 및 매도 익절
완성된 스크립트

오늘 만들어본 전략은 초반에 말씀드린 것과 같이 추세전략이고, 사용하는 변수값에 따라 많이 변화가 가능한 전략입니다. 핵심적인 지표인 지수이동평균과 단순이동평균 그리고 HLC의 합성을 통한 이평선을 가지고 다른 지표 및 다른 변수드를 가지고 전략을 만들어보시면 안정적이도 더 좋은 성과가 나올 수 있는 전략이 완성 될 수 있다고 봅니다.
주기 또한 변경을 하여 적용을 해보시기 바랍니다.(종목도 마찬가지로 여러 종목에 반영해보시기 바랍니다)
추세전략을 손절라인을 어떻게 하느냐에 따라 MDD가 작거나 크게 발생 할 수 있습니다.
원하는 방향이 승률인지 수익인지에 따라 손절라인을 조정하시면 좋을 것으로 보입니다.
오늘 만든 전략이 많은 도움이 되셨으면 좋겠습니다.
다음시간에 더 좋은 전략을 만들어 가져오도록 하겠습니다.
모두 부자가 됩시다!
※참고. 주기 및 기준값들은 변경하고 사용하셔도 됩니다.
(질문이나 전략 코딩 관련 문의가 있으시면 이메일이나 답변 주시기 바랍니다.)
'스크립트 작성 > signalmaker' 카테고리의 다른 글
[시그널메이커] MACD_지수이동평균 전략 (0) | 2024.08.07 |
---|---|
[시그널메이커] 지수 이동평균 추세 전략_데이트레이딩 (1) | 2024.08.07 |
[시그널메이커] 지수이평_ADX_CCI_캔들 전략 (1) | 2024.08.07 |
[시그널메이커] RSI - 지수이동평균(EMA) 전략 (1) | 2024.08.07 |
[시그널메이커] RSI Divergence 지표 작성 (1) | 2024.08.07 |