커뮤니티

수정 부탁드립니다.

프로필 이미지
앙이
2017-08-07 12:22:33
145
글번호 111828
답변완료
input : Price(10000), Per(10),N(5); var : cnt(0),cnt1(0),cnt2(0),idx(0); Array : VV[50](0); Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0); Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0); idx = idx+1; for cnt = 1 to 49{ VV[cnt] = 0; } #N개값 출력 for cnt1 = 1 to N{ #차트 과거봉 전체 스캔 for cnt2 = 1 to idx{ #Price대비 +- Per%안에 종가가 형성된 if C[cnt2] <= Price*(1+Per/100) and C[cnt2] >= Price*(1-Per/100) and V[cnt2] > VV[cnt1] and (cnt1 == 1 or (cnt1 >= 2 and V[cnt2] < VV[cnt1-1])) Then{ VV[cnt1] = V[cnt2]; #거래량순 상위 cnt1번째 값추세선 출력 #시가선 TL_Delete(OTL[cnt1]); OTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],O[cnt2],sdate,stime,O[cnt2]); TL_SetExtLeft(OTL[cnt1],true); TL_SetExtRight(OTL[cnt1],true); #고가선 TL_Delete(HTL[cnt1]); HTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],H[cnt2],sdate,stime,H[cnt2]); TL_SetExtLeft(HTL[cnt1],true); TL_SetExtRight(HTL[cnt1],true); #저가선 TL_Delete(LTL[cnt1]); LTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],L[cnt2],sdate,stime,L[cnt2]); TL_SetExtLeft(LTL[cnt1],true); TL_SetExtRight(LTL[cnt1],true); #종가선 TL_Delete(CTL[cnt1]); CTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],C[cnt2],sdate,stime,C[cnt2]); TL_SetExtLeft(CTL[cnt1],true); TL_SetExtRight(CTL[cnt1],true); #거래량순 상위 cnt1번째 값텍스트 출력 #시가선값 Text_Delete(OTx[cnt1]); OTx[cnt1] = Text_New(sdate,stime,O[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(O[cnt2],0)); Text_SetStyle(OTx[cnt1],0,0); #고가선값 Text_Delete(HTx[cnt1]); HTx[cnt1] = Text_New(sdate,stime,H[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(H[cnt2],0)); Text_SetStyle(HTx[cnt1],0,0); #저가선값 Text_Delete(LTx[cnt1]); LTx[cnt1] = Text_New(sdate,stime,L[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(L[cnt2],0)); Text_SetStyle(LTx[cnt1],0,0); #종가선값 Text_Delete(CTx[cnt1]); CTx[cnt1] = Text_New(sdate,stime,C[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(C[cnt2],0)); Text_SetStyle(CTx[cnt1],0,0); #점출력 Text_Delete(Tx[cnt1]); Tx[cnt1] = Text_New(sdate[cnt2],stime[cnt2],C[cnt2],"●"+NumToStr(cnt1,0)); Text_SetStyle(Tx[cnt1],2,2); } } } 위의 식은 과거에 거래량 터진봉의 시가,고가,종가,저가에 수평추세선을 그어주는 수식인대요 오류가있어요.예를들어 어느한봉의 고가와종가가 같다든가 이렇게 일치하게 되면 그선은 나오 지 않습니다. 또 어느 한봉의 수평추세선값과 다른봉의 수평추세선 값이 같을경우도 표시되지않아요. 또한가지 부탁드리자면 제가 이수식을 써보니까 수평선이 많으니 구별이 어려워서 색을 클릭해서 다르게 표시한 다음 다른종목을 검색하면 색이 검정으로 바뀌더라고요. 클릭해서 다르게 하고 기본으로 지정해도 다음 종목을 검색하면 다시 색이 검정색으로 바뀌드라고요.위에 점이나 수평선값도 색을 변경하면..다음종목을 검색해도 변경된 색을 유지 했음 좋겟어요. 참 그리고 포스코켐텍 같은건 거래량 1순위봉이 7월봉인대 이게 인식을 못하는거같아요 유니슨 월봉도 7월봉 인식을못해요. 직전달 봉을 인식을 못하는거같아요.... 어떤 오류인지 이것도 한번 부탁드립니다. 그리고 풍산같은건 2011/9월봉이 2010/10월봉보다 거래량이 큰대도 2010/10월봉이 거래량이 더 많은것으로 인식됩니다.몸통이 일부분만 포함되도 인식이 되면 좋겟는대요. 아마 몸통이 2011월봉이 더 길어서 그런거같아서 %범위에 빠져있어서요.몸통이 일부부만 포함되도 포함으로 간주되었으면합니다.예를들어 키움증권의 월봉을보면 2007년 6월봉이 최대거래인대 윗꼬리만 포함되서 그런가 1순위 봉으로 표시가 안되요 %를 30으로 잡앗을경우는 포함이 안되고 50%잡으면 포함됩니다.%를 지정을 좀 작게해서 일부분만 포함되도 포함이 되게 했으면좋겟어요. 더운대 고생많으십니다..늘 도움주셔서 감사합니다.꾸벅~~m(ㅡ.ㅡ)m m(_ _)m
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-08-07 14:19:53

