커뮤니티

부탁드립니다.

프로필 이미지
e편한신호
2020-10-22 16:09:35
878
글번호 143329
답변완료
과거 작성해주신 일봉으로 아래식을 참고하고 있습니다. 이것을 분차트에서 일봉기준 수치로 볼수있도록 수식부탁합니다. 감사합니다. input : n1(5),n2(10); var : cnt(0),sum1(0),sum2(0),sum3(0); sum1 = 0; sum2 = 0; sum3 = 0; for cnt = n1 to n2 { if ma(C,n1) > ma(c,n1)[1] Then sum1 = sum1+1; if BollBandUp(n1,2) > BollBandUp(n1,2)[1] Then sum2 = sum2+1; if BollBandDown(n1,2) < BollBandDown(n1,2)[1] Then sum3 = sum3+1; } plot1(sum1,"이평상승갯수"); plot2(sum2,"볼밴상단상승갯수"); plot3(sum3,"볼밴하단하락갯수");
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-10-22 16:50:35

안녕하세요 예스스탁입니다. 올려주신 수식은 내용상 n1기간~ n2기간의 이평과 볼밴을 계산해서 상승횟수를 카운트 하는 식인것 같은데 올리신 식은 n1기간의 이평과 볼밴만을 계산해서 반복해서 계산을 하게 됩니다. n1이평이 전봉대비 상승하면 1이지만 루프가 n1~n2만큰 수행되므로 6으로 표시가 됩니다. 식을 2개 작성해 드립니다. 1번식은 기존 올리신 수식내용으로 계산되는 식이고 2번식은 n1기간~ n2기간의 이평과 볼밴을 계산해서 상승/하락횟수를 카운트 하는 식입니다. 1번식 input : n1(5),n2(10); var : cnt(0),sum1(0),sum2(0),sum3(0); var : ii(0),S1(0),S2(0),mav1(0),mav2(0),SumSqrt1(0),SumSqrt2(0); var : stdv1(0),stdv2(0),bbup1(0),bbup2(0),bbdn1(0),bbdn2(0); s1 = 0; s2 = 0; for ii = 0 to n1-1 { s1 = s1 + DayClose(ii); s2 = s2 + DayClose(ii+1); } mav1 = s1/n1; mav2 = s2/n1; SumSqrt1 = 0; SumSqrt2 = 0; For ii = 0 To n1 - 1 { SumSqrt1 = SumSqrt1 + (DayClose(ii) - mav1)^2; SumSqrt2 = SumSqrt2 + (DayClose(ii+1) - mav2)^2; } Stdv1 = SquareRoot(SumSqrt1 / n1); Stdv2 = SquareRoot(SumSqrt2 / n1); BBup1 = mav1 + (2 * Stdv1); BBdn1 = mav1 - (2 * Stdv1); BBup2 = mav2 + (2 * Stdv2); BBdn2 = mav2 - (2 * Stdv2); sum1 = 0; sum2 = 0; sum3 = 0; for cnt = n1 to n2 { if mav1 > mav2 Then sum1 = sum1+1; if bbup1 > bbup2 Then sum2 = sum2+1; if bbdn1 < bbdn2 Then sum3 = sum3+1; } plot1(sum1,"이평상승갯수"); plot2(sum2,"볼밴상단상승갯수"); plot3(sum3,"볼밴하단하락갯수"); 2번식 input : n1(5),n2(10); var : cnt(0),sum1(0),sum2(0),sum3(0); var : ii(0),S1(0),S2(0),mav1(0),mav2(0),SumSqrt1(0),SumSqrt2(0); var : stdv1(0),stdv2(0),bbup1(0),bbup2(0),bbdn1(0),bbdn2(0); sum1 = 0; sum2 = 0; sum3 = 0; for cnt = n1 to n2 { s1 = 0; s2 = 0; for ii = 0 to cnt-1 { s1 = s1 + DayClose(ii); s2 = s2 + DayClose(ii+1); } mav1 = s1/cnt; mav2 = s2/cnt; SumSqrt1 = 0; SumSqrt2 = 0; For ii = 0 To cnt - 1 { SumSqrt1 = SumSqrt1 + (DayClose(ii) - mav1)^2; SumSqrt2 = SumSqrt2 + (DayClose(ii+1) - mav2)^2; } Stdv1 = SquareRoot(SumSqrt1 / cnt); Stdv2 = SquareRoot(SumSqrt2 / cnt); BBup1 = mav1 + (2 * Stdv1); BBdn1 = mav1 - (2 * Stdv1); BBup2 = mav2 + (2 * Stdv2); BBdn2 = mav2 - (2 * Stdv2); if mav1 > mav2 Then sum1 = sum1+1; if bbup1 > bbup2 Then sum2 = sum2+1; if bbdn1 < bbdn2 Then sum3 = sum3+1; } plot1(sum1,"이평상승갯수"); plot2(sum2,"볼밴상단상승갯수"); plot3(sum3,"볼밴하단하락갯수"); 즐거운 하루되세요 > e편한신호 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 과거 작성해주신 일봉으로 아래식을 참고하고 있습니다. 이것을 분차트에서 일봉기준 수치로 볼수있도록 수식부탁합니다. 감사합니다. input : n1(5),n2(10); var : cnt(0),sum1(0),sum2(0),sum3(0); sum1 = 0; sum2 = 0; sum3 = 0; for cnt = n1 to n2 { if ma(C,n1) > ma(c,n1)[1] Then sum1 = sum1+1; if BollBandUp(n1,2) > BollBandUp(n1,2)[1] Then sum2 = sum2+1; if BollBandDown(n1,2) < BollBandDown(n1,2)[1] Then sum3 = sum3+1; } plot1(sum1,"이평상승갯수"); plot2(sum2,"볼밴상단상승갯수"); plot3(sum3,"볼밴하단하락갯수");