커뮤니티

질문 부탁드립니다

프로필 이미지
yamu
2025-05-22 07:32:49
162
글번호 191060
답변완료
수고가 많으십니다 질문 몇 가지 부탁드리겠습니다 질문1) text함수에서 혹시 줄 바꾸기는 가능한가요?? txtt[0]=text_new(sd[0],st[0],aa[0],NumToStr(Var22,0)+" "+NumToStr((aa[0]-aa[1])/aa[1]*100,0)+"%"); 위의 식 처럼 여러개의 값이 있을때 한줄이 아닌 값 사이에 줄 바꾸기 (엔터) 로 표시를 하고 싶습니다 질문2) (질문2와 질문3 관련 수식은 맨 아래에 첨부하였습니다) 같은 텍스트 식 ( txtt[0] ) 에 aa[] 배열의 순서를 표시를 하고 싶습니다 현재봉이 몇 번째 aa[] 인지를 표시하려고 하는데 예를들어 가장 최근봉 (aa[0] ) 에서는 0, 그 전전 봉 ( aa[2] ) 에서는 2 라고 숫자를 나타내고 싶습니다 질문3) for- if - else 문에 관련된 질문입니다 첨부된 식에다 아래 for 문을 추가했을때, value1=0; for cnt=1 to 5 { if a[0]*1.1 < a[cnt] then { value1=a[cnt]; } else { a[1]=a[0]*1.1; } } 이 조건의 의미는 for 문을 수행했을때 (cnt = 1 to 5) a[0]*1.1 < a[cnt] 경우가 없다면 a[1] 에 a[0]*1.1 를 대입하라는 의미가 되는건가요?? 그리고 for cnt=1 to 5 { if a[0]*1.2 < a[cnt] then { value1=a[cnt]; } else { if a[0]*1.05 < a[cnt] then { value1=a[cnt]; } } } 이렇게 작성한다면 if a[0]*1.1 < a[cnt] 의 경우가 없다면 if a[0]*1.05 < a[cnt] 를 for 루프 수행 하라는 의미가 되는게 맞나요? 감사합니다 var : cnt(0), sum1(0), sumi1(0),summ(0),tt(0),hh(0),ll(0),tl(0),tl1(0),n(0),ae(0); var: sum2(0),sumi2(0),count(0),sumaa(0),sumai(0),avgaa(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0),e1(0),e2(0); Array : ii[50](0),aa[50](0),cc[50](0),ee[50](0),ttl[30](0),txtt[40](0), tttl1[40](0),tttl2[40](0),sd[45](0),st[45](0),ad[50](0),at[50](0); if Bdate != Bdate[1] Then { DD = DD+1; } if (h>l*1.08) and (d1 == 0 or (d1 > 0 and dd >= d1+5)) Then { d1 = dd; hh = h; var1 = Index; Var2 = var1[1]; Var3 = Var2[1]; sum1=0; sumi1=0; sum2=0; sumi2=0; For cnt = 1 to (var1-Var2) { sum1=sum1+l[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; sd[cnt] =sd[cnt-1]; st[cnt] =st[cnt-1]; txtt[cnt] = txtt[cnt-1]; tttl1[cnt]=tttl1[cnt-1]; } aa[0] = value1; sd[0] = sDate; st[0] = sTime; TL_SetExtRight( tttl1[3],False); tttl1[0] = TL_New(sd[5],st[5],aa[5],sd[0],st[0],aa[0]); TL_SetDrawMode( tttl1[0],0); TL_Delete( tttl1[3]); TL_SetExtRight( tttl1[0],true); txtt[0]=text_new(sd[0],st[0],aa[0],NumToStr(Var22,0)+" "+ NumToStr((aa[0]-aa[1])/aa[1]*100,0)+"%"); Text_SetSize(txtt[0],15); Text_SetBold(txtt[0],1); Text_SetStyle(txtt[0], 0, 0); } if aa[0] >0 then Plot11(aa[0],"average",Cyan,Def,1);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-05-22 13:22:43

안녕하세요 예스스탁입니다. 1 문자열 사이에 newline 을 추가해 주시면 됩니다. txtt[0]=text_new(sd[0],st[0],aa[0],NumToStr(Var22,0)+" "+NewLine+NumToStr((aa[0]-aa[1])/aa[1]*100,0)+"%"); 2 문의하신 내용을 정확히 이해하지 못했습니다. 올리신 수식에서 txtt[0]은 항상 aa[0]을 출력합니다. 새로 조건이 만족하면 0이므로 새로 출력시 이전은 0을 1로, 1을 2로 변경하고자 하시면 아래와 같이 루프문에서 이전에 출력된 텍스트를 다시 출력해 주셔야 합니다. For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; sd[cnt] =sd[cnt-1]; st[cnt] =st[cnt-1]; txtt[cnt] = txtt[cnt-1]; tttl1[cnt]=tttl1[cnt-1]; Text_SetString(txtt[cnt] = NumToStr(cnt,0)+" "+NumToStr((aa[cnt]-aa[cnt+1])/aa[cnt+1]*100,0)+"%"); } aa[0] = value1; sd[0] = sDate; st[0] = sTime; TL_SetExtRight( tttl1[3],False); tttl1[0] = TL_New(sd[5],st[5],aa[5],sd[0],st[0],aa[0]); TL_SetDrawMode( tttl1[0],0); TL_Delete( tttl1[3]); TL_SetExtRight( tttl1[0],true); txtt[0]=text_new(sd[0],st[0],aa[0],NumToStr(0,0)+" "+NumToStr((aa[0]-aa[1])/aa[1]*100,0)+"%"); Text_SetSize(txtt[0],15); Text_SetBold(txtt[0],1); Text_SetStyle(txtt[0], 0, 0); 3 아래 주석 참고하시기 바랍니다. value1=0; for cnt=1 to 5 { if a[0]*1.1 < a[cnt] then { value1=a[cnt]; } else { a[1]=a[0]*1.1; } } cnt가 1일때, a[0]*1.1 < a[1]이면 value1에 a[1]저장, 아니면 a[1]에 a[0]*1.1 저장 cnt가 2일때, a[0]*1.1 < a[2]이면 value1에 a[2]저장, 아니면 a[1]에 a[0]*1.1 저장 cnt가 3일때, a[0]*1.1 < a[3]이면 value1에 a[3]저장, 아니면 a[1]에 a[0]*1.1 저장 cnt가 4일때, a[0]*1.1 < a[4]이면 value1에 a[4]저장, 아니면 a[1]에 a[0]*1.1 저장 cnt가 5일때, a[0]*1.1 < a[5]이면 value1에 a[5]저장, 아니면 a[1]에 a[0]*1.1 저장 for cnt=1 to 5 { if a[0]*1.2 < a[cnt] then { value1=a[cnt]; } else { if a[0]*1.05 < a[cnt] then { value1=a[cnt]; } } } cnt가 1일때, a[0]*1.2 < a[1]이면 value1에 a[1]저장, 아니고 a[0]*1.05 < a[1]일때 value1에 a[1]저장 cnt가 2일때, a[0]*1.2 < a[2]이면 value1에 a[2]저장, 아니고 a[0]*1.05 < a[2]일때 value1에 a[2]저장 cnt가 3일때, a[0]*1.2 < a[3]이면 value1에 a[3]저장, 아니고 a[0]*1.05 < a[3]일때 value1에 a[3]저장 cnt가 4일때, a[0]*1.2 < a[4]이면 value1에 a[4]저장, 아니고 a[0]*1.05 < a[4]일때 value1에 a[4]저장 cnt가 5일때, a[0]*1.2 < a[5]이면 value1에 a[5]저장, 아니고 a[0]*1.05 < a[5]일때 value1에 a[5]저장 즐거운 하루되세요 > yamu 님이 쓴 글입니다. > 제목 : 질문 부탁드립니다 > 수고가 많으십니다 질문 몇 가지 부탁드리겠습니다 질문1) text함수에서 혹시 줄 바꾸기는 가능한가요?? txtt[0]=text_new(sd[0],st[0],aa[0],NumToStr(Var22,0)+" "+NumToStr((aa[0]-aa[1])/aa[1]*100,0)+"%"); 위의 식 처럼 여러개의 값이 있을때 한줄이 아닌 값 사이에 줄 바꾸기 (엔터) 로 표시를 하고 싶습니다 질문2) (질문2와 질문3 관련 수식은 맨 아래에 첨부하였습니다) 같은 텍스트 식 ( txtt[0] ) 에 aa[] 배열의 순서를 표시를 하고 싶습니다 현재봉이 몇 번째 aa[] 인지를 표시하려고 하는데 예를들어 가장 최근봉 (aa[0] ) 에서는 0, 그 전전 봉 ( aa[2] ) 에서는 2 라고 숫자를 나타내고 싶습니다 질문3) for- if - else 문에 관련된 질문입니다 첨부된 식에다 아래 for 문을 추가했을때, value1=0; for cnt=1 to 5 { if a[0]*1.1 < a[cnt] then { value1=a[cnt]; } else { a[1]=a[0]*1.1; } } 이 조건의 의미는 for 문을 수행했을때 (cnt = 1 to 5) a[0]*1.1 < a[cnt] 경우가 없다면 a[1] 에 a[0]*1.1 를 대입하라는 의미가 되는건가요?? 그리고 for cnt=1 to 5 { if a[0]*1.2 < a[cnt] then { value1=a[cnt]; } else { if a[0]*1.05 < a[cnt] then { value1=a[cnt]; } } } 이렇게 작성한다면 if a[0]*1.1 < a[cnt] 의 경우가 없다면 if a[0]*1.05 < a[cnt] 를 for 루프 수행 하라는 의미가 되는게 맞나요? 감사합니다 var : cnt(0), sum1(0), sumi1(0),summ(0),tt(0),hh(0),ll(0),tl(0),tl1(0),n(0),ae(0); var: sum2(0),sumi2(0),count(0),sumaa(0),sumai(0),avgaa(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0),e1(0),e2(0); Array : ii[50](0),aa[50](0),cc[50](0),ee[50](0),ttl[30](0),txtt[40](0), tttl1[40](0),tttl2[40](0),sd[45](0),st[45](0),ad[50](0),at[50](0); if Bdate != Bdate[1] Then { DD = DD+1; } if (h>l*1.08) and (d1 == 0 or (d1 > 0 and dd >= d1+5)) Then { d1 = dd; hh = h; var1 = Index; Var2 = var1[1]; Var3 = Var2[1]; sum1=0; sumi1=0; sum2=0; sumi2=0; For cnt = 1 to (var1-Var2) { sum1=sum1+l[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; sd[cnt] =sd[cnt-1]; st[cnt] =st[cnt-1]; txtt[cnt] = txtt[cnt-1]; tttl1[cnt]=tttl1[cnt-1]; } aa[0] = value1; sd[0] = sDate; st[0] = sTime; TL_SetExtRight( tttl1[3],False); tttl1[0] = TL_New(sd[5],st[5],aa[5],sd[0],st[0],aa[0]); TL_SetDrawMode( tttl1[0],0); TL_Delete( tttl1[3]); TL_SetExtRight( tttl1[0],true); txtt[0]=text_new(sd[0],st[0],aa[0],NumToStr(Var22,0)+" "+ NumToStr((aa[0]-aa[1])/aa[1]*100,0)+"%"); Text_SetSize(txtt[0],15); Text_SetBold(txtt[0],1); Text_SetStyle(txtt[0], 0, 0); } if aa[0] >0 then Plot11(aa[0],"average",Cyan,Def,1);