커뮤니티
매물벽 지표 관련해서
2012-07-20 06:48:23
380
글번호 53077
아래는 수식지왕님의 매물벽지표 산식입니다.
제가 YT에 표시되는 매물벽 값과 비교를 해 보니 값이 다른거 같아서요
왜 다른지를 좀 알 수 있을까 해서요
매물벽을 분봉으로 참조하고 있는데 YT에서 나오는 값과 동일하게
변경이 가능한지 궁금합니다.
감사합니다.
#==========================================#
# 지 표 명 : 매물벽지표
# 작 성 자 : 수식지왕
# 블 로 그 : http://yahoosir.blog.me
#==========================================#
Input:Period(2000),Percent(20);
Var:j(0),k(0),행번호(0),cnt(0),총거래량(0),추정거래량(0);
Array:가격대[1000](0),거래량[1000](0),구간[11](0),부분합[10](0),비율[10](0);
If Index == 0 then
{
#----------------------------------------------------------------------------------#
# 가격대를 배열변수에 세팅한다.
# 첫번째 봉에서 한번만 수행하고 이후는 추가행으로 처리
#----------------------------------------------------------------------------------#
가격대[0] = (Int(Round(H/PriceScale/100,9))+3) * PriceScale * 100; //200틱 이상 둠
for 행번호 = 0 to 998
{
가격대[행번호+1] = 가격대[행번호] - PriceScale; //가격대 배열에 가격 대입둠
}
}
#----------------------------------------------------------------------------------#
# 가격대를 위로 벗어날 경우 행을 추가한다.
#----------------------------------------------------------------------------------#
if 가격대[0] <= H + PriceScale * 100 then //고가가 가격대 배열 이상이 되면
{
for 행번호 = 899 downto 0
{
가격대[행번호+100] = 가격대[행번호]; //추가행만큼 뒤로 옮긴다
거래량[행번호+100] = 거래량[행번호];
}
가격대[0] = 가격대[0] + PriceScale * 100; //추가된 행에 가격 재설정
for 행번호 = 0 to 99
{
가격대[행번호+1] = 가격대[행번호] - PriceScale;
}
for 행번호 = 0 to 100 //추가된 행의 나머지 항목은
{
거래량[행번호] = 0; //0값으로 초기화
}
}
#----------------------------------------------------------------------------------#
# 반대로 가격이 하락세라면 상단의 빈가격대 행을 삭제한다.
#----------------------------------------------------------------------------------#
if 가격대[0] > highest(H,Period) + PriceScale * 300 then //가격 하락 추세일 경우
{
for 행번호 = 0 to 899
{
가격대[행번호] = 가격대[행번호+100]; //100행만큼 앞으로 옮긴다
거래량[행번호] = 거래량[행번호+100];
}
for 행번호 = 899 to 998
{
가격대[행번호+1] = 가격대[행번호] - PriceScale;
}
for 행번호 = 900 to 999 //추가된 행의 나머지 항목은
{
거래량[행번호] = 0; //0값으로 초기화
}
}
#----------------------------------------------------------------------------------#
# 현재 봉의 거래량을 걸쳐있는 가격대에 분배
#----------------------------------------------------------------------------------#
cnt = 0;
for 행번호 = 0 to 999
{
if L <= 가격대[행번호] and 가격대[행번호] <= H then //현재 봉 가격대가 몇가격대
cnt = cnt + 1; //걸쳐져 있는지 계산
}
추정거래량 = V/cnt; //가격대별 배분할 거래량
//두번 연산하는 셈인데 위에서는 몇가격대에 걸쳐 있는지 판단하기 위함이고
//아래는 가격대에 해당 거래량을 누적하는 것임
for 행번호 = 0 to 999
{
if L <= 가격대[행번호] and 가격대[행번호] <= H then
{
거래량[행번호] = 거래량[행번호] + 추정거래량;
}
}
#----------------------------------------------------------------------------------#
# 이전 봉의 거래량을 걸쳐있는 가격대에 차감
#----------------------------------------------------------------------------------#
If Index >= Period Then
{
cnt = 0;
for 행번호 = 0 to 999
{
if L[Period] <= 가격대[행번호] and 가격대[행번호] <= H[Period] then
cnt = cnt + 1;
}
추정거래량 = V[Period]/cnt;
for 행번호 = 0 to 999
{
if L[Period] <= 가격대[행번호] and 가격대[행번호] <= H[Period] then
{
거래량[행번호] = 거래량[행번호] - 추정거래량;
}
}
}
#----------------------------------------------------------------------------------#
# 10개 구간의 구간별 거래량 비율 계산
#----------------------------------------------------------------------------------#
총거래량 = 총거래량 + V - Iff(Index>=Period,V[Period],0);
For j = 0 To 9
{
구간[j] = 가격대[j*100];
부분합[j] = 0;
}
구간[10] = 가격대[999]-PriceScale;
k = 0;
For j = 0 To 999
{
If 구간[k] >= 가격대[j] && 구간[k+1] < 가격대[j] Then
부분합[k] = 부분합[k] + 거래량[j];
Else
k = k + 1;
}
For j = 0 To 9
{
비율[j] = 부분합[j] * 100 / 총거래량;
}
if 비율[0] > percent then plot1(구간[0]);
if 비율[0] > percent then Plot2(구간[1]);
if 비율[1] > percent then Plot3(구간[1]);
if 비율[1] > percent then plot4(구간[2]);
if 비율[2] > percent then Plot5(구간[2]);
if 비율[2] > percent then plot6(구간[3]);
if 비율[3] > percent then Plot7(구간[3]);
if 비율[3] > percent then plot8(구간[4]);
if 비율[4] > percent then Plot9(구간[4]);
if 비율[4] > percent then plot10(구간[5]);
if 비율[5] > percent then Plot11(구간[5]);
if 비율[5] > percent then plot12(구간[6]);
if 비율[6] > percent then plot13(구간[6]);
if 비율[6] > percent then Plot14(구간[7]);
if 비율[7] > percent then Plot15(구간[7]);
if 비율[7] > percent then plot16(구간[8]);
if 비율[8] > percent then Plot17(구간[8]);
if 비율[8] > percent then plot18(구간[9]);
if 비율[9] > percent then Plot19(구간[9]);
if 비율[9] > percent then plot20(구간[10]);
답변 1
예스스탁 예스스탁 답변
2012-07-20 15:29:12
안녕하세요
예스스탁입니다.
차트설정으로 제공되는 매물대는
내부적으로 수신되는 모든 틱데이터를 이용해 계산되어 표시됩니다.
수식에서는 각봉의 최종누적값만 사용해서 계산는 것이므로
모든 데이터로 계산되는 것이 아닙니다.
프로그램 자체에서 제공되는 내용으로는 작성이 가능하지 않습니다.
즐거운 하루되세요
> 엠제이 님이 쓴 글입니다.
> 제목 : 매물벽 지표 관련해서
> 아래는 수식지왕님의 매물벽지표 산식입니다.
제가 YT에 표시되는 매물벽 값과 비교를 해 보니 값이 다른거 같아서요
왜 다른지를 좀 알 수 있을까 해서요
매물벽을 분봉으로 참조하고 있는데 YT에서 나오는 값과 동일하게
변경이 가능한지 궁금합니다.
감사합니다.
#==========================================#
# 지 표 명 : 매물벽지표
# 작 성 자 : 수식지왕
# 블 로 그 : http://yahoosir.blog.me
#==========================================#
Input:Period(2000),Percent(20);
Var:j(0),k(0),행번호(0),cnt(0),총거래량(0),추정거래량(0);
Array:가격대[1000](0),거래량[1000](0),구간[11](0),부분합[10](0),비율[10](0);
If Index == 0 then
{
#----------------------------------------------------------------------------------#
# 가격대를 배열변수에 세팅한다.
# 첫번째 봉에서 한번만 수행하고 이후는 추가행으로 처리
#----------------------------------------------------------------------------------#
가격대[0] = (Int(Round(H/PriceScale/100,9))+3) * PriceScale * 100; //200틱 이상 둠
for 행번호 = 0 to 998
{
가격대[행번호+1] = 가격대[행번호] - PriceScale; //가격대 배열에 가격 대입둠
}
}
#----------------------------------------------------------------------------------#
# 가격대를 위로 벗어날 경우 행을 추가한다.
#----------------------------------------------------------------------------------#
if 가격대[0] <= H + PriceScale * 100 then //고가가 가격대 배열 이상이 되면
{
for 행번호 = 899 downto 0
{
가격대[행번호+100] = 가격대[행번호]; //추가행만큼 뒤로 옮긴다
거래량[행번호+100] = 거래량[행번호];
}
가격대[0] = 가격대[0] + PriceScale * 100; //추가된 행에 가격 재설정
for 행번호 = 0 to 99
{
가격대[행번호+1] = 가격대[행번호] - PriceScale;
}
for 행번호 = 0 to 100 //추가된 행의 나머지 항목은
{
거래량[행번호] = 0; //0값으로 초기화
}
}
#----------------------------------------------------------------------------------#
# 반대로 가격이 하락세라면 상단의 빈가격대 행을 삭제한다.
#----------------------------------------------------------------------------------#
if 가격대[0] > highest(H,Period) + PriceScale * 300 then //가격 하락 추세일 경우
{
for 행번호 = 0 to 899
{
가격대[행번호] = 가격대[행번호+100]; //100행만큼 앞으로 옮긴다
거래량[행번호] = 거래량[행번호+100];
}
for 행번호 = 899 to 998
{
가격대[행번호+1] = 가격대[행번호] - PriceScale;
}
for 행번호 = 900 to 999 //추가된 행의 나머지 항목은
{
거래량[행번호] = 0; //0값으로 초기화
}
}
#----------------------------------------------------------------------------------#
# 현재 봉의 거래량을 걸쳐있는 가격대에 분배
#----------------------------------------------------------------------------------#
cnt = 0;
for 행번호 = 0 to 999
{
if L <= 가격대[행번호] and 가격대[행번호] <= H then //현재 봉 가격대가 몇가격대
cnt = cnt + 1; //걸쳐져 있는지 계산
}
추정거래량 = V/cnt; //가격대별 배분할 거래량
//두번 연산하는 셈인데 위에서는 몇가격대에 걸쳐 있는지 판단하기 위함이고
//아래는 가격대에 해당 거래량을 누적하는 것임
for 행번호 = 0 to 999
{
if L <= 가격대[행번호] and 가격대[행번호] <= H then
{
거래량[행번호] = 거래량[행번호] + 추정거래량;
}
}
#----------------------------------------------------------------------------------#
# 이전 봉의 거래량을 걸쳐있는 가격대에 차감
#----------------------------------------------------------------------------------#
If Index >= Period Then
{
cnt = 0;
for 행번호 = 0 to 999
{
if L[Period] <= 가격대[행번호] and 가격대[행번호] <= H[Period] then
cnt = cnt + 1;
}
추정거래량 = V[Period]/cnt;
for 행번호 = 0 to 999
{
if L[Period] <= 가격대[행번호] and 가격대[행번호] <= H[Period] then
{
거래량[행번호] = 거래량[행번호] - 추정거래량;
}
}
}
#----------------------------------------------------------------------------------#
# 10개 구간의 구간별 거래량 비율 계산
#----------------------------------------------------------------------------------#
총거래량 = 총거래량 + V - Iff(Index>=Period,V[Period],0);
For j = 0 To 9
{
구간[j] = 가격대[j*100];
부분합[j] = 0;
}
구간[10] = 가격대[999]-PriceScale;
k = 0;
For j = 0 To 999
{
If 구간[k] >= 가격대[j] && 구간[k+1] < 가격대[j] Then
부분합[k] = 부분합[k] + 거래량[j];
Else
k = k + 1;
}
For j = 0 To 9
{
비율[j] = 부분합[j] * 100 / 총거래량;
}
if 비율[0] > percent then plot1(구간[0]);
if 비율[0] > percent then Plot2(구간[1]);
if 비율[1] > percent then Plot3(구간[1]);
if 비율[1] > percent then plot4(구간[2]);
if 비율[2] > percent then Plot5(구간[2]);
if 비율[2] > percent then plot6(구간[3]);
if 비율[3] > percent then Plot7(구간[3]);
if 비율[3] > percent then plot8(구간[4]);
if 비율[4] > percent then Plot9(구간[4]);
if 비율[4] > percent then plot10(구간[5]);
if 비율[5] > percent then Plot11(구간[5]);
if 비율[5] > percent then plot12(구간[6]);
if 비율[6] > percent then plot13(구간[6]);
if 비율[6] > percent then Plot14(구간[7]);
if 비율[7] > percent then Plot15(구간[7]);
if 비율[7] > percent then plot16(구간[8]);
if 비율[8] > percent then Plot17(구간[8]);
if 비율[8] > percent then plot18(구간[9]);
if 비율[9] > percent then Plot19(구간[9]);
if 비율[9] > percent then plot20(구간[10]);
다음글
이전글