커뮤니티

문의드립니다.

프로필 이미지
부양가족
2016-02-23 15:54:25
188
글번호 95709
답변완료

첨부 이미지

과장님 .. 오늘 만들어주신 검색식과 어제만들어주신 추세선과 차이가 나는듯합니다. 해서 원하는 종목이 검색이 안되네요. 시가가 1순위에 상하 3.5% 근접한 종목 검색식으로 변경했는데 검토부탁드립니다. 기간은 120봉이고 그림의 종목은 칩스앤미디어입니다. 그리고 어제 만들어주신 추세식중 지정된 봉수내에 최고가(h)일때부터 계산되도록 수정 부탁드립니다. 감사합니다. ### 추세식(3순위는 제외했습니다)---선굵기 변경은 적용이 않되네요~ input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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_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_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); } 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),per(2.5),per1(10); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if o <= RR[NTHidx[0]]*(1+Per/100) and o >= RR[NTHidx[0]]*(1-Per/100) Then find(1);
검색
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2016-02-23 17:10:23

안녕하세요 예스스탁입니다. 수식이 당일기준으로 1~N개봉 계산값이었습니다. 차트의 추세선과 텍스트는 완성봉에서만 출력되므로 전일기준 1~N개봉전 값이었습니다. 식 수정했습니다. 지표식에서 분봉이하만 굵기가 지정되도록 되어 있어 일봉차트 이상일때도 적용되게 수정했습니다. 1 종목검색식 input : N(120),구간수(12),per(2.5); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0),AA(0),BB(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } AA = RR[NTHidx[0]]; if date != date[1] Then BB = AA[1]; if o <= BB*(1+Per/100) and o >= BB*(1-Per/100) Then find(1); 2. input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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순위에 상하 3.5% 근접한 종목 검색식으로 변경했는데 검토부탁드립니다. 기간은 120봉이고 그림의 종목은 칩스앤미디어입니다. 그리고 어제 만들어주신 추세식중 지정된 봉수내에 최고가(h)일때부터 계산되도록 수정 부탁드립니다. 감사합니다. ### 추세식(3순위는 제외했습니다)---선굵기 변경은 적용이 않되네요~ input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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_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_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); } 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),per(2.5),per1(10); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if o <= RR[NTHidx[0]]*(1+Per/100) and o >= RR[NTHidx[0]]*(1-Per/100) Then find(1);
프로필 이미지

부양가족

2016-02-24 08:54:37

수정해 주셔서 감사합니다. 요청사항중 누락되부분과 추가적인부분이 있어서..재요청드립니다. 1. n봉내 최고점일때부터 1봉전까지 계산된 추세지표식 2. n봉내 최고점부터 이후 n봉내 최저점까지만 계산된 추세지표식 3. 1,2번과 같은 조건의 검색식 매번 성의있게 답변해 주셔서 너무 감사합니다. Re : 문의드립니다. > 안녕하세요 예스스탁입니다. 수식이 당일기준으로 1~N개봉 계산값이었습니다. 차트의 추세선과 텍스트는 완성봉에서만 출력되므로 전일기준 1~N개봉전 값이었습니다. 식 수정했습니다. 지표식에서 분봉이하만 굵기가 지정되도록 되어 있어 일봉차트 이상일때도 적용되게 수정했습니다. 1 종목검색식 input : N(120),구간수(12),per(2.5); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0),AA(0),BB(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } AA = RR[NTHidx[0]]; if date != date[1] Then BB = AA[1]; if o <= BB*(1+Per/100) and o >= BB*(1-Per/100) Then find(1); 2. input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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순위에 상하 3.5% 근접한 종목 검색식으로 변경했는데 검토부탁드립니다. 기간은 120봉이고 그림의 종목은 칩스앤미디어입니다. 그리고 어제 만들어주신 추세식중 지정된 봉수내에 최고가(h)일때부터 계산되도록 수정 부탁드립니다. 감사합니다. ### 추세식(3순위는 제외했습니다)---선굵기 변경은 적용이 않되네요~ input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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_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_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); } 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),per(2.5),per1(10); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if o <= RR[NTHidx[0]]*(1+Per/100) and o >= RR[NTHidx[0]]*(1-Per/100) Then find(1);
프로필 이미지

