커뮤니티

디버젼스

프로필 이미지
차티스트박찬호
2020-11-28 19:22:37
960
글번호 144255
답변완료

첨부 이미지

뭐가 잘못될걸 까요? 제가 찾고싶은 지점은 가격이 하락했지만 macd값은 상승했을때, macd가 signal선을 상승돌파하는 지점을 표시하고 싶습니다. Input : shortPeriod(5), longPeriod(20), N(70); Var : MACDV(0) , MACDS(0), cnt(0), first(0), second(0), flag(0), maev_1(0), maev_2(0), past(0), ep_1(0), ep_2(0); MACDV = MACD(shortPeriod, longPeriod); MACDS= EMA(MACDV,5); //*70봉 안에서 디버젼스 찾기*// for cnt = 0 to N-1 { //*반복문 종료조건 : macd signal 선이 0선위로 올라오면*// if MACDS[cnt] > 0 Then { cnt = 1000 ; } //*최초 기준점 잡기*// If flag == 0 Then { first = MACDS[cnt]; //*기준점 이전봉에서 macd의 저점 찾기*// maev_1= Min(first[0], first[1], first[2], first[3], first[4]); } //* 이전에 골든크로스 된 지점 찾기*// if CrossUp(MACDV[cnt],MACDS[cnt]) && MACDS[cnt] < 0 && flag > 0 Then { second = MACDV[cnt]; maev_2 = Min(second[0], second[1], second[2], second[3], second[4]); if maev_2 < maev_1 Then { past = cnt; } } flag = flag+1; } ep_1 = Lowest(L,5); ep_2 = Lowest(L,5)[past]; Condition1 = ep_2 > ep_1 && maev_2 < maev_1; If Condition1 == True Then plot1(H,"매수디버젼스"); Else NoPlot(1);
검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-11-30 14:49:54

안녕하세요 예스스탁입니다. 올리신 수식으로는 내용이 정확히 파악이 되지 않습니다. 아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다. 1 시그널선이 0이하로 내려간 후 2번이상 데드구간이 생기고 최근 데드구간과 직전 데드구간을 비교해서 최근 데드구간 MACD의 최저가가가 직전 데드구간의 MACD의 최저가보다 크고 동일구간 가격(저가)은 하락했으면 표시하는 내용이면 아래와 같습니다. Input : shortPeriod(5), longPeriod(20), N(70); Var : MACDV(0), MACDS(0),T(0),UpIdx(0),cnt(0); Array : LIV[10](0),LPV[10](0),LXV[10](0); MACDV = MACD(shortPeriod, longPeriod); MACDS = EMA(MACDV,5); if MACDS > 0 Then UpIdx = Index; if crossup(MACDV,MACDS) Then { T = 1; if LPV[1] > 0 and LIV[0] > LIV[1] and LPV[0] < LPV[1] and LXV[1] > UPidx and Index < LXV[1]+70 Then plot1(H,"매수디버젼스"); } if CrossDown(MACDV,MACDS) Then { T = -1; LIV[0] = MACDV; LPV[0] = L; LXV[0] = Index; For cnt = 1 to 9 { LIV[cnt] = LIV[cnt-1][1]; LPV[cnt] = LPV[cnt-1][1]; LXV[cnt] = LXV[cnt-1][1]; } } if T == -1 Then { if MACDV < LIV[0] Then { LIV[0] = MACDV; LXV[0] = Index; } if L < LPV[0] Then { LPV[0] = L; } } 2 올리신 그림에서 데드구간 비교가 최근과 직전이 아닌 전전 데드구간입니다. 70봉 이내에 0선 이하 데드구간 중 가장 작은 것과 최근것을 비교하신 다면 아래와 같습니다. Input : shortPeriod(5), longPeriod(20), N(70); Var : MACDV(0), MACDS(0),T(0),UpIdx(0),cnt(0); Array : LIV[10](0),LPV[10](0),LXV[10](0); MACDV = MACD(shortPeriod, longPeriod); MACDS = EMA(MACDV,5); if MACDS > 0 Then UpIdx = Index; if crossup(MACDV,MACDS) Then { T = 1; if Index < LXV[1]+70 Then { var1 = 0; Var2 = 0; For cnt = 1 to 9 { if LIV[cnt] < 0 and LXV[cnt] > Upidx and Index <= LXV[cnt]+N Then { if LIV[cnt] < var1 Then { var1 = LIV[cnt]; Var2 = LPV[cnt]; } } } if var1 < 0 and LIV[0] > var1 and LPV[0] < Var2 and Index > upIdx Then plot1(H,"매수디버젼스"); } } if CrossDown(MACDV,MACDS) Then { T = -1; LIV[0] = MACDV; LPV[0] = L; LXV[0] = Index; For cnt = 1 to 9 { LIV[cnt] = LIV[cnt-1][1]; LPV[cnt] = LPV[cnt-1][1]; LXV[cnt] = LXV[cnt-1][1]; } } if T == -1 Then { if MACDV < LIV[0] Then { LIV[0] = MACDV; LXV[0] = Index; } if L < LPV[0] Then { LPV[0] = L; } } 즐거운 하루되세요 > 차티스트박찬호 님이 쓴 글입니다. > 제목 : 디버젼스 > 뭐가 잘못될걸 까요? 제가 찾고싶은 지점은 가격이 하락했지만 macd값은 상승했을때, macd가 signal선을 상승돌파하는 지점을 표시하고 싶습니다. Input : shortPeriod(5), longPeriod(20), N(70); Var : MACDV(0) , MACDS(0), cnt(0), first(0), second(0), flag(0), maev_1(0), maev_2(0), past(0), ep_1(0), ep_2(0); MACDV = MACD(shortPeriod, longPeriod); MACDS= EMA(MACDV,5); //*70봉 안에서 디버젼스 찾기*// for cnt = 0 to N-1 { //*반복문 종료조건 : macd signal 선이 0선위로 올라오면*// if MACDS[cnt] > 0 Then { cnt = 1000 ; } //*최초 기준점 잡기*// If flag == 0 Then { first = MACDS[cnt]; //*기준점 이전봉에서 macd의 저점 찾기*// maev_1= Min(first[0], first[1], first[2], first[3], first[4]); } //* 이전에 골든크로스 된 지점 찾기*// if CrossUp(MACDV[cnt],MACDS[cnt]) && MACDS[cnt] < 0 && flag > 0 Then { second = MACDV[cnt]; maev_2 = Min(second[0], second[1], second[2], second[3], second[4]); if maev_2 < maev_1 Then { past = cnt; } } flag = flag+1; } ep_1 = Lowest(L,5); ep_2 = Lowest(L,5)[past]; Condition1 = ep_2 > ep_1 && maev_2 < maev_1; If Condition1 == True Then plot1(H,"매수디버젼스"); Else NoPlot(1);