커뮤니티

지표재문의

프로필 이미지
맥스
2011-08-10 15:36:18
668
글번호 41828
답변완료
주봉과 분봉의 각 plot 값이 다르게 나옵니다 확인 부탁드립니다 주봉의 price channel 과 볼리저밴드는 1봉전 수치이고 주봉의 중간값은 현재봉입니다 안녕하세요 예스스탁입니다. input : p1(2),LENGTH1(3),LENGTH2(5),LENGTH3(10),LENGTH4(20),LENGTH5(40),LENGTH6(60), Period1(3),Period2(5),Period3(10),Period4(20),Period5(40),Period6(60); var : TCHAN1(0),TCHAN2(0),TCHAN3(0),TCHAN4(0),TCHAN5(0),TCHAN6(0),cnt(0); Var : Sum1(0), Counter1(0), CSum1(0),Wma1(0),SumSqrt1(0),Std1(0); Var : Sum2(0), Counter2(0), CSum2(0),Wma2(0),SumSqrt2(0),Std2(0); Var : Sum3(0), Counter3(0), CSum3(0),Wma3(0),SumSqrt3(0),Std3(0); Var : Sum4(0), Counter4(0), CSum4(0),Wma4(0),SumSqrt4(0),Std4(0); Var : Sum5(0), Counter5(0), CSum5(0),Wma5(0),SumSqrt5(0),Std5(0); Var : Sum6(0), Counter6(0), CSum6(0),Wma6(0),SumSqrt6(0),Std6(0); Array : HH[70](0),CC[70](0),LL[70](0); if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{ HH[0] = H; for cnt = 1 to 61{ HH[cnt] = HH[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } var1 = value1[1]; var2 = value2[1]; var3 = value3[1]; var4 = value4[1]; var5 = value5[1]; var6 = value6[1]; } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; TCHAN1 = HH[1]; for cnt = 1 to LENGTH1 { if HH[cnt] > TCHAN1 Then TCHAN1 = HH[cnt]; } TCHAN2 = HH[1]; for cnt = 1 to LENGTH2 { if HH[cnt] > TCHAN2 Then TCHAN2 = HH[cnt]; } TCHAN3 = HH[1]; for cnt = 1 to LENGTH3 { if HH[cnt] > TCHAN3 Then TCHAN3 = HH[cnt]; } TCHAN4 = HH[1]; for cnt = 1 to LENGTH4 { if HH[cnt] > TCHAN4 Then TCHAN4 = HH[cnt]; } TCHAN5 = HH[1]; for cnt = 1 to LENGTH5 { if HH[cnt] > TCHAN5 Then TCHAN5 = HH[cnt]; } TCHAN6 = HH[1]; for cnt = 1 to LENGTH6 { if HH[cnt] > TCHAN6 Then TCHAN6 = HH[cnt]; } Sum1 = 0; CSum1 = 0; For counter1 = 0 To Period1 - 1 { Sum1= Sum1 + CC[counter1] * (Period1 - counter1); CSum1 = CSum1 + Period1 - counter1; } WMA1 = Sum1/ CSum1; SumSqrt1 = 0; For Counter1 = 0 To Period1 - 1 { SumSqrt1 = SumSqrt1 + (CC[Counter1] - WMA1) * (CC[Counter1] - WMA1); } Std1 = SquareRoot(SumSqrt1 / Period1); Sum2 = 0; CSum2 = 0; For counter2 = 0 To Period2 - 1 { Sum2 = Sum2 + CC[counter2] * (Period2 - counter2); CSum2 = CSum2 + Period2 - counter2; } WMA2 = Sum2/ CSum2; SumSqrt2 = 0; For Counter2 = 0 To Period2 - 1 { SumSqrt2 = SumSqrt2 + (CC[Counter2] - WMA2) * (CC[Counter2] - WMA2); } Std2 = SquareRoot(SumSqrt2 / Period2); Sum3 = 0; CSum3 = 0; For counter3 = 0 To Period3 - 1 { Sum3 = Sum3 + CC[counter3] * (Period3 - counter3); CSum3 = CSum3 + Period3 - counter3; } WMA3 = Sum3/ CSum3; SumSqrt3 = 0; For Counter3 = 0 To Period3 - 1 { SumSqrt3 = SumSqrt3 + (CC[Counter3] - WMA3) * (CC[Counter3] - WMA3); } Std3 = SquareRoot(SumSqrt3 / Period3); Sum4 = 0; CSum4 = 0; For counter4 = 0 To Period4 - 1 { Sum4 = Sum4 + CC[counter4] * (Period4 - counter4); CSum4 = CSum4 + Period4 - counter4; } WMA4 = Sum4/ CSum4; SumSqrt4 = 0; For Counter4 = 0 To Period4 - 1 { SumSqrt4 = SumSqrt4 + (CC[Counter4] - WMA4) * (CC[Counter4] - WMA4); } Std4 = SquareRoot(SumSqrt4 / Period4); Sum5 = 0; CSum5 = 0; For counter5 = 0 To Period5 - 1 { Sum5 = Sum5 + CC[counter5] * (Period5 - counter5); CSum5 = CSum5 + Period5 - counter5; } WMA5 = Sum5/ CSum5; SumSqrt5 = 0; For Counter5 = 0 To Period5 - 1 { SumSqrt5 = SumSqrt5 + (CC[Counter5] - WMA5) * (CC[Counter5] - WMA5); } Std5 = SquareRoot(SumSqrt5 / Period5); Sum6 = 0; CSum6 = 0; For counter6 = 0 To Period6 - 1 { Sum6 = Sum6 + CC[counter6] * (Period6 - counter6); CSum6 = CSum6 + Period6 - counter6; } WMA6 = Sum6/ CSum6; SumSqrt6 = 0; For Counter6 = 0 To Period6 - 1 { SumSqrt6 = SumSqrt6 + (CC[Counter6] - WMA6) * (CC[Counter6] - WMA6); } Std6 = SquareRoot(SumSqrt6 / Period6); value1 = wma1+(p1*STD1); value2 = wma2+(p1*STD2); value3 = wma3+(p1*STD3); value4 = wma4+(p1*STD4); value5 = wma5+(p1*STD5); value6 = wma6+(p1*STD6); var7 = (HH[0]+LL[0])/2; ##주봉 중간값 Value1 = Max((HH[1]+LL[1])/2,(HH[1]+LL[1]+CC[1])/3,(HH[2]+LL[2])/2,(HH[2]+LL[2]+CC[2])/3); Value2 = Min((HH[1]+LL[1])/2,(HH[1]+LL[1]+CC[1])/3,(HH[2]+LL[2])/2,(HH[2]+LL[2]+CC[2])/3); Value3 = (MAX(HH[1],HH[2])+Min(LL[1],LL[2])+CC[1])/3; Value4 = Value1+Value2+Value3; Plot1(TCHAN1, "pc3[1]"); Plot2(TCHAN2, "pc5[1]"); Plot3(TCHAN3, "pc10[1]"); Plot4(TCHAN4, "pc20[1]"); Plot5(TCHAN5, "pc40[1]"); Plot6(TCHAN6, "pc60[1]"); Plot7(var1, "bb3[1]"); Plot8(var2, "bb5[1]"); Plot9(var3, "bb10[1]"); Plot10(var4, "bb20[1]"); Plot11(var5, "bb40[1]"); Plot12(var6, "bb60[1]"); Plot13(Value1, "1"); Plot14(Value2, "2"); Plot15(Value3, "3"); Plot16(Value4, "4"); 즐거운 하루되세요 > 맥스 님이 쓴 글입니다. > 제목 : 지표식 문의 > 문의드립니다. 아래의 수식은 주봉의 수식입니다. 구하고자 하는 값은 일봉 및 분봉에서 주봉의 각 plot 값입니다. 1. 아래주봉의 각 plot 값을 일봉 및 20분봉에서 지표로 나타내기 2. 아래주봉의 수식을 일봉의 수식으로 간주하고 20분봉에서 일봉의 각 plot 값을 지표로 나타내기(var7 = (DayHigh+DayLow)/2; 일봉중간값) input : p1(2),LENGTH1(3),LENGTH2(5),LENGTH3(10),LENGTH4(20),LENGTH5(40),LENGTH6(60), Period1(3),Period2(5),Period3(10),Period4(20),Period5(40),Period6(60); var : TCHAN1(0),TCHAN2(0),TCHAN3(0),TCHAN4(0),TCHAN5(0),TCHAN6(0); TCHAN1 = HIGHEST(High, LENGTH1)[1]; TCHAN2 = HIGHEST(High, LENGTH2)[1]; TCHAN3 = HIGHEST(High, LENGTH3)[1]; TCHAN4 = HIGHEST(High, LENGTH4)[1]; TCHAN5 = HIGHEST(High, LENGTH5)[1]; TCHAN6 = HIGHEST(High, LENGTH6)[1]; var1 = wma(C, period1)[1]+(p1*stdw(C, period1)[1]); var2 = wma(C, period2)[1]+(p1*stdw(C, period2)[1]); var3 = wma(C, period3)[1]+(p1*stdw(C, period3)[1]); var4 = wma(C, period4)[1]+(p1*stdw(C, period4)[1]); var5 = wma(C, period5)[1]+(p1*stdw(C, period5)[1]); var6 = wma(C, period6)[1]+(p1*stdw(C, period6)[1]); var7 = (H+L)/2; ##주봉 중간값 Value1 = Max((H[1]+L[1])/2,(H[1]+L[1]+C[1])/3,(H[2]+L[2])/2,(H[2]+L[2]+C[2])/3); Value2 = Min((H[1]+L[1])/2,(H[1]+L[1]+C[1])/3,(H[2]+L[2])/2,(H[2]+L[2]+C[2])/3); Value3 = (MAX(H[1],H[2])+Min(L[1],L[2])+C[1])/3; Value4 = Value1+Value2+Value3; Plot1(TCHAN1, "pc3[1]"); Plot2(TCHAN2, "pc5[1]"); Plot3(TCHAN3, "pc10[1]"); Plot4(TCHAN4, "pc20[1]"); Plot5(TCHAN5, "pc40[1]"); Plot6(TCHAN6, "pc60[1]"); Plot7(var1, "bb3[1]"); Plot8(var2, "bb5[1]"); Plot9(var3, "bb10[1]"); Plot10(var4, "bb20[1]"); Plot11(var5, "bb40[1]"); Plot12(var6, "bb60[1]"); Plot13(Value1, "1"); Plot14(Value2, "2"); Plot15(Value3, "3"); Plot16(Value4, "4");
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-08-10 17:05:52

안녕하세요 예스스탁입니다. 식을 조금 수정했습니다. 분봉에서는 봉갯수 문제로 값이 제대로 나오지 않을수 있습니다. input : p1(2),LENGTH1(3),LENGTH2(5),LENGTH3(10),LENGTH4(20),LENGTH5(40),LENGTH6(60), Period1(3),Period2(5),Period3(10),Period4(20),Period5(40),Period6(60); var : TCHAN1(0),TCHAN2(0),TCHAN3(0),TCHAN4(0),TCHAN5(0),TCHAN6(0),cnt(0); Var : Sum1(0), Counter1(0), CSum1(0),Wma1(0),SumSqrt1(0),Std1(0); Var : Sum2(0), Counter2(0), CSum2(0),Wma2(0),SumSqrt2(0),Std2(0); Var : Sum3(0), Counter3(0), CSum3(0),Wma3(0),SumSqrt3(0),Std3(0); Var : Sum4(0), Counter4(0), CSum4(0),Wma4(0),SumSqrt4(0),Std4(0); Var : Sum5(0), Counter5(0), CSum5(0),Wma5(0),SumSqrt5(0),Std5(0); Var : Sum6(0), Counter6(0), CSum6(0),Wma6(0),SumSqrt6(0),Std6(0); Array : HH[70](0),CC[70](0),LL[70](0); if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 61{ HH[cnt] = HH[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; TCHAN1 = HH[1]; for cnt = 1 to LENGTH1 { if HH[cnt] > TCHAN1 Then TCHAN1 = HH[cnt]; } TCHAN2 = HH[1]; for cnt = 1 to LENGTH2 { if HH[cnt] > TCHAN2 Then TCHAN2 = HH[cnt]; } TCHAN3 = HH[1]; for cnt = 1 to LENGTH3 { if HH[cnt] > TCHAN3 Then TCHAN3 = HH[cnt]; } TCHAN4 = HH[1]; for cnt = 1 to LENGTH4 { if HH[cnt] > TCHAN4 Then TCHAN4 = HH[cnt]; } TCHAN5 = HH[1]; for cnt = 1 to LENGTH5 { if HH[cnt] > TCHAN5 Then TCHAN5 = HH[cnt]; } TCHAN6 = HH[1]; for cnt = 1 to LENGTH6 { if HH[cnt] > TCHAN6 Then TCHAN6 = HH[cnt]; } Sum1 = 0; CSum1 = 0; For counter1 = 1 To Period1{ Sum1= Sum1 + CC[counter1] * (Period1 - (counter1-1)); CSum1 = CSum1 + Period1 - (counter1-1); } WMA1 = Sum1/ CSum1; SumSqrt1 = 0; For Counter1 = 1 To Period1 { SumSqrt1 = SumSqrt1 + (CC[Counter1] - WMA1) * (CC[Counter1] - WMA1); } Std1 = SquareRoot(SumSqrt1 / Period1); Sum2 = 0; CSum2 = 0; For counter2 = 1 To Period2{ Sum2 = Sum2 + CC[counter2] * (Period2 - (counter2-1)); CSum2 = CSum2 + Period2 - (counter2-1); } WMA2 = Sum2/CSum2; SumSqrt2 = 0; For Counter2 = 1 To Period2 { SumSqrt2 = SumSqrt2 + (CC[Counter2] - WMA2) * (CC[Counter2] - WMA2); } Std2 = SquareRoot(SumSqrt2 / Period2); Sum3 = 0; CSum3 = 0; For counter3 = 1 To Period3 { Sum3 = Sum3 + CC[counter3] * (Period3 - (counter3-1)); CSum3 = CSum3 + Period3 - (counter3-1); } WMA3 = Sum3/ CSum3; SumSqrt3 = 0; For Counter3 = 1 To Period3 { SumSqrt3 = SumSqrt3 + (CC[Counter3] - WMA3) * (CC[Counter3] - WMA3); } Std3 = SquareRoot(SumSqrt3 / Period3); Sum4 = 0; CSum4 = 0; For counter4 = 1 To Period4 { Sum4 = Sum4 + CC[counter4] * (Period4 - (counter4-1)); CSum4 = CSum4 + Period4 - (counter4-1); } WMA4 = Sum4/ CSum4; SumSqrt4 = 0; For Counter4 = 1 To Period4 { SumSqrt4 = SumSqrt4 + (CC[Counter4] - WMA4) * (CC[Counter4] - WMA4); } Std4 = SquareRoot(SumSqrt4 / Period4); Sum5 = 0; CSum5 = 0; For counter5 = 1 To Period5 { Sum5 = Sum5 + CC[counter5] * (Period5 - (counter5-1)); CSum5 = CSum5 + Period5 - (counter5-1); } WMA5 = Sum5/ CSum5; SumSqrt5 = 0; For Counter5 = 1 To Period5 { SumSqrt5 = SumSqrt5 + (CC[Counter5] - WMA5) * (CC[Counter5] - WMA5); } Std5 = SquareRoot(SumSqrt5 / Period5); Sum6 = 0; CSum6 = 0; For counter6 = 1 To Period6 { Sum6 = Sum6 + CC[counter6] * (Period6 - (counter6-1)); CSum6 = CSum6 + Period6 - (counter6-1); } WMA6 = Sum6/ CSum6; SumSqrt6 = 0; For Counter6 = 1 To Period6 { SumSqrt6 = SumSqrt6 + (CC[Counter6] - WMA6) * (CC[Counter6] - WMA6); } Std6 = SquareRoot(SumSqrt6 / Period6); var1 = wma1+(p1*STD1); var2 = wma2+(p1*STD2); var3 = wma3+(p1*STD3); var4 = wma4+(p1*STD4); var5 = wma5+(p1*STD5); var6 = wma6+(p1*STD6); var7 = (HH[0]+LL[0])/2; ##주봉 중간값 Value1 = Max((HH[1]+LL[1])/2,(HH[1]+LL[1]+CC[1])/3,(HH[2]+LL[2])/2,(HH[2]+LL[2]+CC[2])/3); Value2 = Min((HH[1]+LL[1])/2,(HH[1]+LL[1]+CC[1])/3,(HH[2]+LL[2])/2,(HH[2]+LL[2]+CC[2])/3); Value3 = (MAX(HH[1],HH[2])+Min(LL[1],LL[2])+CC[1])/3; Value4 = Value1+Value2+Value3; Plot1(TCHAN1, "pc3[1]"); Plot2(TCHAN2, "pc5[1]"); Plot3(TCHAN3, "pc10[1]"); Plot4(TCHAN4, "pc20[1]"); Plot5(TCHAN5, "pc40[1]"); Plot6(TCHAN6, "pc60[1]"); Plot7(var1, "bb3[1]"); Plot8(var2, "bb5[1]"); Plot9(var3, "bb10[1]"); Plot10(var4, "bb20[1]"); Plot11(var5, "bb40[1]"); Plot12(var6, "bb60[1]"); Plot13(Value11, "1"); Plot14(Value22, "2"); Plot15(Value33, "3"); Plot16(Value44, "4"); 즐거운 하루되세요