첨부 이미지
그림1
도움에 감사 드립니다.
아래 수식을 첨부그림의
적색선과 같이
나타 나도록 수정 부탁 드립니다.
INPUT:Atime(11),p1(20);
Var: Cnt(0),HH(0),LL(0);
var : count(0),sum1(0),mav1(0),sum2(0),mav2(0),TF(0),S1(0),S2(0),T(0),TM(0);
Array: tp[100](0), upv[100](0),dnv[100](0);
Array : OO[100](0),CC[100](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
T = 1;
}
if date != date[1] and Bdate == Bdate[1] Then{
S2 = 1440-S1;
T = 2;
}
if T == 1 then
TM = TimeToMinutes(stime)-S1;
if T == 2 Then
TM = TimeToMinutes(stime)+S2;
TF = TM%Atime;
if Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1]) Then{
OO[0] = O;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P1+1] > 0 and (Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1])) Then{
sum1 = 0;
sum2 = 0;
for count = 0 to P1-1{
sum1 = sum1+CC[count+1];
sum2 = sum2+CC[count+2];
}
mav1 = sum1/P1;
mav2 = sum2/P1;
If (CC[1] < mav1 and CC[2] >= mav2) Then
{
tp[0] = (OO[1] + CC[1]) / 2;
For Cnt = 1 To 99
{
tp[Cnt] = tp[Cnt -1][1];
}
}
for cnt = 0 to 99
{
if tp[cnt] >= C Then
upv[cnt] = tp[cnt];
Else
upv[cnt] = 1000000;
if tp[cnt] <= C Then
dnv[cnt] = tp[cnt];
Else
dnv[cnt] = 0;
}
var1 =1000000;
LL = 0;
for cnt = 0 to 99
{
if upv[cnt] <var1 THEN
var1 = upv[cnt];
if dnv[cnt] > LL Then
LL = dnv[cnt];
}}
plot1(var1);
답변 1
예스스탁
예스스탁 답변
2020-01-21 17:16:45
안녕하세요
예스스탁입니다.
올려주신 수식은 타주기인 20이평을 데드했을떄의 몸통의 중간값들을 계산하고
이 중간값들 중에 현재봉 종가보다 큰값 중 가장 가까운 값(var1)과
이 중간값들 중에 현재봉 종가보다 작은값 중 가장 가까운 값(LL)을 계산하는 식입니다.
해당 값들이 없으면 1000000이나 0으로 출력됩니다.
해당 수식의 계산된 값으로 그림과 같이 구현은 어렵습니다.
타주기 이평보다는 크면 1 아니면 -1을 그리는 식을 작성해 드립니다.
해당 수식을 이용해 수정보안하시기 바랍니다.
input : ntime1(11),P(20);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0);
Array : C1[50](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%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 1 to 49
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P] > 0 then{
sum1 = 0;
for cnt = 0 to P-1{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
if c > mav1 Then
plot1(1);
Else
plot1(0);
}
}
즐거운 하루되세요
> yes 님이 쓴 글입니다.
> 제목 : 부탁 드립니다.
> 도움에 감사 드립니다.
아래 수식을 첨부그림의
적색선과 같이
나타 나도록 수정 부탁 드립니다.
INPUT:Atime(11),p1(20);
Var: Cnt(0),HH(0),LL(0);
var : count(0),sum1(0),mav1(0),sum2(0),mav2(0),TF(0),S1(0),S2(0),T(0),TM(0);
Array: tp[100](0), upv[100](0),dnv[100](0);
Array : OO[100](0),CC[100](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
T = 1;
}
if date != date[1] and Bdate == Bdate[1] Then{
S2 = 1440-S1;
T = 2;
}
if T == 1 then
TM = TimeToMinutes(stime)-S1;
if T == 2 Then
TM = TimeToMinutes(stime)+S2;
TF = TM%Atime;
if Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1]) Then{
OO[0] = O;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P1+1] > 0 and (Bdate != bdate[1] or (TF < TF[1] and Bdate == Bdate[1])) Then{
sum1 = 0;
sum2 = 0;
for count = 0 to P1-1{
sum1 = sum1+CC[count+1];
sum2 = sum2+CC[count+2];
}
mav1 = sum1/P1;
mav2 = sum2/P1;
If (CC[1] < mav1 and CC[2] >= mav2) Then
{
tp[0] = (OO[1] + CC[1]) / 2;
For Cnt = 1 To 99
{
tp[Cnt] = tp[Cnt -1][1];
}
}
for cnt = 0 to 99
{
if tp[cnt] >= C Then
upv[cnt] = tp[cnt];
Else
upv[cnt] = 1000000;
if tp[cnt] <= C Then
dnv[cnt] = tp[cnt];
Else
dnv[cnt] = 0;
}
var1 =1000000;
LL = 0;
for cnt = 0 to 99
{
if upv[cnt] <var1 THEN
var1 = upv[cnt];
if dnv[cnt] > LL Then
LL = dnv[cnt];
}}
plot1(var1);