예스스탁 예스스탁 답변

2016-02-24 09:15:46

안녕하세요 예스스탁입니다. 1. input : N(120),구간수(12),굵기(3); var : HH(0),LL(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]; LL = L[1]; for cnt = 1 to N{ if H[cnt] > HH Then HH = H[cnt]; if L[cnt] < LL Then LL = L[cnt]; } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ 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); 2. input : N(120),구간수(12),per(2.5); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0),AA(0),BB(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = H[1]; LL = L[1]; for cnt = 1 to N{ if H[cnt] > HH Then HH = H[cnt]; if L[cnt] < LL Then LL = L[cnt]; } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ 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; } AA = RR[NTHidx[0]]; if date != date[1] Then BB = AA[1]; if o <= BB*(1+Per/100) and o >= BB*(1-Per/100) Then find(1); 즐거운 하루되세요 > 부양가족 님이 쓴 글입니다. > 제목 : Re : Re : 문의드립니다. > 수정해 주셔서 감사합니다. 요청사항중 누락되부분과 추가적인부분이 있어서..재요청드립니다. 1. n봉내 최고점일때부터 1봉전까지 계산된 추세지표식 2. n봉내 최고점부터 이후 n봉내 최저점까지만 계산된 추세지표식 3. 1,2번과 같은 조건의 검색식 매번 성의있게 답변해 주셔서 너무 감사합니다. Re : 문의드립니다. > 안녕하세요 예스스탁입니다. 수식이 당일기준으로 1~N개봉 계산값이었습니다. 차트의 추세선과 텍스트는 완성봉에서만 출력되므로 전일기준 1~N개봉전 값이었습니다. 식 수정했습니다. 지표식에서 분봉이하만 굵기가 지정되도록 되어 있어 일봉차트 이상일때도 적용되게 수정했습니다. 1 종목검색식 input : N(120),구간수(12),per(2.5); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0),AA(0),BB(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } AA = RR[NTHidx[0]]; if date != date[1] Then BB = AA[1]; if o <= BB*(1+Per/100) and o >= BB*(1-Per/100) Then find(1); 2. input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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순위에 상하 3.5% 근접한 종목 검색식으로 변경했는데 검토부탁드립니다. 기간은 120봉이고 그림의 종목은 칩스앤미디어입니다. 그리고 어제 만들어주신 추세식중 지정된 봉수내에 최고가(h)일때부터 계산되도록 수정 부탁드립니다. 감사합니다. ### 추세식(3순위는 제외했습니다)---선굵기 변경은 적용이 않되네요~ input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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_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_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); } 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),per(2.5),per1(10); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if o <= RR[NTHidx[0]]*(1+Per/100) and o >= RR[NTHidx[0]]*(1-Per/100) Then find(1);
프로필 이미지

예스스탁 예스스탁 답변

2016-02-24 11:12:11

