커뮤니티

질문 드리겠습니다

프로필 이미지
yamu
2025-03-05 14:06:37
335
글번호 188763
답변완료
답변 감사드립니다 지난 질문이어서 몇가지 부탁드립니다 질문1) 간단한 주석을 부탁드립니다 아래 식에서요,, 하루에 신호가 한번만 나오게 하는 식인데요 if Bdate != Bdate[1] Then DD = DD+1; 이부분은 거래일이 변경될때마다 dd 에 1씩 더하고, if H>l*1.1 Then { d1 = dd; d2 = d1[1]; if d1 >= d2+1 Then dd의 현재값과 이전값을 비교했을때, d1 >= d2+1 이면 왜 하루에 신호가 한번만 나오게 되는건지 그리고 if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then 로 했을때는 3거래일 이상 떨어졌을때만 신호가 나타나게 되는건지 간략한 설명을 해주시면 감사하겠습니다 #수식 if Bdate != Bdate[1] Then DD = DD+1; if H>l*1.1 Then { d1 = dd; d2 = d1[1]; if d1 >= d2+1 Then { var1 = Index; Var2 = var1[1]; Var3= Var2[1]; sum1=0; sumi1=0; tl=TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,999999); TL_SetSize(tl,0); TL_SetColor(tl,Black); 질문2) min , max 관련된 질문입니다 아래식에서 aa 배열 값들의 최고값, 최저값을 구할때요 aa[0]에서 aa[10] 까지의 최고값 (최저값)을 구하려면 max(aa[0],aa[1]...aa[10]) 이런식으로 나열 작성을 해야하는데, 만약 aa[0] 에서 aa[30] 까지의 최고값을 구할때처럼 식이 길어지면 for문으로 축약해서 작성한뒤 결과값을 변수에 저장하는것을 도와주셨으면 합니다 수식은 아래와 같습니다 var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0); var: sum2(0),sumi2(0),sumaa(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0); Array : ii[50](0),aa[50](0),bb[50](0),ttl[10](0); if Bdate != Bdate[1] Then DD = DD+1; if H>l*1.08 Then { d1 = dd; d2 = d1[1]; if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then { var1 = Index; Var2 = var1[1]; Var3= Var2[1]; tl=TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,999999); TL_SetSize(tl,0); TL_SetColor(tl,DarkGray); For cnt = 1 to (var1-Var2) { sum1=sum1+h[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = value1; } } 질문3) 혹시 차트창에서 동일종목 차트 두개를 열고 각각 다른 지표를 적용 할 수 있는 방법이 있을까요? 감사합니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-03-05 14:21:25

안녕하세요 예스스탁입니다. 1 if H>l*1.1 Then { d1 = dd; d2 = d1[1]; if d1 >= d2+1 Then 위 식에서 d1은 현재조건 만족시의 거래일수이고 d2는 직전조건 만족시의 거래일수 입니다. 현재조건만족시 거래일수가 직진조건만족시의 거래일수보다 1이상 크므로 하루에 한번만 표시한다는 내용이 됩니다. if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then 마찬가지로 위 내용으로 변경하면 d2가 0일때는 차트에 처음 조건이 만족할 때이므로 표시를 하고 d2> 0이 되면 최소 두번 조건이 만족했다는 의미입니다. 최소 두번이상 만족했을때는 현재조건만족시 거래일수가 직진조건 만족시의 거래일수보다 3이상 크므로 3일이상 간격을 두게 됩니다. 2 배열갯수를 30개로 지정해서 max와 min을 계산하는데 저장된 값이 30개가 안될수 있습니다. 저장된 값이 30개가 안되면 값이 저장되어 있는 배열(0보다 큰값)만 대상으로 최고와 최저를 계산하게 작성해 드립니다. input : n(30); var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0); var: sum2(0),sumi2(0),sumaa(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0); var : mx(0),mn(0); Array : ii[50](0),aa[50](0),bb[50](0),ttl[10](0); if Bdate != Bdate[1] Then DD = DD+1; if H>l*1.08 Then { d1 = dd; d2 = d1[1]; if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then { var1 = Index; Var2 = var1[1]; Var3= Var2[1]; tl=TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,999999); TL_SetSize(tl,0); TL_SetColor(tl,DarkGray); For cnt = 1 to (var1-Var2) { sum1=sum1+h[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = value1; mx = 0; mn = 0; For cnt = 0 to N-1 { if aa[cnt] > 0 Then { if mx == 0 or (mx > 0 and aa[cnt] > mx) Then mx = aa[cnt]; if mn == 0 or (mn > 0 and aa[cnt] < mn) Then mn = aa[cnt]; } } } } 3 차트창 상단에 차트분할 버튼이 있습니다. 차트를 분할해서 각각 종목설정하고 지표적용하시면 됩니다. 즐거운 하루되세요 > yamu 님이 쓴 글입니다. > 제목 : 질문 드리겠습니다 > 답변 감사드립니다 지난 질문이어서 몇가지 부탁드립니다 질문1) 간단한 주석을 부탁드립니다 아래 식에서요,, 하루에 신호가 한번만 나오게 하는 식인데요 if Bdate != Bdate[1] Then DD = DD+1; 이부분은 거래일이 변경될때마다 dd 에 1씩 더하고, if H>l*1.1 Then { d1 = dd; d2 = d1[1]; if d1 >= d2+1 Then dd의 현재값과 이전값을 비교했을때, d1 >= d2+1 이면 왜 하루에 신호가 한번만 나오게 되는건지 그리고 if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then 로 했을때는 3거래일 이상 떨어졌을때만 신호가 나타나게 되는건지 간략한 설명을 해주시면 감사하겠습니다 #수식 if Bdate != Bdate[1] Then DD = DD+1; if H>l*1.1 Then { d1 = dd; d2 = d1[1]; if d1 >= d2+1 Then { var1 = Index; Var2 = var1[1]; Var3= Var2[1]; sum1=0; sumi1=0; tl=TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,999999); TL_SetSize(tl,0); TL_SetColor(tl,Black); 질문2) min , max 관련된 질문입니다 아래식에서 aa 배열 값들의 최고값, 최저값을 구할때요 aa[0]에서 aa[10] 까지의 최고값 (최저값)을 구하려면 max(aa[0],aa[1]...aa[10]) 이런식으로 나열 작성을 해야하는데, 만약 aa[0] 에서 aa[30] 까지의 최고값을 구할때처럼 식이 길어지면 for문으로 축약해서 작성한뒤 결과값을 변수에 저장하는것을 도와주셨으면 합니다 수식은 아래와 같습니다 var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0); var: sum2(0),sumi2(0),sumaa(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0); Array : ii[50](0),aa[50](0),bb[50](0),ttl[10](0); if Bdate != Bdate[1] Then DD = DD+1; if H>l*1.08 Then { d1 = dd; d2 = d1[1]; if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then { var1 = Index; Var2 = var1[1]; Var3= Var2[1]; tl=TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,999999); TL_SetSize(tl,0); TL_SetColor(tl,DarkGray); For cnt = 1 to (var1-Var2) { sum1=sum1+h[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = value1; } } 질문3) 혹시 차트창에서 동일종목 차트 두개를 열고 각각 다른 지표를 적용 할 수 있는 방법이 있을까요? 감사합니다