커뮤니티
변동폭을 시간주기로
2019-03-23 22:02:24
394
글번호 127339
안녕하세요 관리자님!!
오늘 많이 문의드리네요 죄송합니다..
아래지표는 변동폭을 표시하는 보내주신 수식입니다.
이 변동폭에 시간을 첨가하고 싶습니다. 4시간마다 바뀌는 변동폭을 구하고 싶습니다.
번거롭더라도 수정부탁드립니다.
감사합니다.
-아 래-
input : P(520);#10년 520주
var : cnt(0);
Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0);
Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0);
var : sum1(0),Sqrt1(0),ma1(0),Stdv1(0);
var : sum2(0),Sqrt2(0),ma2(0),stdv2(0);
var : sum3(0),Sqrt3(0),ma3(0),Stdv3(0);
var : sum4(0),Sqrt4(0),ma4(0),Stdv4(0);
var : sum5(0),Sqrt5(0),ma5(0),Stdv5(0);
if bdate != bdate[1] then
{
if DayOfWeek(bdate) == 1 Then
{
for cnt = 1 to 599
{
WH1[cnt] = WH1[cnt-1][1];
WL1[cnt] = WL1[cnt-1][1];
}
}
if DayOfWeek(bdate) == 2 Then
{
for cnt = 1 to 599
{
WH2[cnt] = WH2[cnt-1][1];
WL2[cnt] = WL2[cnt-1][1];
}
}
if DayOfWeek(bdate) == 3 Then
{
for cnt = 1 to 599
{
WH3[cnt] = WH3[cnt-1][1];
WL3[cnt] = WL3[cnt-1][1];
}
}
if DayOfWeek(bdate) == 4 Then
{
for cnt = 1 to 599
{
WH4[cnt] = WH4[cnt-1][1];
WL4[cnt] = WL4[cnt-1][1];
}
}
if DayOfWeek(bdate) == 5 Then
{
for cnt = 1 to 599
{
WH5[cnt] = WH5[cnt-1][1];
WL5[cnt] = WL5[cnt-1][1];
}
}
}
if DayOfWeek(bdate) == 1 Then
{
WH1[0] = DayHigh;
WL1[0] = DayLow;
}
if DayOfWeek(bdate) == 2 Then
{
WH2[0] = DayHigh;
WL2[0] = DayLow;
}
if DayOfWeek(bdate) == 3 Then
{
WH3[0] = DayHigh;
WL3[0] = DayLow;
}
if DayOfWeek(bdate) == 4 Then
{
WH4[0] = DayHigh;
WL4[0] = DayLow;
}
if DayOfWeek(bdate) == 5 Then
{
WH5[0] = DayHigh;
WL5[0] = DayLow;
}
if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then
{
sum1 = 0;
for cnt = 0 to P-1
{
sum1 = sum1 + (WH1[cnt]-WL1[cnt]);
}
ma1 = sum1/P;
Sqrt1 = 0;
For cnt = 0 To P - 1
{
Sqrt1 = Sqrt1 + ((WH1[cnt]-WL1[cnt]) - ma1)^2;
}
Stdv1 = SquareRoot(Sqrt1/ P);
plot1(ma1);
plot2(ma1+Stdv1*2);
plot3(ma1*0.7);
plot4((ma1+Stdv1*2)*0.7);
}
if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then
{
sum2 = 0;
for cnt = 0 to P-1
{
sum2 = sum2 + (WH2[cnt]-WL2[cnt]);
}
ma2= sum2/P;
Sqrt2= 0;
For cnt = 0 To P - 1
{
Sqrt2 = Sqrt2 + ((WH2[cnt]-WL2[cnt]) - ma2)^2;
}
Stdv2 = SquareRoot(Sqrt2/ P);
plot1(ma2);
plot2(ma2+Stdv2*2);
plot3(ma2*0.7);
plot4((ma2+Stdv2*2)*0.7);
}
if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then
{
sum3 = 0;
for cnt = 0 to P-1
{
sum3 = sum3 + (WH3[cnt]-WL3[cnt]);
}
ma3= sum3/P;
Sqrt3 = 0;
For cnt = 0 To P - 1
{
Sqrt3 = Sqrt3 + ((WH3[cnt]-WL3[cnt]) - ma3)^2;
}
Stdv3 = SquareRoot(Sqrt3/ P);
plot1(ma3);
plot2(ma3+Stdv3*2);
plot3(ma3*0.7);
plot4((ma3+Stdv3*2)*0.7);
}
if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then
{
sum4 = 0;
for cnt = 0 to P-1
{
sum4 = sum4 + (WH4[cnt]-WL4[cnt]);
}
ma4= sum4/P;
Sqrt4 = 0;
For cnt = 0 To P - 1
{
Sqrt4 = Sqrt4 + ((WH4[cnt]-WL4[cnt]) - ma4)^2;
}
Stdv4 = SquareRoot(Sqrt4/ P);
plot1(ma4);
plot2(ma4+Stdv4*2);
plot3(ma4*0.7);
plot4((ma4+Stdv4*2)*0.7);
}
if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then
{
sum5 = 0;
for cnt = 0 to P-1
{
sum5 = sum5 + (WH5[cnt]-WL5[cnt]);
}
ma5= sum5/P;
Sqrt5 = 0;
For cnt = 0 To P - 1
{
Sqrt5 = Sqrt5 + ((WH5[cnt]-WL5[cnt]) - ma5)^2;
}
Stdv5 = SquareRoot(Sqrt5/ P);
plot1(ma5);
plot2(ma5+Stdv5*2);
plot3(ma5*0.7);
plot4((ma5+Stdv5*2)*0.7);
}
plot5(DayHigh-daylow,"당일변동폭");
답변 1
예스스탁 예스스탁 답변
2019-03-25 14:08:38
안녕하세요
예스스탁입니다.
input : P(520);#10년 520주
input : ntime(160);#160분
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),OO(0),HH(0),LL(0);
Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0);
Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0);
var : sum1(0),Sqrt1(0),ma1(0),Stdv1(0);
var : sum2(0),Sqrt2(0),ma2(0),stdv2(0);
var : sum3(0),Sqrt3(0),ma3(0),Stdv3(0);
var : sum4(0),Sqrt4(0),ma4(0),Stdv4(0);
var : sum5(0),Sqrt5(0),ma5(0),Stdv5(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if (Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1])) then
{
OO = O;
HH = H;
LL = L;
if DayOfWeek(bdate) == 1 Then
{
for cnt = 1 to 599
{
WH1[cnt] = WH1[cnt-1][1];
WL1[cnt] = WL1[cnt-1][1];
}
}
if DayOfWeek(bdate) == 2 Then
{
for cnt = 1 to 599
{
WH2[cnt] = WH2[cnt-1][1];
WL2[cnt] = WL2[cnt-1][1];
}
}
if DayOfWeek(bdate) == 3 Then
{
for cnt = 1 to 599
{
WH3[cnt] = WH3[cnt-1][1];
WL3[cnt] = WL3[cnt-1][1];
}
}
if DayOfWeek(bdate) == 4 Then
{
for cnt = 1 to 599
{
WH4[cnt] = WH4[cnt-1][1];
WL4[cnt] = WL4[cnt-1][1];
}
}
if DayOfWeek(bdate) == 5 Then
{
for cnt = 1 to 599
{
WH5[cnt] = WH5[cnt-1][1];
WL5[cnt] = WL5[cnt-1][1];
}
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
if DayOfWeek(bdate) == 1 Then
{
WH1[0] = HH;
WL1[0] = LL;
}
if DayOfWeek(bdate) == 2 Then
{
WH2[0] = HH;
WL2[0] = LL;
}
if DayOfWeek(bdate) == 3 Then
{
WH3[0] = HH;
WL3[0] = LL;
}
if DayOfWeek(bdate) == 4 Then
{
WH4[0] = HH;
WL4[0] = LL;
}
if DayOfWeek(bdate) == 5 Then
{
WH5[0] = HH;
WL5[0] = LL;
}
}
if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then
{
sum1 = 0;
for cnt = 0 to P-1
{
sum1 = sum1 + (WH1[cnt]-WL1[cnt]);
}
ma1 = sum1/P;
Sqrt1 = 0;
For cnt = 0 To P - 1
{
Sqrt1 = Sqrt1 + ((WH1[cnt]-WL1[cnt]) - ma1)^2;
}
Stdv1 = SquareRoot(Sqrt1/ P);
plot1(ma1);
plot2(ma1+Stdv1*2);
plot3(ma1*0.7);
plot4((ma1+Stdv1*2)*0.7);
}
if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then
{
sum2 = 0;
for cnt = 0 to P-1
{
sum2 = sum2 + (WH2[cnt]-WL2[cnt]);
}
ma2= sum2/P;
Sqrt2= 0;
For cnt = 0 To P - 1
{
Sqrt2 = Sqrt2 + ((WH2[cnt]-WL2[cnt]) - ma2)^2;
}
Stdv2 = SquareRoot(Sqrt2/ P);
plot1(ma2);
plot2(ma2+Stdv2*2);
plot3(ma2*0.7);
plot4((ma2+Stdv2*2)*0.7);
}
if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then
{
sum3 = 0;
for cnt = 0 to P-1
{
sum3 = sum3 + (WH3[cnt]-WL3[cnt]);
}
ma3= sum3/P;
Sqrt3 = 0;
For cnt = 0 To P - 1
{
Sqrt3 = Sqrt3 + ((WH3[cnt]-WL3[cnt]) - ma3)^2;
}
Stdv3 = SquareRoot(Sqrt3/ P);
plot1(ma3);
plot2(ma3+Stdv3*2);
plot3(ma3*0.7);
plot4((ma3+Stdv3*2)*0.7);
}
if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then
{
sum4 = 0;
for cnt = 0 to P-1
{
sum4 = sum4 + (WH4[cnt]-WL4[cnt]);
}
ma4= sum4/P;
Sqrt4 = 0;
For cnt = 0 To P - 1
{
Sqrt4 = Sqrt4 + ((WH4[cnt]-WL4[cnt]) - ma4)^2;
}
Stdv4 = SquareRoot(Sqrt4/ P);
plot1(ma4);
plot2(ma4+Stdv4*2);
plot3(ma4*0.7);
plot4((ma4+Stdv4*2)*0.7);
}
if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then
{
sum5 = 0;
for cnt = 0 to P-1
{
sum5 = sum5 + (WH5[cnt]-WL5[cnt]);
}
ma5= sum5/P;
Sqrt5 = 0;
For cnt = 0 To P - 1
{
Sqrt5 = Sqrt5 + ((WH5[cnt]-WL5[cnt]) - ma5)^2;
}
Stdv5 = SquareRoot(Sqrt5/ P);
plot1(ma5);
plot2(ma5+Stdv5*2);
plot3(ma5*0.7);
plot4((ma5+Stdv5*2)*0.7);
}
plot5(HH-LL,"변동폭");
즐거운 하루되세요
> 카카 님이 쓴 글입니다.
> 제목 : 변동폭을 시간주기로
> 안녕하세요 관리자님!!
오늘 많이 문의드리네요 죄송합니다..
아래지표는 변동폭을 표시하는 보내주신 수식입니다.
이 변동폭에 시간을 첨가하고 싶습니다. 4시간마다 바뀌는 변동폭을 구하고 싶습니다.
번거롭더라도 수정부탁드립니다.
감사합니다.
-아 래-
input : P(520);#10년 520주
var : cnt(0);
Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0);
Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0);
var : sum1(0),Sqrt1(0),ma1(0),Stdv1(0);
var : sum2(0),Sqrt2(0),ma2(0),stdv2(0);
var : sum3(0),Sqrt3(0),ma3(0),Stdv3(0);
var : sum4(0),Sqrt4(0),ma4(0),Stdv4(0);
var : sum5(0),Sqrt5(0),ma5(0),Stdv5(0);
if bdate != bdate[1] then
{
if DayOfWeek(bdate) == 1 Then
{
for cnt = 1 to 599
{
WH1[cnt] = WH1[cnt-1][1];
WL1[cnt] = WL1[cnt-1][1];
}
}
if DayOfWeek(bdate) == 2 Then
{
for cnt = 1 to 599
{
WH2[cnt] = WH2[cnt-1][1];
WL2[cnt] = WL2[cnt-1][1];
}
}
if DayOfWeek(bdate) == 3 Then
{
for cnt = 1 to 599
{
WH3[cnt] = WH3[cnt-1][1];
WL3[cnt] = WL3[cnt-1][1];
}
}
if DayOfWeek(bdate) == 4 Then
{
for cnt = 1 to 599
{
WH4[cnt] = WH4[cnt-1][1];
WL4[cnt] = WL4[cnt-1][1];
}
}
if DayOfWeek(bdate) == 5 Then
{
for cnt = 1 to 599
{
WH5[cnt] = WH5[cnt-1][1];
WL5[cnt] = WL5[cnt-1][1];
}
}
}
if DayOfWeek(bdate) == 1 Then
{
WH1[0] = DayHigh;
WL1[0] = DayLow;
}
if DayOfWeek(bdate) == 2 Then
{
WH2[0] = DayHigh;
WL2[0] = DayLow;
}
if DayOfWeek(bdate) == 3 Then
{
WH3[0] = DayHigh;
WL3[0] = DayLow;
}
if DayOfWeek(bdate) == 4 Then
{
WH4[0] = DayHigh;
WL4[0] = DayLow;
}
if DayOfWeek(bdate) == 5 Then
{
WH5[0] = DayHigh;
WL5[0] = DayLow;
}
if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then
{
sum1 = 0;
for cnt = 0 to P-1
{
sum1 = sum1 + (WH1[cnt]-WL1[cnt]);
}
ma1 = sum1/P;
Sqrt1 = 0;
For cnt = 0 To P - 1
{
Sqrt1 = Sqrt1 + ((WH1[cnt]-WL1[cnt]) - ma1)^2;
}
Stdv1 = SquareRoot(Sqrt1/ P);
plot1(ma1);
plot2(ma1+Stdv1*2);
plot3(ma1*0.7);
plot4((ma1+Stdv1*2)*0.7);
}
if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then
{
sum2 = 0;
for cnt = 0 to P-1
{
sum2 = sum2 + (WH2[cnt]-WL2[cnt]);
}
ma2= sum2/P;
Sqrt2= 0;
For cnt = 0 To P - 1
{
Sqrt2 = Sqrt2 + ((WH2[cnt]-WL2[cnt]) - ma2)^2;
}
Stdv2 = SquareRoot(Sqrt2/ P);
plot1(ma2);
plot2(ma2+Stdv2*2);
plot3(ma2*0.7);
plot4((ma2+Stdv2*2)*0.7);
}
if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then
{
sum3 = 0;
for cnt = 0 to P-1
{
sum3 = sum3 + (WH3[cnt]-WL3[cnt]);
}
ma3= sum3/P;
Sqrt3 = 0;
For cnt = 0 To P - 1
{
Sqrt3 = Sqrt3 + ((WH3[cnt]-WL3[cnt]) - ma3)^2;
}
Stdv3 = SquareRoot(Sqrt3/ P);
plot1(ma3);
plot2(ma3+Stdv3*2);
plot3(ma3*0.7);
plot4((ma3+Stdv3*2)*0.7);
}
if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then
{
sum4 = 0;
for cnt = 0 to P-1
{
sum4 = sum4 + (WH4[cnt]-WL4[cnt]);
}
ma4= sum4/P;
Sqrt4 = 0;
For cnt = 0 To P - 1
{
Sqrt4 = Sqrt4 + ((WH4[cnt]-WL4[cnt]) - ma4)^2;
}
Stdv4 = SquareRoot(Sqrt4/ P);
plot1(ma4);
plot2(ma4+Stdv4*2);
plot3(ma4*0.7);
plot4((ma4+Stdv4*2)*0.7);
}
if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then
{
sum5 = 0;
for cnt = 0 to P-1
{
sum5 = sum5 + (WH5[cnt]-WL5[cnt]);
}
ma5= sum5/P;
Sqrt5 = 0;
For cnt = 0 To P - 1
{
Sqrt5 = Sqrt5 + ((WH5[cnt]-WL5[cnt]) - ma5)^2;
}
Stdv5 = SquareRoot(Sqrt5/ P);
plot1(ma5);
plot2(ma5+Stdv5*2);
plot3(ma5*0.7);
plot4((ma5+Stdv5*2)*0.7);
}
plot5(DayHigh-daylow,"당일변동폭");
다음글
이전글