커뮤니티

질문 드리겠습니다

프로필 이미지
yamu
2025-01-03 09:50:03
496
글번호 186828
답변완료
몇 가지 질문 부탁드립니다 질문1) 현재봉과 직전봉을 비교해서 직전봉이 현재봉보다 크다면 그 값을 현재봉에 나타내고, 그렇지 않다면 그냥 현재봉값을 그대로 유지하게 하려는 조건을 만들고자 합니다 아래처럼 작성하면 문제가 생기는데요 예를들어서 차트상에서 2봉전 값이 10, 1봉전이 5 , 0봉이 8 이라고 한다면 원하는 바에 따르면 2봉전이 1봉보다 크므로 1봉전에는 10의 값을 나타내야되고, 0봉은 1봉전보다 (차트상에서) 크기때문에 0봉 값 8이 그대로 출력이 되어야하는데 아래처럼 작성하면 2봉전 값이 1봉으로 대입되면서 0봉보다 더 크기 때문에 계속 10이 유지가 됩니다 혹시 비교를 한다음에 차트상의 값으로 리셋을 하거나 변수를 이용해서 새로운 봉이 나오면 다시 비교하는 방식이 구현 가능한가요? 제가 원하는건 2봉전: 10, 1봉전 : 10, 0 봉: 8 이런식으로 나오게 하고싶습니다 var: cnt(0), sum1(0), sumi(0),sumsqrt(0),t(0),stand(0); var : sum2(0),sumi2(0),avg2(0); array: ii[50](0),aa[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.15,sDatE,sTimE,99999); For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = h; if aa[1]>aa[0] and aa[1]>0 Then { aa[0]=aa[1]; } Plot11(aa[0],"aa",Orange,Def,1); } 질문2) 수식을 하나 부탁드립니다 0봉 조건만족봉의 값 (aa[0]) 과 전봉들 값을 순차적으로 더해서 평균을 냈을때 0봉 보다 값이 클때 0봉에 그 값을 표시를 하고 싶습니다 예를들어서 먼저 0봉과 전봉의 평균을 (0봉+전봉의 평균) 내서 0봉보다 크면, 그값을 0봉에 출력하고 그렇지 않다면 전전봉까지 더해서 평균을 내고 (0봉+전봉+전전봉의 평균) 0봉의 값과 비교해서 크면 0봉에 출력하고 loop 를 끝내는 식을 만들고 싶습니다 var : cnt(0), sum1(0), sumi(0); var : t(0),StartBarIndex(0); Array : ii[50](0),aa[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1=Index; Var2=var1[1]; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = h; For cnt = 49 DownTo 1 { ii[cnt] = ii[cnt-1]; } ii[0] = Index; For cnt = 1 to 49 { sum1=sum1+aa[cnt]; sumi=sumi+1; } value1=sum1/sumi; } 감사합니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-01-03 11:48:00

안녕하세요 예스스탁입니다. 1 올리신 내용이시면 aa에 저장값(aa)을 변경하시면 안됩니다. aa의 값을 변경하시면 해당 내용 구현은 불가능합니다. 현재봉과 전봉의 원본값과 비교하는 내용이므로 별도 변수를 만들어 해당 변수에 지정한 기준으로 값이 저장하고 이후에 이용하셔야 합니다. var: cnt(0), sum1(0), sumi(0),sumsqrt(0),t(0),stand(0); var : sum2(0),sumi2(0),avg2(0); array: ii[50](0),aa[50](0),bb[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.15,sDatE,sTimE,99999); For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; bb[cnt] = bb[cnt-1]; } if aa[1]>aa[0] and aa[1]>0 Then { bb[0] = aa[1]; } Else bb[0] = aa[0]; Plot11(aa[0],"aa",Orange,Def,1); Plot12(bb[0],"bb",Orange,Def,1); } 2 for문은 최종값보다 큰 값을 주면 루프에서 빠져나가게 됩니다. var : cnt(0), sum1(0), sumi(0); var : t(0),StartBarIndex(0); Array : ii[50](0),aa[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1=Index; Var2=var1[1]; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; ii[cnt] = ii[cnt-1]; } aa[0] = h; ii[0] = Index; sum1 = 0; sumi = 0; For cnt = 0 to 49 { sum1=sum1+aa[cnt]; sumi=sumi+1; #평균 value1=sum1/sumi; #평균이 aa[0]보다 크면 #cnt값을 50으로 주어 For문에서 빠져나감 if value1 > aa[0] Then cnt = 50; } Plot1(value1); } 즐거운 하루되세요 > yamu 님이 쓴 글입니다. > 제목 : 질문 드리겠습니다 > 몇 가지 질문 부탁드립니다 질문1) 현재봉과 직전봉을 비교해서 직전봉이 현재봉보다 크다면 그 값을 현재봉에 나타내고, 그렇지 않다면 그냥 현재봉값을 그대로 유지하게 하려는 조건을 만들고자 합니다 아래처럼 작성하면 문제가 생기는데요 예를들어서 차트상에서 2봉전 값이 10, 1봉전이 5 , 0봉이 8 이라고 한다면 원하는 바에 따르면 2봉전이 1봉보다 크므로 1봉전에는 10의 값을 나타내야되고, 0봉은 1봉전보다 (차트상에서) 크기때문에 0봉 값 8이 그대로 출력이 되어야하는데 아래처럼 작성하면 2봉전 값이 1봉으로 대입되면서 0봉보다 더 크기 때문에 계속 10이 유지가 됩니다 혹시 비교를 한다음에 차트상의 값으로 리셋을 하거나 변수를 이용해서 새로운 봉이 나오면 다시 비교하는 방식이 구현 가능한가요? 제가 원하는건 2봉전: 10, 1봉전 : 10, 0 봉: 8 이런식으로 나오게 하고싶습니다 var: cnt(0), sum1(0), sumi(0),sumsqrt(0),t(0),stand(0); var : sum2(0),sumi2(0),avg2(0); array: ii[50](0),aa[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.15,sDatE,sTimE,99999); For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = h; if aa[1]>aa[0] and aa[1]>0 Then { aa[0]=aa[1]; } Plot11(aa[0],"aa",Orange,Def,1); } 질문2) 수식을 하나 부탁드립니다 0봉 조건만족봉의 값 (aa[0]) 과 전봉들 값을 순차적으로 더해서 평균을 냈을때 0봉 보다 값이 클때 0봉에 그 값을 표시를 하고 싶습니다 예를들어서 먼저 0봉과 전봉의 평균을 (0봉+전봉의 평균) 내서 0봉보다 크면, 그값을 0봉에 출력하고 그렇지 않다면 전전봉까지 더해서 평균을 내고 (0봉+전봉+전전봉의 평균) 0봉의 값과 비교해서 크면 0봉에 출력하고 loop 를 끝내는 식을 만들고 싶습니다 var : cnt(0), sum1(0), sumi(0); var : t(0),StartBarIndex(0); Array : ii[50](0),aa[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1=Index; Var2=var1[1]; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = h; For cnt = 49 DownTo 1 { ii[cnt] = ii[cnt-1]; } ii[0] = Index; For cnt = 1 to 49 { sum1=sum1+aa[cnt]; sumi=sumi+1; } value1=sum1/sumi; } 감사합니다