커뮤니티

수식 문의드립니다.

프로필 이미지
네오
2020-07-29 15:53:12
2109
글번호 141095
답변완료
안냥하세요. 수고 많으십니다. Var1 ,Var2에 조건에 맞는 value 값을 지정하는 수식인데, 다음과 같이 50개의 value값을 일일이 나열하다보니 내용이 많아지네요. If value1 >= OO[0] And OO[0] > Value2 Then { Var1 = Value1; Var2 = Value2; } If Value2 >= OO[0] And OO[0] > Value3 Then { Var1 = Value2; Var2 = Value3; } If Value3 >= OO[0] And OO[0] > Value4 Then { Var1 = Value3; Var2 = Value4; } If Value4 >= OO[0] And OO[0] > Value5 Then { Var1 = Value4; Var2 = Value5; } ..... ..... ..... 그래서, Value1 ~ value50 까지의 값을 location[cnt], location[cnt-1] 등을 활용해서 Var1 ,Var2 를 간략히 정의할 수 있는 수식작성 부탁드립니다. 더운 날씨에 건강 유의하시고, 좋은 하루 되세요. 감사합니다.
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2020-07-29 16:56:05

안녕하세요 예스스탁입니다. location이 배열변수이고 0~49까지 값이 저장되어 있다면 아래와 같이 작성하시면 됩니다. var : cnt(0); Array : location[50](0); For cnt = 0 to 48 { If location[cnt] >= OO[0] And OO[0] > location[cnt+1] Then { Var1 = Value1; Var2 = Value2; } } 즐거운 하루되세요 > 네오 님이 쓴 글입니다. > 제목 : 수식 문의드립니다. > 안냥하세요. 수고 많으십니다. Var1 ,Var2에 조건에 맞는 value 값을 지정하는 수식인데, 다음과 같이 50개의 value값을 일일이 나열하다보니 내용이 많아지네요. If value1 >= OO[0] And OO[0] > Value2 Then { Var1 = Value1; Var2 = Value2; } If Value2 >= OO[0] And OO[0] > Value3 Then { Var1 = Value2; Var2 = Value3; } If Value3 >= OO[0] And OO[0] > Value4 Then { Var1 = Value3; Var2 = Value4; } If Value4 >= OO[0] And OO[0] > Value5 Then { Var1 = Value4; Var2 = Value5; } ..... ..... ..... 그래서, Value1 ~ value50 까지의 값을 location[cnt], location[cnt-1] 등을 활용해서 Var1 ,Var2 를 간략히 정의할 수 있는 수식작성 부탁드립니다. 더운 날씨에 건강 유의하시고, 좋은 하루 되세요. 감사합니다.
프로필 이미지

네오

2020-07-29 22:45:59

