예스스탁
예스스탁 답변
2024-03-26 14:05:17
안녕하세요
예스스탁입니다.
틱봉에서 분봉의 지표값은 정확한 계산이 불가능합니다.
랭귀지는 봉의 시고저종가만 사용이 가능한데
틱봉의 중간의 분봉의 시간경계가 있으면 해당 값을 추출하지 못합니다
이런 이유로 틱봉에서 분봉의 지표를 계산하는 수식을 만들면
근사값 정도로만 계산이 된다고 보셔야 합니다.
1
input : 분1(30),분2(15),Period(10);
var : S1(0),D1(0),TM(0),TF1(0),TF2(0),cnt(0);
var : sum1(0),sim1(0),sum2(0),sim2(0);
Array : C1[100](0),C2[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;
TF1 = TM%분1;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and 분1 > 1 and TM >= TM[1]+분1) or
(Bdate == Bdate[1] and 분1 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
C1[cnt] = C1[cnt-1];
}
}
C1[0] = C;
TF2 = TM%분2;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and 분2 > 1 and TM >= TM[1]+분2) or
(Bdate == Bdate[1] and 분2 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
C2[cnt] = C2[cnt-1];
}
}
C2[0] = C;
if C1[Period-1] > 0 Then
{
sum1 = 0;
For cnt = 0 to Period-1
{
if C1[cnt] > C1[cnt+1] Then
sum1 = sum1 + 1;
}
sim1 = sum1/Period*100;
Plot1(sim1,"분1심리도");
}
if C2[Period-1] > 0 Then
{
sum2 = 0;
For cnt = 0 to Period-1
{
if C2[cnt] > C2[cnt+1] Then
sum2 = sum2 + 1;
}
sim2 = sum2/Period*100;
Plot2(sim2,"분2심리도");
}
PlotBaseLine1(25, "기준선1");
PlotBaseLine2(75, "기준선2");
}
2
input : 분1(30),분2(15),Period(10);
var : S1(0),D1(0),TM(0),TF1(0),TF2(0),cnt(0);
var : PCnt1(0),NCnt1(0),PCnt2(0),NCnt2(0);
Array : O1[100](0),C1[100](0),O2[100](0),C2[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;
TF1 = TM%분1;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and 분1 > 1 and TM >= TM[1]+분1) or
(Bdate == Bdate[1] and 분1 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
O1[cnt] = O1[cnt-1];
C1[cnt] = C1[cnt-1];
}
O1[0] = O;
}
C1[0] = C;
TF2 = TM%분2;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and 분2 > 1 and TM >= TM[1]+분2) or
(Bdate == Bdate[1] and 분2 == 1 and TM > TM[1]) Then
{
for cnt = 99 downto 1
{
O2[cnt] = O2[cnt-1];
C2[cnt] = C2[cnt-1];
}
O2[0] = O;
}
C2[0] = C;
if C1[Period-1] > 0 Then
{
PCnt1 = 0;
NCnt1 = 0;
For cnt = 0 to Period-1
{
if C1[cnt] > O1[cnt+1] Then
PCnt1 = PCnt1 + 1;
if C1[cnt] < O1[cnt+1] Then
NCnt1 = NCnt1 + 1;
}
Plot1(PCnt1,"분1PCnt1");
Plot2(NCnt1,"분1NCnt1");
}
if C2[Period-1] > 0 Then
{
PCnt2 = 0;
NCnt2 = 0;
For cnt = 0 to Period-1
{
if C2[cnt] > O2[cnt+1] Then
PCnt2 = PCnt2 + 1;
if C2[cnt] < O2[cnt+1] Then
NCnt2 = NCnt2 + 1;
}
Plot3(PCnt2,"분2PCnt1");
Plot4(NCnt2,"분2NCnt1");
}
}
즐거운 하루되세요
> 짱짱해야지 님이 쓴 글입니다.
> 제목 : 틱봉에서 30분봉/15분봉의 심리도
> 틱봉 차트에서 분봉 기준 심리도
1. 참조 DATA2을 사용하지 않고 250틱봉에서, 30분봉의 심리도와 15분봉의 심리도를 만들어 보고자 합니다.
2. 참조 DATA2을 사용하지 않고 30분봉과 15분봉 기준으로 아래 코딩도 부탁드립니다
PCnt = CountIf(C > O, p1);
NCnt = CountIf(C < O, p1);
항상 감사드립니다.