(30분봉종가(2)-30분봉시가(1)+2*30분봉시가(0))/2 를
1분봉 챠트에 지표로 나타내고 싶습니다
아래 로직으로는 다르게 나타나는 것 같습니다
input : 분(30);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),Result(0);
Array : HH[50](0),LL[50](0),OO[50](0), cc[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 = TimeToMinutes(stime)%분;
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 = 49 downto 1
{
OO[cnt] = OO[cnt-1];
HH[cnt] = HH[cnt-1];
LL[cnt] = LL[cnt-1];
cc[cnt] = cc[cnt-1];
}
OO[0] = O;
HH[0] = H;
LL[0] = L;
cc[0] = C;
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
// 추가: 공식을 계산하여 플롯
if cc[2] > 0 and OO[1] > 0 Then
{
value1 = (cc[2] - OO[1] + 2 * OO[0]) / 2;
}
}
답변 1
예스스탁
예스스탁 답변
2024-11-14 14:28:08
안녕하세요
예스스탁입니다.
종가가 30분기준 변경 첫봉의 종가만 저장되게 되어 있었습니다.
30분 구간 최종값이 저장되게 추가했습니다.
input : 분(30);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),Result(0);
Array : HH[50](0),LL[50](0),OO[50](0), cc[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 = TimeToMinutes(stime)%분;
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 = 49 downto 1
{
OO[cnt] = OO[cnt-1];
HH[cnt] = HH[cnt-1];
LL[cnt] = LL[cnt-1];
cc[cnt] = cc[cnt-1];
}
OO[0] = O;
HH[0] = H;
LL[0] = L;
cc[0] = C;
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if cc[2] > 0 Then
{
value1 = (cc[2] - OO[1] + 2 * OO[0]) / 2;
Plot1(value1);
}
}
즐거운 하루되세요
> 땡열이 님이 쓴 글입니다.
> 제목 : 부탁드립니다
> (30분봉종가(2)-30분봉시가(1)+2*30분봉시가(0))/2 를
1분봉 챠트에 지표로 나타내고 싶습니다
아래 로직으로는 다르게 나타나는 것 같습니다
input : 분(30);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),Result(0);
Array : HH[50](0),LL[50](0),OO[50](0), cc[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 = TimeToMinutes(stime)%분;
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 = 49 downto 1
{
OO[cnt] = OO[cnt-1];
HH[cnt] = HH[cnt-1];
LL[cnt] = LL[cnt-1];
cc[cnt] = cc[cnt-1];
}
OO[0] = O;
HH[0] = H;
LL[0] = L;
cc[0] = C;
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
// 추가: 공식을 계산하여 플롯
if cc[2] > 0 and OO[1] > 0 Then
{
value1 = (cc[2] - OO[1] + 2 * OO[0]) / 2;
}
}