안녕하세요 예스스탁입니다. 1 이전 출력값과 같으면 출력하지 않게 했습니다. 2 수식에서 출력하는 추세선등은 수식안에서 색상을 지정하셔야 합니다. 해당 부분은 저희가 모두 지정해 드릴수 없습니다. 수식에 TL_Color, Text_Color함수를 추가해 드립니다. 수식안에서 지정하셔야 합니다. 기본으로 최근 순으로 검정색, 빨강색, 파란색, 초록색, 노란색 순으로 그려지게 했습니다. N값이 늘어나면 사용자분이 해당 내용에 따라 색상을 더 늘려주셔야 합니다. 해당 부분은 사용자분이 코딩으로 해결하셔야 합니다. 3 기타내용도 수정했습니다. 4 수정한 식입니다. input : Price(10000), Per(10),N(5); var : cnt(0),cnt1(0),cnt2(0),cnt3(0),idx(0),color(0); var : SameO(0),SameH(0),SameL(0),SameC(0); Array : VV[50](0),OO[50](0),HH[50](0),LL[50](0),CC[50](0); Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0); Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0); idx = idx+1; for cnt = 1 to 49{ VV[cnt] = 0; OO[cnt] = 0; HH[cnt] = 0; LL[cnt] = 0; CC[cnt] = 0; } #N개값 출력 for cnt1 = 1 to N{ if cnt1 == 1 Then color = black; if cnt1 == 2 Then color = red; if cnt1 == 3 Then color = blue; if cnt1 == 4 Then color = GREEN; if cnt1 == 4 Then color = YELLOW; #차트 과거봉 전체 스캔 for cnt2 = 0 to idx { #Price대비 +- Per%안에 종가가 형성된 if C[cnt2] <= Price*(1+Per/100) and C[cnt2] >= Price*(1-Per/100) and V[cnt2] > VV[cnt1] and (cnt1 == 1 or (cnt1 >= 2 and V[cnt2] < VV[cnt1-1])) Then{ VV[cnt1] = V[cnt2]; OO[cnt1] = O[cnt2]; HH[cnt1] = H[cnt2]; LL[cnt1] = L[cnt2]; CC[cnt1] = C[cnt2]; #동일값 체크 sameO = 0; sameH = 0; sameL = 0; sameC = 0; for cnt3 = 1 to N{ if OO[cnt1] == OO[cnt3] or OO[cnt1] == HH[cnt3] or OO[cnt1] == LL[cnt3] or OO[cnt1] == CC[cnt3] Then SameO = SameO+1; if HH[cnt1] == HH[cnt3] or HH[cnt1] == OO[cnt3] or HH[cnt1] == LL[cnt3] or HH[cnt1] == CC[cnt3] Then SameH = SameH+1; if LL[cnt1] == LL[cnt3] or LL[cnt1] == OO[cnt3] or LL[cnt1] == HH[cnt3] or LL[cnt1] == CC[cnt3] Then SameL = SameL+1; if CC[cnt1] == CC[cnt3] or CC[cnt1] == OO[cnt3] or CC[cnt1] == LL[cnt3] or OO[cnt1] == LL[cnt3] Then SameC = SameC+1; } #시가선 if SameO == 1 then { #시가선 추세선 출력 TL_Delete(OTL[cnt1]); OTL[cnt1] = TL_New(Sdate[cnt2+1],stime[cnt2+1],O[cnt2],sdate,stime,O[cnt2]); TL_SetExtLeft(OTL[cnt1],true); TL_SetExtRight(OTL[cnt1],true); TL_SetColor(OTL[cnt1],color); #시가선값 텍스트 출력 Text_Delete(OTx[cnt1]); OTx[cnt1] = Text_New(sdate,stime,O[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(O[cnt2],0)); Text_SetStyle(OTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameH == 1 then { #고가선 추세선 출력 TL_Delete(HTL[cnt1]); HTL[cnt1] = TL_New(Sdate[cnt2+1],stime[cnt2+1],H[cnt2],sdate,stime,H[cnt2]); TL_SetExtLeft(HTL[cnt1],true); TL_SetExtRight(HTL[cnt1],true); TL_SetColor(HTL[cnt1],color); #고가선값 Text_Delete(HTx[cnt1]); HTx[cnt1] = Text_New(sdate,stime,H[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(H[cnt2],0)); Text_SetStyle(HTx[cnt1],0,0); Text_SetColor(HTx[cnt1],color); } if SameL == 1 then { #저가선 추세선 출력 TL_Delete(LTL[cnt1]); LTL[cnt1] = TL_New(Sdate[cnt2+1],stime[cnt2+1],L[cnt2],sdate,stime,L[cnt2]); TL_SetExtLeft(LTL[cnt1],true); TL_SetExtRight(LTL[cnt1],true); TL_SetColor(LTL[cnt1],color); #저가선값 Text_Delete(LTx[cnt1]); LTx[cnt1] = Text_New(sdate,stime,L[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(L[cnt2],0)); Text_SetStyle(LTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameC == 1 then { #종가선 추세선 출력 TL_Delete(CTL[cnt1]); CTL[cnt1] = TL_New(Sdate[cnt2+1],stime[cnt2+1],C[cnt2],sdate,stime,C[cnt2]); TL_SetExtLeft(CTL[cnt1],true); TL_SetExtRight(CTL[cnt1],true); TL_SetColor(CTL[cnt1],color); #종가선값 Text_Delete(CTx[cnt1]); CTx[cnt1] = Text_New(sdate,stime,C[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(C[cnt2],0)); Text_SetStyle(CTx[cnt1],0,0); Text_SetColor(CTx[cnt1],color); #점출력 Text_Delete(Tx[cnt1]); Tx[cnt1] = Text_New(sdate[cnt2],stime[cnt2],C[cnt2],"●"+NumToStr(cnt1,0)); Text_SetStyle(Tx[cnt1],2,2); Text_SetColor(Tx[cnt1],color); } } } } 즐거운 하루되세요 > 앙이 님이 쓴 글입니다. > 제목 : 수정 부탁드립니다. > input : Price(10000), Per(10),N(5); var : cnt(0),cnt1(0),cnt2(0),idx(0); Array : VV[50](0); Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0); Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0); idx = idx+1; for cnt = 1 to 49{ VV[cnt] = 0; } #N개값 출력 for cnt1 = 1 to N{ #차트 과거봉 전체 스캔 for cnt2 = 1 to idx{ #Price대비 +- Per%안에 종가가 형성된 if C[cnt2] <= Price*(1+Per/100) and C[cnt2] >= Price*(1-Per/100) and V[cnt2] > VV[cnt1] and (cnt1 == 1 or (cnt1 >= 2 and V[cnt2] < VV[cnt1-1])) Then{ VV[cnt1] = V[cnt2]; #거래량순 상위 cnt1번째 값추세선 출력 #시가선 TL_Delete(OTL[cnt1]); OTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],O[cnt2],sdate,stime,O[cnt2]); TL_SetExtLeft(OTL[cnt1],true); TL_SetExtRight(OTL[cnt1],true); #고가선 TL_Delete(HTL[cnt1]); HTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],H[cnt2],sdate,stime,H[cnt2]); TL_SetExtLeft(HTL[cnt1],true); TL_SetExtRight(HTL[cnt1],true); #저가선 TL_Delete(LTL[cnt1]); LTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],L[cnt2],sdate,stime,L[cnt2]); TL_SetExtLeft(LTL[cnt1],true); TL_SetExtRight(LTL[cnt1],true); #종가선 TL_Delete(CTL[cnt1]); CTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],C[cnt2],sdate,stime,C[cnt2]); TL_SetExtLeft(CTL[cnt1],true); TL_SetExtRight(CTL[cnt1],true); #거래량순 상위 cnt1번째 값텍스트 출력 #시가선값 Text_Delete(OTx[cnt1]); OTx[cnt1] = Text_New(sdate,stime,O[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(O[cnt2],0)); Text_SetStyle(OTx[cnt1],0,0); #고가선값 Text_Delete(HTx[cnt1]); HTx[cnt1] = Text_New(sdate,stime,H[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(H[cnt2],0)); Text_SetStyle(HTx[cnt1],0,0); #저가선값 Text_Delete(LTx[cnt1]); LTx[cnt1] = Text_New(sdate,stime,L[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(L[cnt2],0)); Text_SetStyle(LTx[cnt1],0,0); #종가선값 Text_Delete(CTx[cnt1]); CTx[cnt1] = Text_New(sdate,stime,C[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(C[cnt2],0)); Text_SetStyle(CTx[cnt1],0,0); #점출력 Text_Delete(Tx[cnt1]); Tx[cnt1] = Text_New(sdate[cnt2],stime[cnt2],C[cnt2],"●"+NumToStr(cnt1,0)); Text_SetStyle(Tx[cnt1],2,2); } } } 위의 식은 과거에 거래량 터진봉의 시가,고가,종가,저가에 수평추세선을 그어주는 수식인대요 오류가있어요.예를들어 어느한봉의 고가와종가가 같다든가 이렇게 일치하게 되면 그선은 나오 지 않습니다. 또 어느 한봉의 수평추세선값과 다른봉의 수평추세선 값이 같을경우도 표시되지않아요. 또한가지 부탁드리자면 제가 이수식을 써보니까 수평선이 많으니 구별이 어려워서 색을 클릭해서 다르게 표시한 다음 다른종목을 검색하면 색이 검정으로 바뀌더라고요. 클릭해서 다르게 하고 기본으로 지정해도 다음 종목을 검색하면 다시 색이 검정색으로 바뀌드라고요.위에 점이나 수평선값도 색을 변경하면..다음종목을 검색해도 변경된 색을 유지 했음 좋겟어요. 참 그리고 포스코켐텍 같은건 거래량 1순위봉이 7월봉인대 이게 인식을 못하는거같아요 유니슨 월봉도 7월봉 인식을못해요. 직전달 봉을 인식을 못하는거같아요.... 어떤 오류인지 이것도 한번 부탁드립니다. 그리고 풍산같은건 2011/9월봉이 2010/10월봉보다 거래량이 큰대도 2010/10월봉이 거래량이 더 많은것으로 인식됩니다.몸통이 일부분만 포함되도 인식이 되면 좋겟는대요. 아마 몸통이 2011월봉이 더 길어서 그런거같아서 %범위에 빠져있어서요.몸통이 일부부만 포함되도 포함으로 간주되었으면합니다.예를들어 키움증권의 월봉을보면 2007년 6월봉이 최대거래인대 윗꼬리만 포함되서 그런가 1순위 봉으로 표시가 안되요 %를 30으로 잡앗을경우는 포함이 안되고 50%잡으면 포함됩니다.%를 지정을 좀 작게해서 일부분만 포함되도 포함이 되게 했으면좋겟어요. 더운대 고생많으십니다..늘 도움주셔서 감사합니다.꾸벅~~m(ㅡ.ㅡ)m m(_ _)m