1. 다수의 Value정의값을 location으로 처리하는 답변 주셨는데, 작성하다보니 오류가 나네요. 다음 지표수식에 적용하는 식을 작성해주시면 감사하겠습니다. --------------------------------------------------------------------- var : cnt(0); Array : OO[10](0),HH[10](0),LL[10](0),MM[10](0),DD[10](0); if DayOfWeek(Bdate) < DayOfWeek(Bdate[1]) Then { OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 1 to 9 { OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; MM[cnt] = MM[cnt-1][1]; DD[cnt] = DD[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; MM[0] = (HH[0]+LL[0])/2; DD[0] = (HH[0]-MM[0]); if HH[1] > 0 And LL[1] > 0 Then { Value1 = HH[1]+DD[1]; Value2 = HH[1]; Value3 = MM[1]; Value4 = LL[1]; Value5 = LL[1]-DD[1]; If value1 >= OO[0] And OO[0] > Value2 Then { Var1 = Value1; Var2 = Value2; } If Value2 >= OO[0] And OO[0] > Value3 Then { Var1 = Value2; Var2 = Value3; } If Value3 >= OO[0] And OO[0] > Value4 Then { Var1 = Value3; Var2 = Value4; } If Value4 >= OO[0] And OO[0] > Value5 Then { Var1 = Value4; Var2 = Value5; } Plot1(var1); Plot2(var1+DD[1]*1); Plot3(var1+DD[1]*2); Plot4(var1+DD[1]*3); Plot5(var2); Plot6(var2-DD[1]*1); Plot7(var2-DD[1]*2); Plot8(var2-DD[1]*3); } ------------------------------------------------------------------ 2. 위의 직전주봉에 적용하는 식을 직전일봉에서도 동일하게 표현되는 수식 작성도 부탁드립니다. 수식 작성과 조언에 감사드립니다.
프로필 이미지

예스스탁 예스스탁 답변

2020-07-30 09:51:48

안녕하세요 예스스탁입니다. value1~value50까지 어떤 값인지 알수 없어 지정해 드릴수가 없습니다. 큰값에서 작은값 순으로 아래와 같이 나열해 추가해 주시면 됩니다. location[0] = 값; location[1] = 값; . . . . location[48] = 값; location[49] = 값; 1 var : cnt(0); Array : OO[10](0),HH[10](0),LL[10](0),MM[10](0),DD[10](0); Array : location[50](0); if DayOfWeek(Bdate) < DayOfWeek(Bdate[1]) Then { OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 1 to 9 { OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; MM[cnt] = MM[cnt-1][1]; DD[cnt] = DD[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; MM[0] = (HH[0]+LL[0])/2; DD[0] = (HH[0]-MM[0]); if HH[1] > 0 And LL[1] > 0 Then { #큰값에서 작은값 순으로 배열변수에 할당 location[0] = 최대값; location[1] = 값; . . . . location[48] = 값; location[49] = 최소값; For cnt = 0 to 48 { If location[cnt] >= OO[0] And OO[0] > location[cnt+1] Then { Var1 = location[cnt]; Var2 = location[cnt+1]; } } Plot1(var1); Plot2(var1+DD[1]*1); Plot3(var1+DD[1]*2); Plot4(var1+DD[1]*3); Plot5(var2); Plot6(var2-DD[1]*1); Plot7(var2-DD[1]*2); Plot8(var2-DD[1]*3); } 2 var : cnt(0); Array : OO[10](0),HH[10](0),LL[10](0),MM[10](0),DD[10](0); Array : location[50](0); if Bdate != Bdate[1] Then { OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 1 to 9 { OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; MM[cnt] = MM[cnt-1][1]; DD[cnt] = DD[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; MM[0] = (HH[0]+LL[0])/2; DD[0] = (HH[0]-MM[0]); if HH[1] > 0 And LL[1] > 0 Then { #큰값에서 작은값 순으로 배열변수에 할당 location[0] = 최대값; location[1] = 값; . . . . location[48] = 값; location[49] = 최소값; For cnt = 0 to 48 { If location[cnt] >= OO[0] And OO[0] > location[cnt+1] Then { Var1 = location[cnt]; Var2 = location[cnt+1]; } } Plot1(var1); Plot2(var1+DD[1]*1); Plot3(var1+DD[1]*2); Plot4(var1+DD[1]*3); Plot5(var2); Plot6(var2-DD[1]*1); Plot7(var2-DD[1]*2); Plot8(var2-DD[1]*3); } 즐거운 하루되세요 > 네오 님이 쓴 글입니다. > 제목 : Re : Re : 수식 문의드립니다. > 1. 다수의 Value정의값을 location으로 처리하는 답변 주셨는데, 작성하다보니 오류가 나네요. 다음 지표수식에 적용하는 식을 작성해주시면 감사하겠습니다. --------------------------------------------------------------------- var : cnt(0); Array : OO[10](0),HH[10](0),LL[10](0),MM[10](0),DD[10](0); if DayOfWeek(Bdate) < DayOfWeek(Bdate[1]) Then { OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 1 to 9 { OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; MM[cnt] = MM[cnt-1][1]; DD[cnt] = DD[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; MM[0] = (HH[0]+LL[0])/2; DD[0] = (HH[0]-MM[0]); if HH[1] > 0 And LL[1] > 0 Then { Value1 = HH[1]+DD[1]; Value2 = HH[1]; Value3 = MM[1]; Value4 = LL[1]; Value5 = LL[1]-DD[1]; If value1 >= OO[0] And OO[0] > Value2 Then { Var1 = Value1; Var2 = Value2; } If Value2 >= OO[0] And OO[0] > Value3 Then { Var1 = Value2; Var2 = Value3; } If Value3 >= OO[0] And OO[0] > Value4 Then { Var1 = Value3; Var2 = Value4; } If Value4 >= OO[0] And OO[0] > Value5 Then { Var1 = Value4; Var2 = Value5; } Plot1(var1); Plot2(var1+DD[1]*1); Plot3(var1+DD[1]*2); Plot4(var1+DD[1]*3); Plot5(var2); Plot6(var2-DD[1]*1); Plot7(var2-DD[1]*2); Plot8(var2-DD[1]*3); } ------------------------------------------------------------------ 2. 위의 직전주봉에 적용하는 식을 직전일봉에서도 동일하게 표현되는 수식 작성도 부탁드립니다. 수식 작성과 조언에 감사드립니다.