커뮤니티
문의드립니다
2011-09-28 13:40:56
638
글번호 43116
아래수식은 분봉에서 주봉 및 일봉을 불러온 내용입니다
수식에 문제가 있는지 검증이 안됩니다.
수정 부탁합니다.
input : p1(2),LENGTH1(20),LENGTH2(60), ## 주봉
LENGTH11(20),LENGTH12(60),LENGTH13(120), ## 일봉
Period1(20),Period2(60), ## 주봉
Period11(20),Period12(60),Period13(120); ## 일봉
var : TCHAN1(0),TCHAN2(0),cnt(0), ## 주봉
TCHAN11(0),TCHAN12(0),TCHAN13(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);
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]; ## 주봉 pc[1]
for cnt = 1 to LENGTH1 {
if HH[cnt] > TCHAN1 Then
TCHAN1 = HH[cnt];
}
TCHAN2 = HH[1]; ## 주봉 pc[1]
for cnt = 1 to LENGTH2 {
if HH[cnt] > TCHAN2 Then
TCHAN2 = HH[cnt];
}
Sum1 = 0;
CSum1 = 0;
For counter1 = 0 To Period1-1{
Sum1= Sum1 + ((HH[counter1]+LL[counter1]+CC[counter1])/3) * (Period1 - counter1);
CSum1 = CSum1 + (Period1 - counter1);
}
WMA1 = Sum1/ CSum1;
SumSqrt1 = 0;
For Counter1 = 0 To Period1-1 {
SumSqrt1 = SumSqrt1 + (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1) * (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1);
}
Std1 = SquareRoot(SumSqrt1 / Period1);
Sum2 = 0; CSum2 = 0;
For counter2 = 0 To Period2-1{
Sum2 = Sum2 + ((HH[counter2]+LL[counter2]+CC[counter2])/3) * (Period2 - counter2);
CSum2 = CSum2 + (Period2 - counter2);
}
WMA2 = Sum2/CSum2;
SumSqrt2 = 0;
For Counter2 = 0 To Period2-1 {
SumSqrt2 = SumSqrt2 + (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2) * (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2);
}
Std2 = SquareRoot(SumSqrt2 / Period2);
var1 = wma1+(p1*STD1); ## 주봉 b.b
var2 = wma2+(p1*STD2); ## 주봉 b.b
var3 = (HH[0]+LL[0])/2; ## 주봉 중간값
## 일봉
Var : Sum11(0), Counter11(0), CSum11(0),Wma11(0),SumSqrt11(0),Std11(0);
Var : Sum12(0), Counter12(0), CSum12(0),Wma12(0),SumSqrt12(0),Std12(0);
Var : Sum13(0), Counter13(0), CSum13(0),Wma13(0),SumSqrt13(0),Std13(0);
TCHAN11 = dayhigh(1);
for cnt = 1 to LENGTH11 {
if dayhigh(cnt) > TCHAN11 Then
TCHAN11 = dayhigh(cnt);
}
TCHAN12 = dayhigh(1);
for cnt = 1 to LENGTH12 {
if dayhigh(cnt) > TCHAN12 Then
TCHAN12 = dayhigh(cnt);
}
TCHAN13 = dayhigh(1);
for cnt = 1 to LENGTH13 {
if dayhigh(cnt) > TCHAN13 Then
TCHAN13 = dayhigh(cnt);
}
Sum11 = 0;
CSum11 = 0;
For counter11 = 0 To Period11-1{
Sum11= Sum11 + ((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) * (Period11 - counter11);
CSum11 = CSum11 + (Period11 - counter11);
}
WMA11 = Sum11/ CSum11;
SumSqrt1 = 0;
For Counter11 = 0 To Period11-1 {
SumSqrt11 = SumSqrt11 + (((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) - WMA11) * (((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) - WMA11);
}
Std11 = SquareRoot(SumSqrt11 / Period11);
Sum12 = 0; CSum12 = 0;
For counter12 = 0 To Period12-1{
Sum12 = Sum12 + ((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) * (Period12 - counter12);
CSum12 = CSum12 + (Period12 - counter12);
}
WMA12 = Sum12/CSum12;
SumSqrt12 = 0;
For Counter12 = 0 To Period12-1 {
SumSqrt12 = SumSqrt12 + (((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) - WMA12) * (((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) - WMA12);
}
Std12 = SquareRoot(SumSqrt12 / Period12);
Sum13 = 0; CSum13 = 0;
For counter13 = 0 To Period13-1 {
Sum13 = Sum13 + ((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) * (Period13 - counter13);
CSum13 = CSum13 + (Period13 - counter13);
}
WMA13 = Sum13/ CSum13;
SumSqrt13 = 0;
For Counter13 = 0 To Period13-1 {
SumSqrt13 = SumSqrt13 + (((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) - WMA13) * (((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) - WMA13);
}
Std13 = SquareRoot(SumSqrt13 / Period13);
var11 = Wma1+(P1*Std1); ## 일봉 b,b 20
var12 = Wma2+(P1*Std2); ## 일봉 b,b 60
var13 = Wma3+(P1*Std3); ## 일봉 b,b 120
var14 = (DayHigh+DayLow)/2; ## 일봉중간값
답변 1
예스스탁 예스스탁 답변
2011-09-28 16:22:57
안녕하세요
예스스탁입니다.
input : p1(2),LENGTH1(20),LENGTH2(60), ## 주봉
LENGTH11(20),LENGTH12(60),LENGTH13(120), ## 일봉
Period1(20),Period2(60), ## 주봉
Period11(20),Period12(60),Period13(120); ## 일봉
var : TCHAN1(0),TCHAN2(0),cnt(0), ## 주봉
TCHAN11(0),TCHAN12(0),TCHAN13(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),wma3(0),std3(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]; ## 주봉 pc[1]
for cnt = 1 to LENGTH1 {
if HH[cnt] > TCHAN1 Then
TCHAN1 = HH[cnt];
}
TCHAN2 = HH[1]; ## 주봉 pc[1]
for cnt = 1 to LENGTH2 {
if HH[cnt] > TCHAN2 Then
TCHAN2 = HH[cnt];
}
Sum1 = 0;
CSum1 = 0;
For counter1 = 0 To Period1-1{
Sum1= Sum1 + ((HH[counter1]+LL[counter1]+CC[counter1])/3) * (Period1 - counter1);
CSum1 = CSum1 + (Period1 - counter1);
}
WMA1 = Sum1/ CSum1;
SumSqrt1 = 0;
For Counter1 = 0 To Period1-1 {
SumSqrt1 = SumSqrt1 + (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1) * (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1);
}
Std1 = SquareRoot(SumSqrt1 / Period1);
Sum2 = 0; CSum2 = 0;
For counter2 = 0 To Period2-1{
Sum2 = Sum2 + ((HH[counter2]+LL[counter2]+CC[counter2])/3) * (Period2 - counter2);
CSum2 = CSum2 + (Period2 - counter2);
}
WMA2 = Sum2/CSum2;
SumSqrt2 = 0;
For Counter2 = 0 To Period2-1 {
SumSqrt2 = SumSqrt2 + (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2) * (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2);
}
Std2 = SquareRoot(SumSqrt2 / Period2);
var1 = wma1+(p1*STD1); ## 주봉 b.b
var2 = wma2+(p1*STD2); ## 주봉 b.b
var3 = (HH[0]+LL[0])/2; ## 주봉 중간값
## 일봉
Var : Sum11(0), Counter11(0), CSum11(0),Wma11(0),SumSqrt11(0),Std11(0);
Var : Sum12(0), Counter12(0), CSum12(0),Wma12(0),SumSqrt12(0),Std12(0);
Var : Sum13(0), Counter13(0), CSum13(0),Wma13(0),SumSqrt13(0),Std13(0);
TCHAN11 = dayhigh(1);
for cnt = 1 to LENGTH11 {
if dayhigh(cnt) > TCHAN11 Then
TCHAN11 = dayhigh(cnt);
}
TCHAN12 = dayhigh(1);
for cnt = 1 to LENGTH12 {
if dayhigh(cnt) > TCHAN12 Then
TCHAN12 = dayhigh(cnt);
}
TCHAN13 = dayhigh(1);
for cnt = 1 to LENGTH13 {
if dayhigh(cnt) > TCHAN13 Then
TCHAN13 = dayhigh(cnt);
}
Sum11 = 0;
CSum11 = 0;
For counter11 = 0 To Period11-1{
Sum11= Sum11 + ((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) * (Period11 - counter11);
CSum11 = CSum11 + (Period11 - counter11);
}
WMA11 = Sum11/ CSum11;
SumSqrt1 = 0;
For Counter11 = 0 To Period11-1 {
SumSqrt11 = SumSqrt11 + (((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) - WMA11) * (((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) - WMA11);
}
Std11 = SquareRoot(SumSqrt11 / Period11);
Sum12 = 0; CSum12 = 0;
For counter12 = 0 To Period12-1{
Sum12 = Sum12 + ((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) * (Period12 - counter12);
CSum12 = CSum12 + (Period12 - counter12);
}
WMA12 = Sum12/CSum12;
SumSqrt12 = 0;
For Counter12 = 0 To Period12-1 {
SumSqrt12 = SumSqrt12 + (((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) - WMA12) * (((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) - WMA12);
}
Std12 = SquareRoot(SumSqrt12 / Period12);
Sum13 = 0; CSum13 = 0;
For counter13 = 0 To Period13-1 {
Sum13 = Sum13 + ((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) * (Period13 - counter13);
CSum13 = CSum13 + (Period13 - counter13);
}
WMA13 = Sum13/ CSum13;
SumSqrt13 = 0;
For Counter13 = 0 To Period13-1 {
SumSqrt13 = SumSqrt13 + (((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) - WMA13) * (((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) - WMA13);
}
Std13 = SquareRoot(SumSqrt13 / Period13);
var11 = Wma1+(P1*Std1); ## 일봉 b,b 20
var12 = Wma2+(P1*Std2); ## 일봉 b,b 60
var13 = Wma3+(P1*Std3); ## 일봉 b,b 120
var14 = (DayHigh+DayLow)/2; ## 일봉중간값
즐거운 하루되세요
> 맥스 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 아래수식은 분봉에서 주봉 및 일봉을 불러온 내용입니다
수식에 문제가 있는지 검증이 안됩니다.
수정 부탁합니다.
input : p1(2),LENGTH1(20),LENGTH2(60), ## 주봉
LENGTH11(20),LENGTH12(60),LENGTH13(120), ## 일봉
Period1(20),Period2(60), ## 주봉
Period11(20),Period12(60),Period13(120); ## 일봉
var : TCHAN1(0),TCHAN2(0),cnt(0), ## 주봉
TCHAN11(0),TCHAN12(0),TCHAN13(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);
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]; ## 주봉 pc[1]
for cnt = 1 to LENGTH1 {
if HH[cnt] > TCHAN1 Then
TCHAN1 = HH[cnt];
}
TCHAN2 = HH[1]; ## 주봉 pc[1]
for cnt = 1 to LENGTH2 {
if HH[cnt] > TCHAN2 Then
TCHAN2 = HH[cnt];
}
Sum1 = 0;
CSum1 = 0;
For counter1 = 0 To Period1-1{
Sum1= Sum1 + ((HH[counter1]+LL[counter1]+CC[counter1])/3) * (Period1 - counter1);
CSum1 = CSum1 + (Period1 - counter1);
}
WMA1 = Sum1/ CSum1;
SumSqrt1 = 0;
For Counter1 = 0 To Period1-1 {
SumSqrt1 = SumSqrt1 + (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1) * (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1);
}
Std1 = SquareRoot(SumSqrt1 / Period1);
Sum2 = 0; CSum2 = 0;
For counter2 = 0 To Period2-1{
Sum2 = Sum2 + ((HH[counter2]+LL[counter2]+CC[counter2])/3) * (Period2 - counter2);
CSum2 = CSum2 + (Period2 - counter2);
}
WMA2 = Sum2/CSum2;
SumSqrt2 = 0;
For Counter2 = 0 To Period2-1 {
SumSqrt2 = SumSqrt2 + (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2) * (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2);
}
Std2 = SquareRoot(SumSqrt2 / Period2);
var1 = wma1+(p1*STD1); ## 주봉 b.b
var2 = wma2+(p1*STD2); ## 주봉 b.b
var3 = (HH[0]+LL[0])/2; ## 주봉 중간값
## 일봉
Var : Sum11(0), Counter11(0), CSum11(0),Wma11(0),SumSqrt11(0),Std11(0);
Var : Sum12(0), Counter12(0), CSum12(0),Wma12(0),SumSqrt12(0),Std12(0);
Var : Sum13(0), Counter13(0), CSum13(0),Wma13(0),SumSqrt13(0),Std13(0);
TCHAN11 = dayhigh(1);
for cnt = 1 to LENGTH11 {
if dayhigh(cnt) > TCHAN11 Then
TCHAN11 = dayhigh(cnt);
}
TCHAN12 = dayhigh(1);
for cnt = 1 to LENGTH12 {
if dayhigh(cnt) > TCHAN12 Then
TCHAN12 = dayhigh(cnt);
}
TCHAN13 = dayhigh(1);
for cnt = 1 to LENGTH13 {
if dayhigh(cnt) > TCHAN13 Then
TCHAN13 = dayhigh(cnt);
}
Sum11 = 0;
CSum11 = 0;
For counter11 = 0 To Period11-1{
Sum11= Sum11 + ((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) * (Period11 - counter11);
CSum11 = CSum11 + (Period11 - counter11);
}
WMA11 = Sum11/ CSum11;
SumSqrt1 = 0;
For Counter11 = 0 To Period11-1 {
SumSqrt11 = SumSqrt11 + (((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) - WMA11) * (((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) - WMA11);
}
Std11 = SquareRoot(SumSqrt11 / Period11);
Sum12 = 0; CSum12 = 0;
For counter12 = 0 To Period12-1{
Sum12 = Sum12 + ((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) * (Period12 - counter12);
CSum12 = CSum12 + (Period12 - counter12);
}
WMA12 = Sum12/CSum12;
SumSqrt12 = 0;
For Counter12 = 0 To Period12-1 {
SumSqrt12 = SumSqrt12 + (((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) - WMA12) * (((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) - WMA12);
}
Std12 = SquareRoot(SumSqrt12 / Period12);
Sum13 = 0; CSum13 = 0;
For counter13 = 0 To Period13-1 {
Sum13 = Sum13 + ((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) * (Period13 - counter13);
CSum13 = CSum13 + (Period13 - counter13);
}
WMA13 = Sum13/ CSum13;
SumSqrt13 = 0;
For Counter13 = 0 To Period13-1 {
SumSqrt13 = SumSqrt13 + (((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) - WMA13) * (((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) - WMA13);
}
Std13 = SquareRoot(SumSqrt13 / Period13);
var11 = Wma1+(P1*Std1); ## 일봉 b,b 20
var12 = Wma2+(P1*Std2); ## 일봉 b,b 60
var13 = Wma3+(P1*Std3); ## 일봉 b,b 120
var14 = (DayHigh+DayLow)/2; ## 일봉중간값