첨부 이미지
그림1
안녕하세요 더운 날 수고가 많으십니다
타주기 관련해서 지난번에 몇 번 여쭤봤던 지표가 있는데 계속 생각과는 다르게 결과가 나와서 여쭤봅니다
일단 궁금한건, 타주기 수식을 작성하면
예를들어 타주기 120분 으로 했으면 그 주기 보다 낮은 배수의 주기에서는 다 사용할 수 있는건가요? 5,10,20,30,60 이런식으로요.타주기 설정보다 높은 주기에서는 안된다는거죠?
그리고 지난번에 여쭤봤던 수식인데요 검토를 해봐도 잘 안맞아서 한번 더 여쭤볼게요. 답변 해주실 때 혹시 검토를 해보고 답변 주시나요? 제가 뭘 잘못 적용했나해서요.
제가 원하는거는
1. 120분봉에서의 데이터를 낮은 주기에서 표현을 하는거고
2. 120분 봉의 체결건수 (ticks) 가 20000개 이하 일때와 50000개 이상일때 각각 나눠서, 30000개 이하면 그 봉의 최저가를 나타내고, 50000개 이상일 경우 최고가를 나타내는 수식입니다
다른 주기에서 확인을 해봤을때 값이 제대로 나오지 않아서 한번 더 여쭤봅니다
**그리고 20000개 이하일때는 5봉 동안의 최저가,
5만개 이상일때는 5봉 동안의 최고가를 나타내는 수식도 알려주실 수 있을까요?? 만약 2만개 이하인 봉을 기준으로 5봉간 최저가를 구할때 그 전봉중 기준에 안맞는거는 건너뛰고 계산하는 수식도 가능한가요? 말이 좀 어려워서 그림 하나 첨부 하겠습니다. 안된다면 그냥 5봉내의 최저가를 구하는 식을 알려주셔도 됩니다
여러번 번거롭지만 부탁드립니다
알려주신 수식:
input : 타주기분(120);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : TT[50](0),hh[50](0),ll[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%타주기분;
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
{
#120분 단위 수직선
TL_New(sDate,sTime,0,sDate,sTime,999999999);
#120분 단위 Ticks와 최고가 죄저가
for cnt = 49 downto 1
{
TT[cnt] = TT[cnt-1];
HH[cnt] = HH[cnt-1];
LL[cnt] = LL[cnt-1];
}
hh[0] = h;
ll[0] = l;
TT[0] = 0;
}
if h > hh[0] Then
hh[0] = h;
if L < ll[0] Then
ll[0] = l;
TT[0] = TT[0]+Ticks;
if TT[1] > 20000 and TT[1] < 50000 then
{
var1 = hh[1];
Var2 = ll[1];
}
if var1 > 0 and Var2 > 0 Then
{
plot1(var1);
plot2(Var2);
}
}
답변 1
예스스탁
예스스탁 답변
2024-08-02 11:11:55
> yamu 님이 쓴 글입니다.
> 제목 : 타주기 관련해서 질문드립니다
> 안녕하세요 더운 날 수고가 많으십니다
타주기 관련해서 지난번에 몇 번 여쭤봤던 지표가 있는데 계속 생각과는 다르게 결과가 나와서 여쭤봅니다
일단 궁금한건, 타주기 수식을 작성하면
예를들어 타주기 120분 으로 했으면 그 주기 보다 낮은 배수의 주기에서는 다 사용할 수 있는건가요? 5,10,20,30,60 이런식으로요.타주기 설정보다 높은 주기에서는 안된다는거죠?
그리고 지난번에 여쭤봤던 수식인데요 검토를 해봐도 잘 안맞아서 한번 더 여쭤볼게요. 답변 해주실 때 혹시 검토를 해보고 답변 주시나요? 제가 뭘 잘못 적용했나해서요.
제가 원하는거는
1. 120분봉에서의 데이터를 낮은 주기에서 표현을 하는거고
2. 120분 봉의 체결건수 (ticks) 가 20000개 이하 일때와 50000개 이상일때 각각 나눠서, 30000개 이하면 그 봉의 최저가를 나타내고, 50000개 이상일 경우 최고가를 나타내는 수식입니다
다른 주기에서 확인을 해봤을때 값이 제대로 나오지 않아서 한번 더 여쭤봅니다
**그리고 20000개 이하일때는 5봉 동안의 최저가,
5만개 이상일때는 5봉 동안의 최고가를 나타내는 수식도 알려주실 수 있을까요?? 만약 2만개 이하인 봉을 기준으로 5봉간 최저가를 구할때 그 전봉중 기준에 안맞는거는 건너뛰고 계산하는 수식도 가능한가요? 말이 좀 어려워서 그림 하나 첨부 하겠습니다. 안된다면 그냥 5봉내의 최저가를 구하는 식을 알려주셔도 됩니다
여러번 번거롭지만 부탁드립니다
알려주신 수식:
input : 타주기분(120);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : TT[50](0),hh[50](0),ll[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%타주기분;
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
{
#120분 단위 수직선
TL_New(sDate,sTime,0,sDate,sTime,999999999);
#120분 단위 Ticks와 최고가 죄저가
for cnt = 49 downto 1
{
TT[cnt] = TT[cnt-1];
HH[cnt] = HH[cnt-1];
LL[cnt] = LL[cnt-1];
}
hh[0] = h;
ll[0] = l;
TT[0] = 0;
}
if h > hh[0] Then
hh[0] = h;
if L < ll[0] Then
ll[0] = l;
TT[0] = TT[0]+Ticks;
if TT[1] > 20000 and TT[1] < 50000 then
{
var1 = hh[1];
Var2 = ll[1];
}
if var1 > 0 and Var2 > 0 Then
{
plot1(var1);
plot2(Var2);
}
}