커뮤니티
문의드립니다.
2016-02-25 16:47:59
129
글번호 95801
성실한 답변 감사합니다.
아래지표식에서 나타내어지는 지표값을 각구간별 최저가격대로 변경하고싶습니다.
매번 감사합니다.
input : N(120),구간수(12),굵기(3);
var : HH(0),LL(0),Hi(0),Li(0),cnt(0),diff(0),count(0),mid(0);
Array : RR[12](0),VV[12](0);
Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0);
Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0);
var : TL1(0),TL2(0),TL3(0);
var : Tx1(0),Tx2(0),Tx3(0);
#구간산정
#1일전~~N일전까지의 최고가와 인덱스 저장
HH = H[1];
Li = 1;
for cnt = 1 to N{
if H[cnt] > HH Then{
HH = H[cnt];
Hi = cnt;
}
}
#최고가 이후에 최저가와 인덱스 저장
LL = L[1];
Li = 1;
for cnt = 1 to Hi{
if L[cnt] < LL Then{
LL = L[cnt];
Li = cnt;
}
}
#차이값의 1/12값
diff = (HH-LL)/구간수;
#각 구간값 저장
for cnt = 0 to 구간수{
RR[cnt] = HH-diff*cnt;
}
#최고가와 최고가 이후 최저가 봉들에서만
#중간값이 포함된 구간을 찾고
#그 구간과 동일한 번호의 VV배열방에 거래량 저장
for cnt = 0 to 11{
VV[cnt] = 0;
for count = Li to Hi{
mid = (H[count]+L[count])/2;
if RR[cnt] >= mid and mid > RR[cnt+1] Then
VV[cnt] = VV[cnt]+V[count];
}
}
For cnt1 = 0 to 11
{
tempmax = -99999999;
For cnt2 = 0 to 11
{
if ( VV[cnt2] > tempmax ) then
{
tempmax = VV[cnt2];
tempIndex = cnt2;
}
}
NTHVALUE[cnt1] = tempmax;
NTHidx[cnt1] = tempIndex;
VV[tempIndex] = -99999999;
}
TL_Delete(TL1);
TL1 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,RED);
TL_SetSize(TL1,굵기);
TL_Delete(TL2);
TL2 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,blue);
TL_SetSize(TL2,굵기);
# TL_Delete(TL3);
# TL3 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]);
# TL_SetExtRight(TL3,true);
# TL_SetColor(TL3,GREEN);
# TL_SetSize(TL3,굵기);
Text_Delete(tx1);
Text_Delete(tx2);
# Text_Delete(tx3);
tx1 = Text_New(sdate,stime,RR[NTHidx[0]],"1순위");
tx2 = Text_New(sdate,stime,RR[NTHidx[1]],"2순위");
# tx3 = Text_New(sdate,stime,RR[NTHidx[2]],"3순위");
Text_SetStyle(tx1,2,0);
Text_SetStyle(tx2,2,0);
# Text_SetStyle(tx3,2,0);
답변 1
예스스탁 예스스탁 답변
2016-02-26 14:09:23
안녕하세요
예스스탁입니다.
input : N(120),구간수(12),굵기(3);
var : HH(0),LL(0),Hi(0),Li(0),cnt(0),diff(0),count(0),mid(0);
Array : RR[12](0),VV[12](0);
Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0);
Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0);
var : TL1(0),TL2(0),TL3(0);
var : Tx1(0),Tx2(0),Tx3(0);
#구간산정
#1일전~~N일전까지의 최고가와 인덱스 저장
HH = H[1];
Li = 1;
for cnt = 1 to N{
if H[cnt] > HH Then{
HH = H[cnt];
Hi = cnt;
}
}
#최고가 이후에 최저가와 인덱스 저장
LL = L[1];
Li = 1;
for cnt = 1 to Hi{
if L[cnt] < LL Then{
LL = L[cnt];
Li = cnt;
}
}
#차이값의 1/12값
diff = (HH-LL)/구간수;
#각 구간값 저장
for cnt = 0 to 구간수{
RR[cnt] = HH-diff*cnt;
}
#최고가와 최고가 이후 최저가 봉들에서만
#하단값 기준으로 중간값이 포함된 구간을 찾고
#그 구간과 동일한 번호의 VV배열방에 거래량 저장
for cnt = 1 to 12{
VV[cnt] = 0;
for count = Li to Hi{
mid = (H[count]+L[count])/2;
if RR[cnt-1] >= mid and mid > RR[cnt] Then
VV[cnt] = VV[cnt]+V[count];
}
}
For cnt1 = 0 to 11
{
tempmax = -99999999;
For cnt2 = 1 to 12
{
if ( VV[cnt2] > tempmax ) then
{
tempmax = VV[cnt2];
tempIndex = cnt2;
}
}
NTHVALUE[cnt1] = tempmax;
NTHidx[cnt1] = tempIndex;
VV[tempIndex] = -99999999;
}
TL_Delete(TL1);
TL1 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,RED);
TL_SetSize(TL1,굵기);
TL_Delete(TL2);
TL2 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,blue);
TL_SetSize(TL2,굵기);
# TL_Delete(TL3);
# TL3 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]);
# TL_SetExtRight(TL3,true);
# TL_SetColor(TL3,GREEN);
# TL_SetSize(TL3,굵기);
Text_Delete(tx1);
Text_Delete(tx2);
# Text_Delete(tx3);
tx1 = Text_New(sdate,stime,RR[NTHidx[0]],"1순위");
tx2 = Text_New(sdate,stime,RR[NTHidx[1]],"2순위");
# tx3 = Text_New(sdate,stime,RR[NTHidx[2]],"3순위");
Text_SetStyle(tx1,2,0);
Text_SetStyle(tx2,2,0);
# Text_SetStyle(tx3,2,0);
즐거운 하루되세요
> 부양가족 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 성실한 답변 감사합니다.
아래지표식에서 나타내어지는 지표값을 각구간별 최저가격대로 변경하고싶습니다.
매번 감사합니다.
input : N(120),구간수(12),굵기(3);
var : HH(0),LL(0),Hi(0),Li(0),cnt(0),diff(0),count(0),mid(0);
Array : RR[12](0),VV[12](0);
Var : cnt2(0), tempmax(0), tempindex(0), cnt1(0),NTHindex(0);
Array : VALUE[12](0), NTHVALUE[12](0),Nthidx[12](0);
var : TL1(0),TL2(0),TL3(0);
var : Tx1(0),Tx2(0),Tx3(0);
#구간산정
#1일전~~N일전까지의 최고가와 인덱스 저장
HH = H[1];
Li = 1;
for cnt = 1 to N{
if H[cnt] > HH Then{
HH = H[cnt];
Hi = cnt;
}
}
#최고가 이후에 최저가와 인덱스 저장
LL = L[1];
Li = 1;
for cnt = 1 to Hi{
if L[cnt] < LL Then{
LL = L[cnt];
Li = cnt;
}
}
#차이값의 1/12값
diff = (HH-LL)/구간수;
#각 구간값 저장
for cnt = 0 to 구간수{
RR[cnt] = HH-diff*cnt;
}
#최고가와 최고가 이후 최저가 봉들에서만
#중간값이 포함된 구간을 찾고
#그 구간과 동일한 번호의 VV배열방에 거래량 저장
for cnt = 0 to 11{
VV[cnt] = 0;
for count = Li to Hi{
mid = (H[count]+L[count])/2;
if RR[cnt] >= mid and mid > RR[cnt+1] Then
VV[cnt] = VV[cnt]+V[count];
}
}
For cnt1 = 0 to 11
{
tempmax = -99999999;
For cnt2 = 0 to 11
{
if ( VV[cnt2] > tempmax ) then
{
tempmax = VV[cnt2];
tempIndex = cnt2;
}
}
NTHVALUE[cnt1] = tempmax;
NTHidx[cnt1] = tempIndex;
VV[tempIndex] = -99999999;
}
TL_Delete(TL1);
TL1 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[0]],sdate,stime,RR[NTHidx[0]]);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,RED);
TL_SetSize(TL1,굵기);
TL_Delete(TL2);
TL2 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[1]],sdate,stime,RR[NTHidx[1]]);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,blue);
TL_SetSize(TL2,굵기);
# TL_Delete(TL3);
# TL3 = TL_New(sdate[N-1],stime[N-1],RR[NTHidx[2]],sdate,stime,RR[NTHidx[2]]);
# TL_SetExtRight(TL3,true);
# TL_SetColor(TL3,GREEN);
# TL_SetSize(TL3,굵기);
Text_Delete(tx1);
Text_Delete(tx2);
# Text_Delete(tx3);
tx1 = Text_New(sdate,stime,RR[NTHidx[0]],"1순위");
tx2 = Text_New(sdate,stime,RR[NTHidx[1]],"2순위");
# tx3 = Text_New(sdate,stime,RR[NTHidx[2]],"3순위");
Text_SetStyle(tx1,2,0);
Text_SetStyle(tx2,2,0);
# Text_SetStyle(tx3,2,0);