커뮤니티

수정 부탁드립니다.

프로필 이미지
앙이
2018-09-02 07:34:29
154
글번호 121796
답변완료
금요일날 전화 드렸던 사람입니다. 수평추세선의 값을 옴기지를 못하니 값이 겹&#52451;을때 구별이 잘안되서 너무 불편해서요.. 고민해본결과 수평추세선 값을 맨 오른쪽부터 배열시키되 열의 위치를바꾸어서 순차적으로 배 열시키게 해주실수 있겟는지요. 즉,상위1 값은 맨 오른쪽 첫번째 열에 상위2번 수평추세선 값은 그거보다 왼쪽으로 옮긴 열에 3번째는 더 왼쪽으로 이렇게 순위가 내려갈때마다 열은 왼쪽으로 가게 순차적으로 배열되게 해주시면 제가 쓰기 훨씬 편하겠읍니다. 추세선위에 값이 표현되는것은 같지만 열의 위치를 바꾸어 주시면 값이 겹치지않을거같아요 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),ii[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; ii[cnt] = 0; } #N개값 출력 for cnt1 = 1 to N{ TL_Delete(OTL[cnt1]); TL_Delete(HTL[cnt1]); TL_Delete(LTL[cnt1]); TL_Delete(CTL[cnt1]); Text_Delete(OTx[cnt1]); Text_Delete(HTx[cnt1]); Text_Delete(LTx[cnt1]); Text_Delete(CTx[cnt1]); Text_Delete(Tx[cnt1]); 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 == 5 Then color = YELLOW; #차트 과거봉 전체 스캔 for cnt2 = 0 to idx { #Price대비 +- Per%안에 종가가 형성된 if !(L[cnt2] > Price*(1+Per/100) or H[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]; ii[cnt1] = 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] == OO[cnt3] or HH[cnt1] == HH[cnt3] or HH[cnt1] == LL[cnt3] or HH[cnt1] == CC[cnt3] Then SameH = SameH+1; if LL[cnt1] == OO[cnt3] or LL[cnt1] == HH[cnt3] or LL[cnt1] == LL[cnt3] or LL[cnt1] == CC[cnt3] Then SameL = SameL+1; if CC[cnt1] == OO[cnt3] or CC[cnt1] == HH[cnt3] or CC[cnt1] == LL[cnt3] or CC[cnt1] == CC[cnt3] Then SameC = SameC+1; } #시가선 if SameO == 1 then { if LastBarOnChart == 1 Then MessageLog("O %.2f",color); #시가선 추세선 출력 OTL[cnt1] = TL_New(Sdate[1],stime[1],OO[cnt1],sdate,stime,OO[cnt1]); TL_SetExtLeft(OTL[cnt1],true); TL_SetExtRight(OTL[cnt1],true); TL_SetColor(OTL[cnt1],color); #시가선값 텍스트 출력 OTx[cnt1] = Text_New(sdate,stime,OO[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(OO[cnt1],0)+"|"+NumToStr(VV[cnt1],0)); Text_SetStyle(OTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameH == 1 then { #고가선 추세선 출력 HTL[cnt1] = TL_New(Sdate[1],stime[1],HH[cnt1],sdate,stime,HH[cnt1]); TL_SetExtLeft(HTL[cnt1],true); TL_SetExtRight(HTL[cnt1],true); TL_SetColor(HTL[cnt1],color); HTx[cnt1] = Text_New(sdate,stime,HH[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(HH[cnt1],0)); Text_SetStyle(HTx[cnt1],0,0); Text_SetColor(HTx[cnt1],color); } if SameL == 1 then { LTL[cnt1] = TL_New(Sdate[1],stime[1],LL[cnt1],sdate,stime,LL[cnt1]); TL_SetExtLeft(LTL[cnt1],true); TL_SetExtRight(LTL[cnt1],true); TL_SetColor(LTL[cnt1],color); LTx[cnt1] = Text_New(sdate,stime,LL[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(LL[cnt1],0)); Text_SetStyle(LTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameC == 1 then { CTL[cnt1] = TL_New(Sdate[1],stime[1],CC[cnt1],sdate,stime,CC[cnt1]); TL_SetExtLeft(CTL[cnt1],true); TL_SetExtRight(CTL[cnt1],true); TL_SetColor(CTL[cnt1],color); CTx[cnt1] = Text_New(sdate,stime,CC[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(CC[cnt1],0)); Text_SetStyle(CTx[cnt1],0,0); Text_SetColor(CTx[cnt1],color); } if CC[cnt1] > 0 then{ Tx[cnt1] = Text_New(sdate[ii[cnt1]],stime[ii[cnt1]],CC[cnt1],"●"+NumToStr(cnt1,0)); Text_SetStyle(Tx[cnt1],2,2); Text_SetColor(Tx[cnt1],color); Text_SetColor(Tx[cnt1],white); } } 어렵지만 한번 부탁드립니다....밥벌이가 달린 일이라 고민이 많읍니다.ㅜ.ㅜ
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-09-06 09:25:49

