커뮤니티
개인 선물 순매수 수량
2013-08-13 18:52:35
233
글번호 66417
안녕하세요.
수식지왕님의 매물대 차트 수식에서 전체 거래량 매물대 대신, 개인 순매수 수량의 매물대를 만들고자 합니다.
하여 기존의 V[j]를 data2(j) 로 변경하여 수식 적용을 해 봤는데요.
참조 차트를 data2 = 개인 선물 순매수수량, data3 = 외국인 선물 순매수 수량
으로 하여 data2, data3을 변경 해봐도 값이 똑같네요.
data2, 3이 적용이 안된는건지, 수식이 잘못 되었는지 확인 부탁 드립니다.
#==========================================#
# 지 표 명 : 매물대차트v2.0
# 작 성 자 : 수식지왕
# 블 로 그 : http://yahoosir.blog.me
#==========================================#
Input:기간(500),
구간개수(20); //최대 20
Var:최대(0),최소(0),j(0),행번호(0),총거래량(0),가격대거래량(0),
시작번호(0),끝번호(0);
Array:가격대[21](0),거래량[21](0),비율[21](0),Text[21](0),TL[21](0);
#----------------------------------------------------------------------------------#
# 가격대를 배열변수에 세팅한다.
#----------------------------------------------------------------------------------#
최대 = Highest(H,기간-1);
최소 = Lowest(L,기간-1);
Value1 = Round((최대-최소)/구간개수,0);
가격대[0] = 최대;
For 행번호 = 0 To 구간개수-1 {
가격대[행번호+1] = 가격대[행번호] - Value1;
거래량[행번호] = 0;
비율[행번호] = 0;
}
총거래량 = 0;
For j = 0 To 기간-2 {
총거래량 = 총거래량 + data2(j);
#----------------------------------------------------------------------------------#
# 거래량을 걸쳐있는 가격대에 분배
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
if 가격대[행번호] >= H[j] and 가격대[행번호+1] < H[j] then 시작번호 = 행번호;
if 가격대[행번호] >= L[j] and 가격대[행번호+1] < L[j] then 끝번호 = 행번호;
}
가격대거래량 = data2(j)/(끝번호-시작번호+1);
for 행번호 = 시작번호 To 끝번호 {
거래량[행번호] = 거래량[행번호] + 가격대거래량;
}
}
#----------------------------------------------------------------------------------#
# 비율 계산
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
비율[행번호] = 거래량[행번호] * 100 / 총거래량;
}
#----------------------------------------------------------------------------------#
# 지표출력
#----------------------------------------------------------------------------------#
for j = 0 to 구간개수-1 {
TL_Delete(TL[j]);
TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);
Text_Delete(Text[j]);
Text[j] = Text_New(date[0], stime[0], (가격대[j]+가격대[j+1])/2,NumToStr(거래량[j],0)+" ("+NumToStr(비율[j],2)+"%)("+NumToStr(가격대[j+1],0)+" ~ "+NumToStr(가격대[j],0)+")");
Text_SetStyle(Text[j], 1, 2);
}
j = 구간개수;
TL_Delete(TL[j]);
TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);
답변 1
예스스탁 예스스탁 답변
2013-08-14 10:36:13
안녕하세요
예스스탁입니다.
data2함수는 data2(c)와 참조데이터에서 가져올 데이터를 지정하셔야 합니다.
data2(j)와 같이 사용하시면 어떤 값을 가져오는지 알수 없습니다.
참조데이터 함수는 함수자체를 for문에서 이용하시면 안되고
아래와 같이 참조데이터를 변수처리 한후에 해당 값을 for문에서 이용해야 합니다.
Input:기간(500),
구간개수(20); //최대 20
Var:최대(0,data1),최소(0,data1),j(0,data1),행번호(0,data1),총거래량(0,data1);
var: 가격대거래량(0,data1),시작번호(0,data1),끝번호(0,data1),val1(0,data1),d2(0,data2);
Array:가격대[21](0,data1),거래량[21](0,data1),비율[21](0,data1),Text[21](0,data1),TL[21](0,data1);
#----------------------------------------------------------------------------------#
# 가격대를 배열변수에 세팅한다.
#----------------------------------------------------------------------------------#
최대 = data1(Highest(H,기간-1));
최소 = data1(Lowest(L,기간-1));
Val1 = data1(Round((최대-최소)/구간개수,0));
D2 = data2(c);
가격대[0] = 최대;
For 행번호 = 0 To 구간개수-1 {
가격대[행번호+1] = 가격대[행번호] - Val1;
거래량[행번호] = 0;
비율[행번호] = 0;
}
총거래량 = 0;
For j = 0 To 기간-2 {
총거래량 = 총거래량 + D2[j];
#----------------------------------------------------------------------------------#
# 거래량을 걸쳐있는 가격대에 분배
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
if 가격대[행번호] >= H[j] and 가격대[행번호+1] < H[j] then 시작번호 = 행번호;
if 가격대[행번호] >= L[j] and 가격대[행번호+1] < L[j] then 끝번호 = 행번호;
}
가격대거래량 = D2[j]/(끝번호-시작번호+1);
for 행번호 = 시작번호 To 끝번호 {
거래량[행번호] = 거래량[행번호] + 가격대거래량;
}
}
#----------------------------------------------------------------------------------#
# 비율 계산
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
비율[행번호] = 거래량[행번호] * 100 / 총거래량;
}
#----------------------------------------------------------------------------------#
# 지표출력
#----------------------------------------------------------------------------------#
for j = 0 to 구간개수-1 {
TL_Delete(TL[j]);
TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);
Text_Delete(Text[j]);
Text[j] = Text_New(date[0], stime[0], (가격대[j]+가격대[j+1])/2,NumToStr(거래량[j],0)+" ("+NumToStr(비율[j],2)+"%)("+NumToStr(가격대[j+1],0)+" ~ "+NumToStr(가격대[j],0)+")");
Text_SetStyle(Text[j], 1, 2);
}
j = 구간개수;
TL_Delete(TL[j]);
TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);
즐거운 하루되세요
> 몽치 님이 쓴 글입니다.
> 제목 : 개인 선물 순매수 수량
> 안녕하세요.
수식지왕님의 매물대 차트 수식에서 전체 거래량 매물대 대신, 개인 순매수 수량의 매물대를 만들고자 합니다.
하여 기존의 V[j]를 data2(j) 로 변경하여 수식 적용을 해 봤는데요.
참조 차트를 data2 = 개인 선물 순매수수량, data3 = 외국인 선물 순매수 수량
으로 하여 data2, data3을 변경 해봐도 값이 똑같네요.
data2, 3이 적용이 안된는건지, 수식이 잘못 되었는지 확인 부탁 드립니다.
#==========================================#
# 지 표 명 : 매물대차트v2.0
# 작 성 자 : 수식지왕
# 블 로 그 : http://yahoosir.blog.me
#==========================================#
Input:기간(500),
구간개수(20); //최대 20
Var:최대(0),최소(0),j(0),행번호(0),총거래량(0),가격대거래량(0),
시작번호(0),끝번호(0);
Array:가격대[21](0),거래량[21](0),비율[21](0),Text[21](0),TL[21](0);
#----------------------------------------------------------------------------------#
# 가격대를 배열변수에 세팅한다.
#----------------------------------------------------------------------------------#
최대 = Highest(H,기간-1);
최소 = Lowest(L,기간-1);
Value1 = Round((최대-최소)/구간개수,0);
가격대[0] = 최대;
For 행번호 = 0 To 구간개수-1 {
가격대[행번호+1] = 가격대[행번호] - Value1;
거래량[행번호] = 0;
비율[행번호] = 0;
}
총거래량 = 0;
For j = 0 To 기간-2 {
총거래량 = 총거래량 + data2(j);
#----------------------------------------------------------------------------------#
# 거래량을 걸쳐있는 가격대에 분배
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
if 가격대[행번호] >= H[j] and 가격대[행번호+1] < H[j] then 시작번호 = 행번호;
if 가격대[행번호] >= L[j] and 가격대[행번호+1] < L[j] then 끝번호 = 행번호;
}
가격대거래량 = data2(j)/(끝번호-시작번호+1);
for 행번호 = 시작번호 To 끝번호 {
거래량[행번호] = 거래량[행번호] + 가격대거래량;
}
}
#----------------------------------------------------------------------------------#
# 비율 계산
#----------------------------------------------------------------------------------#
for 행번호 = 0 To 구간개수-1 {
비율[행번호] = 거래량[행번호] * 100 / 총거래량;
}
#----------------------------------------------------------------------------------#
# 지표출력
#----------------------------------------------------------------------------------#
for j = 0 to 구간개수-1 {
TL_Delete(TL[j]);
TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);
Text_Delete(Text[j]);
Text[j] = Text_New(date[0], stime[0], (가격대[j]+가격대[j+1])/2,NumToStr(거래량[j],0)+" ("+NumToStr(비율[j],2)+"%)("+NumToStr(가격대[j+1],0)+" ~ "+NumToStr(가격대[j],0)+")");
Text_SetStyle(Text[j], 1, 2);
}
j = 구간개수;
TL_Delete(TL[j]);
TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);