* 항상 많은 도움에 고맙습니다.
* 아래 기준 수식 좀 요청 드립니다
## 아래기준
지표 MACD 다이버전스 발생 여부를 얻는 수식을 알고 싶습니다.
상승 다이버전스에서 0봉(현재봉)에서 발생이면 +5
상승 다이버전스에서 1봉전에서 발생이면 +4
상승 다이버전스에서 2봉전에서 발생이면 +3
상승 다이버전스에서 3봉전에서 발생이면 +2
상승 다이버전스에서 4봉전에서 발생이면 +1
하락 다이버전스에서 0봉(현재봉)에서 발생이면 -5
하락 다이버전스에서 1봉전에서 발생이면 -4
하락 다이버전스에서 2봉전에서 발생이면 -3
하락 다이버전스에서 3봉전에서 발생이면 -2
하락 다이버전스에서 4봉전에서 발생이면 -1
합하여 추세선으로 요청 드립니다.
* 고맙습니다 좋은 하루 되십시요.
답변 1
예스스탁
예스스탁 답변
2023-05-17 16:59:22
안녕하세요
예스스탁입니다.
다이버전스 기준으로 MACD와 시그널의 크로스 지점으로 지정해 드립니다.
input : short(12),long(26),sig(9);
var : macdv(0),macds(0);
var : t(0),hh(0),hp(0),ll(0),lp(0);
var : hh1(0),hp1(0),ll1(0),lp1(0);
var : updiv(0),dndiv(0);
macdv = macd(short,long);
macds = ema(macdv,sig);
if CrossUp(macdv,macds) Then
{
t = 1;
hh = macdv;
hp = h;
hh1 = hh[1];
hp1 = hp[1];
//상승다이버전스
//최근 데드구간 macd최저값은 직전데드구간 MACD최저값보다 큰데
//최근 데드구간 주가최저값은 직전제드구간 주가최저값은 작으면
//updiv는 5이고 이후 매봉 1씩 감소해서 0까지 감소
if lp1 > 0 and ll > ll1 and lp < lp1 Then
{
TL_New(sDate,sTime,0,sDate,sTime,99999999999);
updiv = 5;
}
}
else if CrossDown(macdv,macds) Then
{
t = -1;
ll = macdv;
lp = l;
ll1 = ll[1];
lp1 = lp[1];
//하락다이버전스
//최근 골드구간 macd최고값은 직전골드구간 MACD최고값보다 작은데
//최근 골드구간 주가최고값은 직전골드구간 주가최고값보다 크면
//dndiv는 -5이고 이후 매봉 1씩 증가해서 0까지 증가
if hp1 > 0 and hp > hp1 and hh > hh1 Then
dnDiv = -5;
}
Else
{
#골드구간 MACD와 주가 최고가 계산
if t == 1 Then
{
if macdv > hh Then
hh = macdv;
if h > hp Then
hp = h;
}
#데드구간 MACD와 주가 최저가 계산
if t == -1 Then
{
if macdv < ll Then
ll = macdv;
if l < lp Then
lp = l;
}
#updiv는 매봉 1씩 감소해서 0까지 감소
if updiv >= 1 Then
updiv = updiv -1;
#dndiv는 매봉 1씩 증가해서 0까지 증가
if dndiv <= -1 Then
dndiv = dndiv +1;
}
plot1(updiv);
plot2(dndiv);
즐거운 하루되세요
> 요타 님이 쓴 글입니다.
> 제목 : 지표 가능 할까요?
> * 항상 많은 도움에 고맙습니다.
* 아래 기준 수식 좀 요청 드립니다
## 아래기준
지표 MACD 다이버전스 발생 여부를 얻는 수식을 알고 싶습니다.
상승 다이버전스에서 0봉(현재봉)에서 발생이면 +5
상승 다이버전스에서 1봉전에서 발생이면 +4
상승 다이버전스에서 2봉전에서 발생이면 +3
상승 다이버전스에서 3봉전에서 발생이면 +2
상승 다이버전스에서 4봉전에서 발생이면 +1
하락 다이버전스에서 0봉(현재봉)에서 발생이면 -5
하락 다이버전스에서 1봉전에서 발생이면 -4
하락 다이버전스에서 2봉전에서 발생이면 -3
하락 다이버전스에서 3봉전에서 발생이면 -2
하락 다이버전스에서 4봉전에서 발생이면 -1
합하여 추세선으로 요청 드립니다.
* 고맙습니다 좋은 하루 되십시요.