안녕하세요 예스스탁입니다. 죄송하지만 해당 내용은 식을 작성해 보는데 시간이 많이 걸리는 내용입니다. 업무상 시간이 많이 소모되는 내용은 작성해 드리기는 어렵습니다. 도움을 드리지 못해 죄송합니다. 감사합니다. > 앙이 님이 쓴 글입니다. > 제목 : 수정 부탁드립니다. > 금요일날 전화 드렸던 사람입니다. 수평추세선의 값을 옴기지를 못하니 값이 겹쳣을때 구별이 잘안되서 너무 불편해서요.. 고민해본결과 수평추세선 값을 맨 오른쪽부터 배열시키되 열의 위치를바꾸어서 순차적으로 배 열시키게 해주실수 있겟는지요. 즉,상위1 값은 맨 오른쪽 첫번째 열에 상위2번 수평추세선 값은 그거보다 왼쪽으로 옮긴 열에 3번째는 더 왼쪽으로 이렇게 순위가 내려갈때마다 열은 왼쪽으로 가게 순차적으로 배열되게 해주시면 제가 쓰기 훨씬 편하겠읍니다. 추세선위에 값이 표현되는것은 같지만 열의 위치를 바꾸어 주시면 값이 겹치지않을거같아요 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),ii[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; ii[cnt] = 0; } #N개값 출력 for cnt1 = 1 to N{ TL_Delete(OTL[cnt1]); TL_Delete(HTL[cnt1]); TL_Delete(LTL[cnt1]); TL_Delete(CTL[cnt1]); Text_Delete(OTx[cnt1]); Text_Delete(HTx[cnt1]); Text_Delete(LTx[cnt1]); Text_Delete(CTx[cnt1]); Text_Delete(Tx[cnt1]); 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 == 5 Then color = YELLOW; #차트 과거봉 전체 스캔 for cnt2 = 0 to idx { #Price대비 +- Per%안에 종가가 형성된 if !(L[cnt2] > Price*(1+Per/100) or H[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]; ii[cnt1] = 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] == OO[cnt3] or HH[cnt1] == HH[cnt3] or HH[cnt1] == LL[cnt3] or HH[cnt1] == CC[cnt3] Then SameH = SameH+1; if LL[cnt1] == OO[cnt3] or LL[cnt1] == HH[cnt3] or LL[cnt1] == LL[cnt3] or LL[cnt1] == CC[cnt3] Then SameL = SameL+1; if CC[cnt1] == OO[cnt3] or CC[cnt1] == HH[cnt3] or CC[cnt1] == LL[cnt3] or CC[cnt1] == CC[cnt3] Then SameC = SameC+1; } #시가선 if SameO == 1 then { if LastBarOnChart == 1 Then MessageLog("O %.2f",color); #시가선 추세선 출력 OTL[cnt1] = TL_New(Sdate[1],stime[1],OO[cnt1],sdate,stime,OO[cnt1]); TL_SetExtLeft(OTL[cnt1],true); TL_SetExtRight(OTL[cnt1],true); TL_SetColor(OTL[cnt1],color); #시가선값 텍스트 출력 OTx[cnt1] = Text_New(sdate,stime,OO[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(OO[cnt1],0)+"|"+NumToStr(VV[cnt1],0)); Text_SetStyle(OTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameH == 1 then { #고가선 추세선 출력 HTL[cnt1] = TL_New(Sdate[1],stime[1],HH[cnt1],sdate,stime,HH[cnt1]); TL_SetExtLeft(HTL[cnt1],true); TL_SetExtRight(HTL[cnt1],true); TL_SetColor(HTL[cnt1],color); HTx[cnt1] = Text_New(sdate,stime,HH[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(HH[cnt1],0)); Text_SetStyle(HTx[cnt1],0,0); Text_SetColor(HTx[cnt1],color); } if SameL == 1 then { LTL[cnt1] = TL_New(Sdate[1],stime[1],LL[cnt1],sdate,stime,LL[cnt1]); TL_SetExtLeft(LTL[cnt1],true); TL_SetExtRight(LTL[cnt1],true); TL_SetColor(LTL[cnt1],color); LTx[cnt1] = Text_New(sdate,stime,LL[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(LL[cnt1],0)); Text_SetStyle(LTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameC == 1 then { CTL[cnt1] = TL_New(Sdate[1],stime[1],CC[cnt1],sdate,stime,CC[cnt1]); TL_SetExtLeft(CTL[cnt1],true); TL_SetExtRight(CTL[cnt1],true); TL_SetColor(CTL[cnt1],color); CTx[cnt1] = Text_New(sdate,stime,CC[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(CC[cnt1],0)); Text_SetStyle(CTx[cnt1],0,0); Text_SetColor(CTx[cnt1],color); } if CC[cnt1] > 0 then{ Tx[cnt1] = Text_New(sdate[ii[cnt1]],stime[ii[cnt1]],CC[cnt1],"●"+NumToStr(cnt1,0)); Text_SetStyle(Tx[cnt1],2,2); Text_SetColor(Tx[cnt1],color); Text_SetColor(Tx[cnt1],white); } } 어렵지만 한번 부탁드립니다....밥벌이가 달린 일이라 고민이 많읍니다.ㅜ.ㅜ