예스스탁
예스스탁 답변
2022-08-16 15:47:48
안녕하세요
예스스탁입니다.
MO(타분봉주기,nbar)
위와 같은 형태로 작성해 드립니다.
MO(15,0) --> 0봉전 15분봉 시가
MO(15,1) --> 1봉전 15분봉 시가
다른 함수도 이름만 다르고 위와 같습니다.
1 분주기별 시가표시함수
사용자함수명 : MO
반환값형 : 숫자형
input : 분(Numeric),pre(Numeric);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : OO[100](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%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
OO[cnt] = OO[cnt-1];
}
OO[0] = O;
}
if OO[pre] > 0 Then
MO = OO[pre];
Else
MO = Nan;
}
2 분주기별 고가표시함수
사용자함수명 : MH
반환값형 : 숫자형
input : 분(Numeric),pre(Numeric);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : HH[100](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%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
HH[cnt] = HH[cnt-1];
}
HH[0] = H;
}
if H > HH[0] Then
HH[0] = H;
if HH[pre] > 0 Then
MH = HH[pre];
Else
MH = Nan;
}
3 분주기별 저가표시함수
사용자함수명 : ML
반환값형 : 숫자형
input : 분(Numeric),pre(Numeric);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : LL[100](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%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
LL[cnt] = LL[cnt-1];
}
LL[0] = L;
}
if L < LL[0] Then
LL[0] = H;
if LL[pre] > 0 Then
ML = LL[pre];
Else
ML = Nan;
}
4 분주기별 종가표시함수
사용자함수명 : MC
반환값형 : 숫자형
input : 분(Numeric),pre(Numeric);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : CC[100](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%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
CC[cnt] = CC[cnt-1];
}
}
CC[0] = C;
if CC[pre] > 0 Then
MC = CC[pre];
Else
MC = Nan;
}
즐거운 하루되세요
> jdavid 님이 쓴 글입니다.
> 제목 : 분단위 시고저종가 사용자함수
> 감사합니다.
예)
장시작부터 분주기별(15분봉) 각각의 시가, 고가. 저가, 종가를 나타내는 지표가 아니라 사용자함수를 부탁드립니다.
1 분주기별 시가표시함수
2 분주기별 고가표시함수
3 분주기별 저가표시함수
4 분주기별 종가표시함수
각 분 주기마다 시고저종가가 각각 표시되게 부탁드립니다