예스스탁
예스스탁 답변
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);