커뮤니티

문의드립니다.

프로필 이미지
부양가족
2016-02-25 16:47:59
129
글번호 95801
답변완료
성실한 답변 감사합니다. 아래지표식에서 나타내어지는 지표값을 각구간별 최저가격대로 변경하고싶습니다. 매번 감사합니다. input : N(120),구간수(12),굵기(3); var : HH(0),LL(0),Hi(0),Li(0),cnt(0),diff(0),count(0),mid(0); Array : RR[12](0),VV[12](0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0); #구간산정 #1일전~~N일전까지의 최고가와 인덱스 저장 HH = H[1]; Li = 1; for cnt = 1 to N{ if H[cnt] > HH Then{ HH = H[cnt]; Hi = cnt; } } #최고가 이후에 최저가와 인덱스 저장 LL = L[1]; Li = 1; for cnt = 1 to Hi{ if L[cnt] < LL Then{ LL = L[cnt]; Li = cnt; } } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #최고가와 최고가 이후 최저가 봉들에서만 #중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = Li to Hi{ mid = (H[count]+L[count])/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+V[count]; } } For cnt1 = 0 to 11 { tempmax = -99999999; For cnt2 = 0 to 11 { if ( VV[cnt2] > tempmax ) then { tempmax = VV[cnt2]; tempIndex = cnt2; } } NTHVALUE[cnt1] = tempmax; NTHidx[cnt1] = tempIndex; VV[tempIndex] = -99999999; } TL_Delete(TL1); TL1 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); Text_Delete(tx1); Text_Delete(tx2); # Text_Delete(tx3); tx1 = Text_New(sdate,stime,RR[NTHidx[0]],"1순위"); tx2 = Text_New(sdate,stime,RR[NTHidx[1]],"2순위"); # tx3 = Text_New(sdate,stime,RR[NTHidx[2]],"3순위"); Text_SetStyle(tx1,2,0); Text_SetStyle(tx2,2,0); # Text_SetStyle(tx3,2,0);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-02-26 14:09:23

안녕하세요 예스스탁입니다. input : N(120),구간수(12),굵기(3); var : HH(0),LL(0),Hi(0),Li(0),cnt(0),diff(0),count(0),mid(0); Array : RR[12](0),VV[12](0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0); #구간산정 #1일전~~N일전까지의 최고가와 인덱스 저장 HH = H[1]; Li = 1; for cnt = 1 to N{ if H[cnt] > HH Then{ HH = H[cnt]; Hi = cnt; } } #최고가 이후에 최저가와 인덱스 저장 LL = L[1]; Li = 1; for cnt = 1 to Hi{ if L[cnt] < LL Then{ LL = L[cnt]; Li = cnt; } } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #최고가와 최고가 이후 최저가 봉들에서만 #하단값 기준으로 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 1 to 12{ VV[cnt] = 0; for count = Li to Hi{ mid = (H[count]+L[count])/2; if RR[cnt-1] >= mid and mid > RR[cnt] Then VV[cnt] = VV[cnt]+V[count]; } } For cnt1 = 0 to 11 { tempmax = -99999999; For cnt2 = 1 to 12 { if ( VV[cnt2] > tempmax ) then { tempmax = VV[cnt2]; tempIndex = cnt2; } } NTHVALUE[cnt1] = tempmax; NTHidx[cnt1] = tempIndex; VV[tempIndex] = -99999999; } TL_Delete(TL1); TL1 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); Text_Delete(tx1); Text_Delete(tx2); # Text_Delete(tx3); tx1 = Text_New(sdate,stime,RR[NTHidx[0]],"1순위"); tx2 = Text_New(sdate,stime,RR[NTHidx[1]],"2순위"); # tx3 = Text_New(sdate,stime,RR[NTHidx[2]],"3순위"); Text_SetStyle(tx1,2,0); Text_SetStyle(tx2,2,0); # Text_SetStyle(tx3,2,0); 즐거운 하루되세요 > 부양가족 님이 쓴 글입니다. > 제목 : 문의드립니다. > 성실한 답변 감사합니다. 아래지표식에서 나타내어지는 지표값을 각구간별 최저가격대로 변경하고싶습니다. 매번 감사합니다. input : N(120),구간수(12),굵기(3); var : HH(0),LL(0),Hi(0),Li(0),cnt(0),diff(0),count(0),mid(0); Array : RR[12](0),VV[12](0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0); #구간산정 #1일전~~N일전까지의 최고가와 인덱스 저장 HH = H[1]; Li = 1; for cnt = 1 to N{ if H[cnt] > HH Then{ HH = H[cnt]; Hi = cnt; } } #최고가 이후에 최저가와 인덱스 저장 LL = L[1]; Li = 1; for cnt = 1 to Hi{ if L[cnt] < LL Then{ LL = L[cnt]; Li = cnt; } } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #최고가와 최고가 이후 최저가 봉들에서만 #중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = Li to Hi{ mid = (H[count]+L[count])/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+V[count]; } } For cnt1 = 0 to 11 { tempmax = -99999999; For cnt2 = 0 to 11 { if ( VV[cnt2] > tempmax ) then { tempmax = VV[cnt2]; tempIndex = cnt2; } } NTHVALUE[cnt1] = tempmax; NTHidx[cnt1] = tempIndex; VV[tempIndex] = -99999999; } TL_Delete(TL1); TL1 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); Text_Delete(tx1); Text_Delete(tx2); # Text_Delete(tx3); tx1 = Text_New(sdate,stime,RR[NTHidx[0]],"1순위"); tx2 = Text_New(sdate,stime,RR[NTHidx[1]],"2순위"); # tx3 = Text_New(sdate,stime,RR[NTHidx[2]],"3순위"); Text_SetStyle(tx1,2,0); Text_SetStyle(tx2,2,0); # Text_SetStyle(tx3,2,0);