커뮤니티

부탁 드립니다.

프로필 이미지
yes
2017-09-29 12:14:11
172
글번호 113199
답변완료
도움에 감사 드립니다. 1) 당일의의 해선 시간(07:00)부터 지정한 시각 까지 최고점과 최저점(진폭)을 계산한다. 2) 위와 같은 방법으로 1일전의 진폭 2일전의 진폭 3일전의 진폭 . . . n일전의 진폭에서 3) 위의 계산에서 n일 기간 동안의 진폭의 평균 n일 기간 동안에서 최대 진폭 n일 기간 동안에서 최소 진폭 금일의 진폭을 text로 나타 내고 싶습니다. 미리 감사 드립니다. 비슷한 유형으로 작성해주신 참고수식) input : 시작요일(1),시작시간(070000); input : 끝요일(5),끝시간(060000); input : P(20); var : Tcond(false),Hv(0),Lv(0),sum(0),mav(0),cnt(0); Array : HH[100](0),LL[100](0); if DayOfWeek(sdate) == 시작요일 and ((sdate != sdate[1] and stime == 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간)) Then{ Tcond = true; HH[0] = H; LL[0] = L; for cnt = 1 to 99{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if DayOfWeek(sdate) == 끝요일 and ((sdate != sdate[1] and stime == 끝시간) or (sdate == sdate[1] and stime >= 끝시간 and stime[1] < 끝시간)) Then{ Tcond = False; } if Tcond == true Then{ if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; } if HH[P] > 0 and LL[P] > 0 then{ HV = HH[0]-LL[0]; LV = HH[0]-LL[0]; sum = 0; for cnt = 0 to P-1{ sum = sum + (HH[cnt]-LL[cnt]); if (HH[cnt]-LL[cnt]) > HV Then HV = (HH[cnt]-LL[cnt]); if (HH[cnt]-LL[cnt]) < LV Then LV = (HH[cnt]-LL[cnt]); } mav = sum/P; Text_Delete(var1); var1 = Text_New(sdate[100],stime[100],H+PriceScale*2, "최대 : "+NumToStr(HV,0)+NewLine+ "최소 : "+NumToStr(LV,0)+NewLine+ "평균 : "+NumToStr(mav,0)+NewLine+ "현재 : "+NumToStr((HH[cnt]-LL[cnt]),0)); Text_SetStyle(var1,2,2); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-09-29 16:20:16

안녕하세요 예스스탁입니다. input : 시작시간(070000),끝시간(050000); input : P(20); var : Tcond(false),Hv(0),Lv(0),sum(0),mav(0),cnt(0); Array : HH[100](0),LL[100](0); if ((sdate != sdate[1] and stime == 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간)) Then{ Tcond = true; HH[0] = H; LL[0] = L; for cnt = 1 to 99{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if((sdate != sdate[1] and stime == 끝시간) or (sdate == sdate[1] and stime >= 끝시간 and stime[1] < 끝시간)) Then{ Tcond = False; } if Tcond == true Then{ if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; } if HH[P] > 0 and LL[P] > 0 then{ HV = HH[0]-LL[0]; LV = HH[0]-LL[0]; sum = 0; for cnt = 0 to P-1{ sum = sum + (HH[cnt]-LL[cnt]); if (HH[cnt]-LL[cnt]) > HV Then HV = (HH[cnt]-LL[cnt]); if (HH[cnt]-LL[cnt]) < LV Then LV = (HH[cnt]-LL[cnt]); } mav = sum/P; Text_Delete(var1); var1 = Text_New(sdate[100],stime[100],H+PriceScale*2, "최대 : "+NumToStr(HV,0)+NewLine+ "최소 : "+NumToStr(LV,0)+NewLine+ "평균 : "+NumToStr(mav,0)+NewLine+ "현재 : "+NumToStr((HH[cnt]-LL[cnt]),0)); Text_SetStyle(var1,2,2); } 즐거운 하루되세요 > yes 님이 쓴 글입니다. > 제목 : 부탁 드립니다. > 도움에 감사 드립니다. 1) 당일의의 해선 시간(07:00)부터 지정한 시각 까지 최고점과 최저점(진폭)을 계산한다. 2) 위와 같은 방법으로 1일전의 진폭 2일전의 진폭 3일전의 진폭 . . . n일전의 진폭에서 3) 위의 계산에서 n일 기간 동안의 진폭의 평균 n일 기간 동안에서 최대 진폭 n일 기간 동안에서 최소 진폭 금일의 진폭을 text로 나타 내고 싶습니다. 미리 감사 드립니다. 비슷한 유형으로 작성해주신 참고수식) input : 시작요일(1),시작시간(070000); input : 끝요일(5),끝시간(060000); input : P(20); var : Tcond(false),Hv(0),Lv(0),sum(0),mav(0),cnt(0); Array : HH[100](0),LL[100](0); if DayOfWeek(sdate) == 시작요일 and ((sdate != sdate[1] and stime == 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간)) Then{ Tcond = true; HH[0] = H; LL[0] = L; for cnt = 1 to 99{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if DayOfWeek(sdate) == 끝요일 and ((sdate != sdate[1] and stime == 끝시간) or (sdate == sdate[1] and stime >= 끝시간 and stime[1] < 끝시간)) Then{ Tcond = False; } if Tcond == true Then{ if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; } if HH[P] > 0 and LL[P] > 0 then{ HV = HH[0]-LL[0]; LV = HH[0]-LL[0]; sum = 0; for cnt = 0 to P-1{ sum = sum + (HH[cnt]-LL[cnt]); if (HH[cnt]-LL[cnt]) > HV Then HV = (HH[cnt]-LL[cnt]); if (HH[cnt]-LL[cnt]) < LV Then LV = (HH[cnt]-LL[cnt]); } mav = sum/P; Text_Delete(var1); var1 = Text_New(sdate[100],stime[100],H+PriceScale*2, "최대 : "+NumToStr(HV,0)+NewLine+ "최소 : "+NumToStr(LV,0)+NewLine+ "평균 : "+NumToStr(mav,0)+NewLine+ "현재 : "+NumToStr((HH[cnt]-LL[cnt]),0)); Text_SetStyle(var1,2,2); }