커뮤니티

아래 70449 재질문 답변 부탁드립니다 (내용 무)

프로필 이미지
골드드래곤
2020-12-29 17:29:59
671
글번호 144981
답변완료
.
지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2020-12-30 12:50:12

안녕하세요 예스스탁입니다. 1 기존식은 차트 전체데이타를 이용해 파동선을 그리고 당일 발생한 고점과 저점을 기준으로 2%이상 하락을 가지는 하락구간만 대상으로 합니다. 추세선 자체가 당일 데이타로만 그려지는 내용은 아닙니다. 2 length는 고점과 저점판단의 기준이로 지정한 봉수의 최고가와 최저가를 갱신이 기준이됩니다. 종가사용여부는 고저점판단을 종가로만 할것인지 고가와 저가를 사용할것인지 지정하는 부분입니다 0이면 고가와 저가. 1이면 종가를 사용합니다. 3 고저점을 %로 지정하는 식 작성해 드립니다.' 해당 내용 세부적으로 맞춰드리기에는 시간이 많이 소모가 되어 작성해 드리기는 어렵습니다. 아래식 이용하셔서 수정보완해 식 완성하시기 바랍니다. Input:전환율(0.10); Var:j(0), upTr(100), dnTr(-100), upRate(0), dnRate(0), trnd(0), date11(0), date12(0), time11(0), time12(0), TL1(0), TL11(0), date21(0), date22(0), time21(0), time22(0), TL2(0), date31(0), date32(0), time31(0), time32(0), TL3(0), 고점(0),저점(0),폭(0); Array : hiVal[2](0), loVal[2](0), hiBar[2](0), loBar[2](0); upRate = 1 + (전환율/100); dnRate = 1 - (전환율/100); loBar[1] = loBar[1] + 1; hiBar[1] = hiBar[1] + 1; //====================================================== if Index == 0 or DayIndex == 0 then { if trnd == upTr then { date11 = date[loBar[1]]; //추세선 시작일 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; } //추세선 시작가격 else { date11 = date[hiBar[1]]; //추세선 시작일 time11 = stime[hiBar[1]]; //추세선 시작시간 Value11 = hiVal[1]; //추세선 시작가격 } date12 = date[1]; //추세선 종료일 time12 = stime[1]; //추세선 종료시간 Value12 = C[1]; //추세선 종료가격 // if TL1 > TL1[1] then { TL1 = TL_New(date11, time11, Value11, date12, time12, Value12); //전일 마지막 zizg 선 hiVal[1] = O; hiBar[1] = 0; loVal[1] = O; loBar[1] = 0; hiVal[0] = H; //h; //C; hiBar[0] = 0; loVal[0] = L; //L; //C; loBar[0] = 0; trnd = 0; if hiVal[1] * dnRate > L then { trnd = dnTr; } else if loVal[1] * upRate < H then { trnd = upTr; } } else { if hiVal[0] < H then { hiVal[0] = h; //C; hiBar[0] = 0; } else { hiBar[0] = hiBar[0] + 1; } if loVal[0] > l then { loVal[0] = L; //C; loBar[0] = 0; } else { loBar[0] = loBar[0] + 1; } if trnd != dnTr && hiVal[0] * dnRate > C then { trnd = dnTr; } else if trnd != upTr && loVal[0] * upRate < C then { trnd = upTr; } //=================================== if trnd[1] != dnTr and trnd == dnTr then //상승추세였다가 하락추세로 바뀌었다면 { hiVal[1] = hiVal[0]; //새로운 전고점에 현재 고점을 대입 hiBar[1] = hiBar[0]; hiVal[0] = H; //h; //C; //전고점이 확정되었으므로 전고점 이후 최고가는 현재봉의 고가 hiBar[0] = 0; loVal[0] = L; //L; //C; loBar[0] = 0; //전고점이 새로 생긴 것이니까 전저점에서 전고점까지 추세선을 긋는다. date11 = date[loBar[1]]; //추세선 시작일. 전저점의 날짜 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; //추세선 시작가격 date12 = date[hiBar[1]]; //추세선 종료일. 전고점의 날짜 time12 = stime[hiBar[1]]; //추세선 종료시간 Value12 = hiVal[1]; //추세선 종료가격 TL2 = TL_New(date11, time11, Value11, date12, time12, Value12); // (상승 zizg) TL_SetColor(tL2,RED); } //------------------------------------------------------------------------------------- if trnd[1] == dnTr and trnd == dnTr and //추세는 하락 상태에서 바뀌지 않았는데 hiVal[1] < hiVal[0] and //전고점보다 더 높은 고점이 출현했다면 hiVal[0] * dnRate > H then { hiVal[1] = hiVal[0]; //전고점을 현재의 고점으로 바꿔준다. hiBar[1] = hiBar[0]; hiVal[0] = H; //h; //C; hiBar[0] = 0; loVal[0] = L; //L; //C; loBar[0] = 0; //전고점이 추가된 게 아니고 바뀐 것이므로 종료일,종료시간,종료가격만 바꿔준다. date12 = date[hiBar[1]]; //추세선 종료일 time12 = stime[hiBar[1]]; Value12 = hiVal[1]; //0 TL_SetEnd(TL1, date12,time12,Value12); //TL_SetEnd는 기존추세선의 종료지점을 변경해주는 추세선 함수. //TL_Delete 함수를 써서 직전의 추세선을 지우고 다시 TL_New로 추세선을 추가해도 된다. } if trnd[1] != upTr and trnd == upTr then { //추세가 하락에서 상승으로 바뀌었을 경우 loVal[1] = loVal[0]; loBar[1] = loBar[0]; loVal[0] = L; //L; //C; loBar[0] = 0; hiVal[0] = H; //h; //C; hiBar[0] = 0; date11 = date[loBar[1]]; time11 = stime[loBar[1]]; Value11 = loVal[1]; date12 = date[hiBar[1]]; time12 = stime[hiBar[1]]; Value12 = hiVal[1]; TL2 = TL_New(date11, time11, Value11, date12, time12, Value12); //(하락zizg) TL_SetColor(tL2,BLUE); } //--------------------------------------------------------------------------------- if trnd[1] == upTr and trnd == upTr and //추세는 상승을 유지하고 있는데 loVal[1] > loVal[0] and //전저점보다 낮은 저가가 출현했다면 loVal[0] * upRate < H then { loVal[1] = loVal[0]; //직전의 전저점만 바꿔준다. loBar[1] = loBar[0]; loVal[0] = L; //L; //C; loBar[0] = 0; hiVal[0] = H; //h; //C; hiBar[0] = 0; date12 = date[loBar[1]]; time12 = stime[loBar[1]]; Value12 = loVal[1]; TL_SetEnd(TL1, date12, time12, Value12); } //TL_SetColor(TL1,blue); // //=================당일 마지막 zizg 선 ================ } if trnd == upTr then { date21 = date[loBar[1]]; //추세선 시작일 time21 = stime[loBar[1]]; //추세선 시작시간 Value21 = loVal[1]; } //추세선 시작가격 else { date21 = date[hiBar[1]]; //추세선 시작일 time21 = stime[hiBar[1]]; //추세선 시작시간 Value21 = hiVal[1]; //추세선 시작가격 } date22 = date[0]; //추세선 종료일 time22 = stime[0]; //추세선 종료시간 Value22 = C[0]; //추세선 종료가격 TL_Delete(TL1); TL1 = TL_New(date21, time21, Value21, date22, time22, Value22); //당일 마지막 zizg 선 if sdate == sDate[1] Then { if trnd != trnd[1] and trnd == uptr Then { 고점 = Hival[1]; 저점 = Loval[1]; 폭 = abs(고점-저점); } } Plot1(고점); Plot2(저점); Plot3(폭); 새해 좋은일만 가득하시기 바랍니다. > 골드드래곤 님이 쓴 글입니다. > 제목 : 아래 70449 재질문 답변 부탁드립니다 (내용 무) > .
프로필 이미지