안녕하세요 예스스탁입니다. 기존수식은 N봉 모두를 대상으로 하는 식이었습니다. 1 최고가에서 1봉전 까지 1-1 지표식 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 = 1 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-2 종목검색식 input : N(120),구간수(12),per(2.5); 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),AA(0),BB(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 = 1 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; } AA = RR[NTHidx[0]]; if date != date[1] Then BB = AA[1]; if o <= BB*(1+Per/100) and o >= BB*(1-Per/100) Then find(1); 2. 최고가에서 최고가 이후 최저가 까지 2-1지표식 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); 2 종목검색식 input : N(120),구간수(12),per(2.5); 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),AA(0),BB(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; } AA = RR[NTHidx[0]]; if date != date[1] Then BB = AA[1]; if o <= BB*(1+Per/100) and o >= BB*(1-Per/100) Then find(1); 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 문의드립니다. > 안녕하세요 예스스탁입니다. 1. input : N(120),구간수(12),굵기(3); var : HH(0),LL(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]; LL = L[1]; for cnt = 1 to N{ if H[cnt] > HH Then HH = H[cnt]; if L[cnt] < LL Then LL = L[cnt]; } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ 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); 2. input : N(120),구간수(12),per(2.5); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0),AA(0),BB(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = H[1]; LL = L[1]; for cnt = 1 to N{ if H[cnt] > HH Then HH = H[cnt]; if L[cnt] < LL Then LL = L[cnt]; } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ 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; } AA = RR[NTHidx[0]]; if date != date[1] Then BB = AA[1]; if o <= BB*(1+Per/100) and o >= BB*(1-Per/100) Then find(1); 즐거운 하루되세요 > 부양가족 님이 쓴 글입니다. > 제목 : Re : Re : 문의드립니다. > 수정해 주셔서 감사합니다. 요청사항중 누락되부분과 추가적인부분이 있어서..재요청드립니다. 1. n봉내 최고점일때부터 1봉전까지 계산된 추세지표식 2. n봉내 최고점부터 이후 n봉내 최저점까지만 계산된 추세지표식 3. 1,2번과 같은 조건의 검색식 매번 성의있게 답변해 주셔서 너무 감사합니다. Re : 문의드립니다. > 안녕하세요 예스스탁입니다. 수식이 당일기준으로 1~N개봉 계산값이었습니다. 차트의 추세선과 텍스트는 완성봉에서만 출력되므로 전일기준 1~N개봉전 값이었습니다. 식 수정했습니다. 지표식에서 분봉이하만 굵기가 지정되도록 되어 있어 일봉차트 이상일때도 적용되게 수정했습니다. 1 종목검색식 input : N(120),구간수(12),per(2.5); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0),AA(0),BB(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } AA = RR[NTHidx[0]]; if date != date[1] Then BB = AA[1]; if o <= BB*(1+Per/100) and o >= BB*(1-Per/100) Then find(1); 2. input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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순위에 상하 3.5% 근접한 종목 검색식으로 변경했는데 검토부탁드립니다. 기간은 120봉이고 그림의 종목은 칩스앤미디어입니다. 그리고 어제 만들어주신 추세식중 지정된 봉수내에 최고가(h)일때부터 계산되도록 수정 부탁드립니다. 감사합니다. ### 추세식(3순위는 제외했습니다)---선굵기 변경은 적용이 않되네요~ input : N(60),구간수(12),굵기(3); var : HH(0),LL(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 = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if date != date[1] and DataCompress <= 2 Then{ TL_Delete(TL1); TL1 = TL_New(sdate[1],stime[1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]); TL_SetExtRight(TL1,true); TL_SetExtLeft(TL1,true); TL_SetColor(TL1,RED); TL_SetSize(TL1,굵기); TL_Delete(TL2); TL2 = TL_New(sdate[1],stime[1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetColor(TL2,blue); TL_SetSize(TL2,굵기); # TL_Delete(TL3); # TL3 = TL_New(sdate[1],stime[1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]); # TL_SetExtRight(TL3,true); # TL_SetExtLeft(TL3,true); # TL_SetColor(TL3,GREEN); # TL_SetSize(TL3,굵기); } if DataCompress >= 3 then{ 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_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_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); } 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),per(2.5),per1(10); var : HH(0),LL(0),cnt(0),diff(0),count(0),mid(0); Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0); var : TL1(0),TL2(0),TL3(0); var : Tx1(0),Tx2(0),Tx3(0); Array : RR[12](0),VV[12](0); Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0); #구간산정 #1일전~~N일전까지의 최고가와 최저가 HH = dayhigh(1); LL = daylow(1); for cnt = 1 to N{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); if daylow(cnt) < LL Then LL = daylow(cnt); } #차이값의 1/12값 diff = (HH-LL)/구간수; #각 구간값 저장 for cnt = 0 to 구간수{ RR[cnt] = HH-diff*cnt; } #1일전부터 N일전까지의 중간값이 포함된 구간을 찾고 #그 구간과 동일한 번호의 VV배열방에 거래량 저장 for cnt = 0 to 11{ VV[cnt] = 0; for count = 1 to N{ mid = (dayhigh(count)+daylow(count))/2; if RR[cnt] >= mid and mid > RR[cnt+1] Then VV[cnt] = VV[cnt]+DayVolume(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; } if o <= RR[NTHidx[0]]*(1+Per/100) and o >= RR[NTHidx[0]]*(1-Per/100) Then find(1);