커뮤니티
스토케스틱 계산식이 100 이상이 나옵니다. 조언 부탁드립니다.
2019-02-18 01:19:12
220
글번호 126257
일봉 스토케스틱을 분봉에 표시할 수 있는 식을 다음과 같이 짰습니다.
그런데 100을 넘는 수치가 종종 보입니다.
(스토케스틱은 100을 넘지 않아야 하는데 말입니다.)
그 이유는 일봉_종가[0]가 일봉_고가[0]보다 높게 나타나는 부분이 있다고 생각합니다.
그런데 왜 그런 값이 나오는지 모르겠습니다.
조언 부탁드립니다.
# ===<<< 분봉 차트에서 일봉 시고저종 계산 >>>===========================================
Arrays : 일봉_시가[100](0), 일봉_고가[100](0), 일봉_저가[100](0), 일봉_종가[100](0);
Variables : cnt(0);
If (sDate[1] != sDate And 080000 <= sTime) Or
(sDate[1] == sDate And sTime[1] < 080000 And 080000 <= sTime) Then Begin
For cnt = 99 DownTo 1 Begin
일봉_시가[cnt] = 일봉_시가[cnt-1]; 일봉_고가[cnt] = 일봉_고가[cnt-1];
일봉_저가[cnt] = 일봉_저가[cnt-1]; 일봉_종가[cnt] = 일봉_종가[cnt-1];
End;
일봉_시가[0] = Open; 일봉_고가[0] = High;
일봉_저가[0] = Low; 일봉_종가[0] = Close;
End;
If 080000 <= sTime And sTime < 180000 then Begin
If 일봉_고가[0] < High Then 일봉_고가[0] = High;
If 일봉_저가[0] > Low Then 일봉_저가[0] = Low;
일봉_종가[0] = Close;
End;
# ===<<< 분봉 차트에서 일봉 스토케스틱 계산 >>>========================================
Arrays : 스토케스틱_FastK[30](0), 스토케스틱_SlowK[30](0), 스토케스틱_SlowD[30](0);
Inputs : 기간1(5), 기간2(3), 기간3(3);
Variables : 기간중고가(0), 기간중저가(0);
If (sDate[1] != sDate And 080000 <= sTime) Or
(sDate[1] == sDate And sTime[1] < 080000 And 080000 <= sTime) Then Begin
For cnt = 29 DownTo 1 Begin
스토케스틱_FastK[cnt] = 스토케스틱_FastK[cnt-1];
스토케스틱_SlowK[cnt] = 스토케스틱_SlowK[cnt-1];
스토케스틱_SlowD[cnt] = 스토케스틱_SlowD[cnt-1];
End;
기간중고가 = 일봉_고가[0];
기간중저가 = 일봉_저가[0];
End;
If 080000 <= sTime And sTime < 180000 then Begin
For cnt = 1 to 기간1-1 Begin
If 기간중고가 < 일봉_고가[cnt] Then 기간중고가 = 일봉_고가[cnt];
If 기간중저가 > 일봉_저가[cnt] Then 기간중저가 = 일봉_저가[cnt];
End;
스토케스틱_FastK[0] = (일봉_종가[0]-기간중저가) / (기간중고가-기간중저가) * 100;
스토케스틱_SlowK[0] = (스토케스틱_FastK[0]*3 + 스토케스틱_FastK[1]*2 + 스토케스틱_FastK[2]*1) / 6;
스토케스틱_SlowD[0] = (스토케스틱_SlowK[0]*3 + 스토케스틱_SlowK[1]*2 + 스토케스틱_SlowK[2]*1) / 6;
End;
# ####<< 화면 출력 >>>#####################################################################
Plot1(스토케스틱_SlowK[0],"스토케스틱_SlowK");
Plot2(스토케스틱_SlowD[0],"스토케스틱_SlowD");
답변 1
예스스탁 예스스탁 답변
2019-02-18 15:23:48
안녕하세요
예스스스탁입니다.
fastk를 계산할때 당일미포함으로 전일이전기간으로 최고가와 최저가가 계산됩니다.
당일이 포함되어야 100을 넘지 않습니다.
# ===<<< 분봉 차트에서 일봉 시고저종 계산 >>>===========================================
Arrays : 일봉_시가[100](0), 일봉_고가[100](0), 일봉_저가[100](0), 일봉_종가[100](0);
Variables : cnt(0);
If (sDate[1] != sDate And 080000 <= sTime) Or
(sDate[1] == sDate And sTime[1] < 080000 And 080000 <= sTime) Then Begin
For cnt = 99 DownTo 1 Begin
일봉_시가[cnt] = 일봉_시가[cnt-1]; 일봉_고가[cnt] = 일봉_고가[cnt-1];
일봉_저가[cnt] = 일봉_저가[cnt-1]; 일봉_종가[cnt] = 일봉_종가[cnt-1];
End;
일봉_시가[0] = Open; 일봉_고가[0] = High;
일봉_저가[0] = Low; 일봉_종가[0] = Close;
End;
If 080000 <= sTime And sTime < 180000 then Begin
If 일봉_고가[0] < High Then 일봉_고가[0] = High;
If 일봉_저가[0] > Low Then 일봉_저가[0] = Low;
일봉_종가[0] = Close;
End;
# ===<<< 분봉 차트에서 일봉 스토케스틱 계산 >>>========================================
Arrays : 스토케스틱_FastK[30](0), 스토케스틱_SlowK[30](0), 스토케스틱_SlowD[30](0);
Inputs : 기간1(5), 기간2(3), 기간3(3);
Variables : 기간중고가(0), 기간중저가(0);
If (sDate[1] != sDate And 080000 <= sTime) Or
(sDate[1] == sDate And sTime[1] < 080000 And 080000 <= sTime) Then Begin
For cnt = 29 DownTo 1 Begin
스토케스틱_FastK[cnt] = 스토케스틱_FastK[cnt-1];
스토케스틱_SlowK[cnt] = 스토케스틱_SlowK[cnt-1];
스토케스틱_SlowD[cnt] = 스토케스틱_SlowD[cnt-1];
End;
기간중고가 = 일봉_고가[0];
기간중저가 = 일봉_저가[0];
End;
If 080000 <= sTime And sTime < 180000 then Begin
For cnt = 0 to 기간1-1 Begin
If 기간중고가 < 일봉_고가[cnt] Then 기간중고가 = 일봉_고가[cnt];
If 기간중저가 > 일봉_저가[cnt] Then 기간중저가 = 일봉_저가[cnt];
End;
스토케스틱_FastK[0] = (일봉_종가[0]-기간중저가) / (기간중고가-기간중저가) * 100;
스토케스틱_SlowK[0] = (스토케스틱_FastK[0]*3 + 스토케스틱_FastK[1]*2 + 스토케스틱_FastK[2]*1) / 6;
스토케스틱_SlowD[0] = (스토케스틱_SlowK[0]*3 + 스토케스틱_SlowK[1]*2 + 스토케스틱_SlowK[2]*1) / 6;
End;
# ####<< 화면 출력 >>>#####################################################################
Plot1(스토케스틱_SlowK[0],"스토케스틱_SlowK");
Plot2(스토케스틱_SlowD[0],"스토케스틱_SlowD");
즐거운 하루되세요
> 다니엘87 님이 쓴 글입니다.
> 제목 : 스토케스틱 계산식이 100 이상이 나옵니다. 조언 부탁드립니다.
> 일봉 스토케스틱을 분봉에 표시할 수 있는 식을 다음과 같이 짰습니다.
그런데 100을 넘는 수치가 종종 보입니다.
(스토케스틱은 100을 넘지 않아야 하는데 말입니다.)
그 이유는 일봉_종가[0]가 일봉_고가[0]보다 높게 나타나는 부분이 있다고 생각합니다.
그런데 왜 그런 값이 나오는지 모르겠습니다.
조언 부탁드립니다.
# ===<<< 분봉 차트에서 일봉 시고저종 계산 >>>===========================================
Arrays : 일봉_시가[100](0), 일봉_고가[100](0), 일봉_저가[100](0), 일봉_종가[100](0);
Variables : cnt(0);
If (sDate[1] != sDate And 080000 <= sTime) Or
(sDate[1] == sDate And sTime[1] < 080000 And 080000 <= sTime) Then Begin
For cnt = 99 DownTo 1 Begin
일봉_시가[cnt] = 일봉_시가[cnt-1]; 일봉_고가[cnt] = 일봉_고가[cnt-1];
일봉_저가[cnt] = 일봉_저가[cnt-1]; 일봉_종가[cnt] = 일봉_종가[cnt-1];
End;
일봉_시가[0] = Open; 일봉_고가[0] = High;
일봉_저가[0] = Low; 일봉_종가[0] = Close;
End;
If 080000 <= sTime And sTime < 180000 then Begin
If 일봉_고가[0] < High Then 일봉_고가[0] = High;
If 일봉_저가[0] > Low Then 일봉_저가[0] = Low;
일봉_종가[0] = Close;
End;
# ===<<< 분봉 차트에서 일봉 스토케스틱 계산 >>>========================================
Arrays : 스토케스틱_FastK[30](0), 스토케스틱_SlowK[30](0), 스토케스틱_SlowD[30](0);
Inputs : 기간1(5), 기간2(3), 기간3(3);
Variables : 기간중고가(0), 기간중저가(0);
If (sDate[1] != sDate And 080000 <= sTime) Or
(sDate[1] == sDate And sTime[1] < 080000 And 080000 <= sTime) Then Begin
For cnt = 29 DownTo 1 Begin
스토케스틱_FastK[cnt] = 스토케스틱_FastK[cnt-1];
스토케스틱_SlowK[cnt] = 스토케스틱_SlowK[cnt-1];
스토케스틱_SlowD[cnt] = 스토케스틱_SlowD[cnt-1];
End;
기간중고가 = 일봉_고가[0];
기간중저가 = 일봉_저가[0];
End;
If 080000 <= sTime And sTime < 180000 then Begin
For cnt = 1 to 기간1-1 Begin
If 기간중고가 < 일봉_고가[cnt] Then 기간중고가 = 일봉_고가[cnt];
If 기간중저가 > 일봉_저가[cnt] Then 기간중저가 = 일봉_저가[cnt];
End;
스토케스틱_FastK[0] = (일봉_종가[0]-기간중저가) / (기간중고가-기간중저가) * 100;
스토케스틱_SlowK[0] = (스토케스틱_FastK[0]*3 + 스토케스틱_FastK[1]*2 + 스토케스틱_FastK[2]*1) / 6;
스토케스틱_SlowD[0] = (스토케스틱_SlowK[0]*3 + 스토케스틱_SlowK[1]*2 + 스토케스틱_SlowK[2]*1) / 6;
End;
# ####<< 화면 출력 >>>#####################################################################
Plot1(스토케스틱_SlowK[0],"스토케스틱_SlowK");
Plot2(스토케스틱_SlowD[0],"스토케스틱_SlowD");