골드드래곤

2021-01-11 14:45:02

안녕하세요. 다시 만들어 주신 수식을 적용했더니 위 그림1 으로 출력이 되네요. < 답변에서 > 고저점을 %로 지정하는 식 작성해 드립니다.' 해당 내용 세부적으로 맞춰드리기에는 시간이 많이 소모가 되어 작성해 드리기는 어렵습니다. 아래식 이용하셔서 수정보완해 식 완성하시기 바랍니다. 제가 수정보완할 능력이 안되어서 정말 난감합니다. 고민 끝에 위 두번째 그림2 수식은 어렵지 않을 걸로 생각이 됩니다. 수식 부탁드립니다. 1. 분봉차트에서 당일 장시작 후의 고점1, 저점1, 폭 지표 2. 일봉차트에서 200봉에서의 고점1, 저점1, 폭 지표 수고하세요. 꾸벅 ~ ======================================== > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 아래 70449 재질문 답변 부탁드립니다 (내용 무) > 안녕하세요 예스스탁입니다. 1 기존식은 차트 전체데이타를 이용해 파동선을 그리고 당일 발생한 고점과 저점을 기준으로 2%이상 하락을 가지는 하락구간만 대상으로 합니다. 추세선 자체가 당일 데이타로만 그려지는 내용은 아닙니다. 2 length는 고점과 저점판단의 기준이로 지정한 봉수의 최고가와 최저가를 갱신이 기준이됩니다. 종가사용여부는 고저점판단을 종가로만 할것인지 고가와 저가를 사용할것인지 지정하는 부분입니다 0이면 고가와 저가. 1이면 종가를 사용합니다. 3 고저점을 %로 지정하는 식 작성해 드립니다.' 해당 내용 세부적으로 맞춰드리기에는 시간이 많이 소모가 되어 작성해 드리기는 어렵습니다. 아래식 이용하셔서 수정보완해 식 완성하시기 바랍니다. Input:전환율(0.10); Var:j(0), upTr(100), dnTr(-100), upRate(0), dnRate(0), trnd(0), date11(0), date12(0), time11(0), time12(0), TL1(0), TL11(0), date21(0), date22(0), time21(0), time22(0), TL2(0), date31(0), date32(0), time31(0), time32(0), TL3(0), 고점(0),저점(0),폭(0); Array : hiVal[2](0), loVal[2](0), hiBar[2](0), loBar[2](0); upRate = 1 + (전환율/100); dnRate = 1 - (전환율/100); loBar[1] = loBar[1] + 1; hiBar[1] = hiBar[1] + 1; //====================================================== if Index == 0 or DayIndex == 0 then { if trnd == upTr then { date11 = date[loBar[1]]; //추세선 시작일 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; } //추세선 시작가격 else { date11 = date[hiBar[1]]; //추세선 시작일 time11 = stime[hiBar[1]]; //추세선 시작시간 Value11 = hiVal[1]; //추세선 시작가격 } date12 = date[1]; //추세선 종료일 time12 = stime[1]; //추세선 종료시간 Value12 = C[1]; //추세선 종료가격 // if TL1 > TL1[1] then { TL1 = TL_New(date11, time11, Value11, date12, time12, Value12); //전일 마지막 zizg 선 hiVal[1] = O; hiBar[1] = 0; loVal[1] = O; loBar[1] = 0; hiVal[0] = H; //h; //C; hiBar[0] = 0; loVal[0] = L; //L; //C; loBar[0] = 0; trnd = 0; if hiVal[1] * dnRate > L then { trnd = dnTr; } else if loVal[1] * upRate < H then { trnd = upTr; } } else { if hiVal[0] < H then { hiVal[0] = h; //C; hiBar[0] = 0; } else { hiBar[0] = hiBar[0] + 1; } if loVal[0] > l then { loVal[0] = L; //C; loBar[0] = 0; } else { loBar[0] = loBar[0] + 1; } if trnd != dnTr && hiVal[0] * dnRate > C then { trnd = dnTr; } else if trnd != upTr && loVal[0] * upRate < C then { trnd = upTr; } //=================================== if trnd[1] != dnTr and trnd == dnTr then //상승추세였다가 하락추세로 바뀌었다면 { hiVal[1] = hiVal[0]; //새로운 전고점에 현재 고점을 대입 hiBar[1] = hiBar[0]; hiVal[0] = H; //h; //C; //전고점이 확정되었으므로 전고점 이후 최고가는 현재봉의 고가 hiBar[0] = 0; loVal[0] = L; //L; //C; loBar[0] = 0; //전고점이 새로 생긴 것이니까 전저점에서 전고점까지 추세선을 긋는다. date11 = date[loBar[1]]; //추세선 시작일. 전저점의 날짜 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; //추세선 시작가격 date12 = date[hiBar[1]]; //추세선 종료일. 전고점의 날짜 time12 = stime[hiBar[1]]; //추세선 종료시간 Value12 = hiVal[1]; //추세선 종료가격 TL2 = TL_New(date11, time11, Value11, date12, time12, Value12); // (상승 zizg) TL_SetColor(tL2,RED); } //------------------------------------------------------------------------------------- if trnd[1] == dnTr and trnd == dnTr and //추세는 하락 상태에서 바뀌지 않았는데 hiVal[1] < hiVal[0] and //전고점보다 더 높은 고점이 출현했다면 hiVal[0] * dnRate > H then { hiVal[1] = hiVal[0]; //전고점을 현재의 고점으로 바꿔준다. hiBar[1] = hiBar[0]; hiVal[0] = H; //h; //C; hiBar[0] = 0; loVal[0] = L; //L; //C; loBar[0] = 0; //전고점이 추가된 게 아니고 바뀐 것이므로 종료일,종료시간,종료가격만 바꿔준다. date12 = date[hiBar[1]]; //추세선 종료일 time12 = stime[hiBar[1]]; Value12 = hiVal[1]; //0 TL_SetEnd(TL1, date12,time12,Value12); //TL_SetEnd는 기존추세선의 종료지점을 변경해주는 추세선 함수. //TL_Delete 함수를 써서 직전의 추세선을 지우고 다시 TL_New로 추세선을 추가해도 된다. } if trnd[1] != upTr and trnd == upTr then { //추세가 하락에서 상승으로 바뀌었을 경우 loVal[1] = loVal[0]; loBar[1] = loBar[0]; loVal[0] = L; //L; //C; loBar[0] = 0; hiVal[0] = H; //h; //C; hiBar[0] = 0; date11 = date[loBar[1]]; time11 = stime[loBar[1]]; Value11 = loVal[1]; date12 = date[hiBar[1]]; time12 = stime[hiBar[1]]; Value12 = hiVal[1]; TL2 = TL_New(date11, time11, Value11, date12, time12, Value12); //(하락zizg) TL_SetColor(tL2,BLUE); } //--------------------------------------------------------------------------------- if trnd[1] == upTr and trnd == upTr and //추세는 상승을 유지하고 있는데 loVal[1] > loVal[0] and //전저점보다 낮은 저가가 출현했다면 loVal[0] * upRate < H then { loVal[1] = loVal[0]; //직전의 전저점만 바꿔준다. loBar[1] = loBar[0]; loVal[0] = L; //L; //C; loBar[0] = 0; hiVal[0] = H; //h; //C; hiBar[0] = 0; date12 = date[loBar[1]]; time12 = stime[loBar[1]]; Value12 = loVal[1]; TL_SetEnd(TL1, date12, time12, Value12); } //TL_SetColor(TL1,blue); // //=================당일 마지막 zizg 선 ================ } if trnd == upTr then { date21 = date[loBar[1]]; //추세선 시작일 time21 = stime[loBar[1]]; //추세선 시작시간 Value21 = loVal[1]; } //추세선 시작가격 else { date21 = date[hiBar[1]]; //추세선 시작일 time21 = stime[hiBar[1]]; //추세선 시작시간 Value21 = hiVal[1]; //추세선 시작가격 } date22 = date[0]; //추세선 종료일 time22 = stime[0]; //추세선 종료시간 Value22 = C[0]; //추세선 종료가격 TL_Delete(TL1); TL1 = TL_New(date21, time21, Value21, date22, time22, Value22); //당일 마지막 zizg 선 if sdate == sDate[1] Then { if trnd != trnd[1] and trnd == uptr Then { 고점 = Hival[1]; 저점 = Loval[1]; 폭 = abs(고점-저점); } } Plot1(고점); Plot2(저점); Plot3(폭); 새해 좋은일만 가득하시기 바랍니다. > 골드드래곤 님이 쓴 글입니다. > 제목 : 아래 70449 재질문 답변 부탁드립니다 (내용 무) > .