커뮤니티
부탁드립니다.
2019-07-06 22:50:23
453
글번호 130103
그림과 같이 부탁 드립니다.
Input:기간(100),매물대개수(10),선두께(1);
Var:j(0),k(0),구간최고가(0),구간최저가(0),가격단위(0),
총거래량(0),최대거래량(0),최대매물대(0),비중(0),TL1(0);
Array:매물대[30,3](0); // 열번호 1:가격이상,2:가격미만,3:수량
//============= 매물대 계산 =======================//
구간최고가 = Highest(H,기간);
구간최저가 = Lowest(L,기간);
If !(구간최고가[1] == 구간최고가 and 구간최저가[1] == 구간최저가) Then {
가격단위 = (구간최고가 - 구간최저가)/매물대개수;
매물대[1,1] = 구간최저가;
매물대[1,2] = 매물대[1,1] + 가격단위;
매물대[1,3] = 0;
For j = 2 To 매물대개수 {
매물대[j,1] = 매물대[j-1,1] + 가격단위;
매물대[j,2] = 매물대[j-1,2] + 가격단위;
매물대[j,3] = 0;
}
총거래량 = 0;
For k = 0 To 기간 - 1 {
총거래량 = 총거래량 + V[k];
For j = 1 To 매물대개수 {
If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then {
매물대[j,3] = 매물대[j,3] + V[k];
j = 매물대개수;
}
}
}
} Else {
총거래량 = 총거래량 + V;
For j = 1 To 매물대개수 {
If 매물대[j,1] <= C and C < 매물대[j,2] Then {
매물대[j,3] = 매물대[j,3] + V;
j = 매물대개수;
}
}
}
최대거래량 = 0;
최대매물대 = 0;
For j = 1 To 매물대개수 {
If 최대거래량 < 매물대[j,3] Then {
최대거래량 = 매물대[j,3];
최대매물대 = j; // 값이 큰 행의 번호
}
}
//============= 매물벽 출력 =======================//
If 최대매물대 > 0 Then {
TL1 = TL_New(sDate[1],sTime[1],매물대[최대매물대,1],sDate,sTime,매물대[최대매물대,2]);
TL_SetSize(TL1,선두께);
비중 = int(최대거래량 / 총거래량 * 200);
TL_SetColor(TL1,RGB(200 - 비중, 200 - 비중, 200 - 비중)); // 비중이 클수록 더 진해집니다.
}
- 1. 130714_qq.PNG (0.03 MB)
답변 1
예스스탁 예스스탁 답변
2019-07-08 09:06:41
안녕하세요
예스스탁입니다.
수식으로 별도로 수정해 드릴만한 부분이 없습니다.
Input:기간(100),매물대개수(10),선두께(1);
해당폭은 가격입니다. 매물대개수를 크게하시면 좁아지게 됩니다.
즐거운 하루되세요
> yes 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 그림과 같이 부탁 드립니다.
Input:기간(100),매물대개수(10),선두께(1);
Var:j(0),k(0),구간최고가(0),구간최저가(0),가격단위(0),
총거래량(0),최대거래량(0),최대매물대(0),비중(0),TL1(0);
Array:매물대[30,3](0); // 열번호 1:가격이상,2:가격미만,3:수량
//============= 매물대 계산 =======================//
구간최고가 = Highest(H,기간);
구간최저가 = Lowest(L,기간);
If !(구간최고가[1] == 구간최고가 and 구간최저가[1] == 구간최저가) Then {
가격단위 = (구간최고가 - 구간최저가)/매물대개수;
매물대[1,1] = 구간최저가;
매물대[1,2] = 매물대[1,1] + 가격단위;
매물대[1,3] = 0;
For j = 2 To 매물대개수 {
매물대[j,1] = 매물대[j-1,1] + 가격단위;
매물대[j,2] = 매물대[j-1,2] + 가격단위;
매물대[j,3] = 0;
}
총거래량 = 0;
For k = 0 To 기간 - 1 {
총거래량 = 총거래량 + V[k];
For j = 1 To 매물대개수 {
If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then {
매물대[j,3] = 매물대[j,3] + V[k];
j = 매물대개수;
}
}
}
} Else {
총거래량 = 총거래량 + V;
For j = 1 To 매물대개수 {
If 매물대[j,1] <= C and C < 매물대[j,2] Then {
매물대[j,3] = 매물대[j,3] + V;
j = 매물대개수;
}
}
}
최대거래량 = 0;
최대매물대 = 0;
For j = 1 To 매물대개수 {
If 최대거래량 < 매물대[j,3] Then {
최대거래량 = 매물대[j,3];
최대매물대 = j; // 값이 큰 행의 번호
}
}
//============= 매물벽 출력 =======================//
If 최대매물대 > 0 Then {
TL1 = TL_New(sDate[1],sTime[1],매물대[최대매물대,1],sDate,sTime,매물대[최대매물대,2]);
TL_SetSize(TL1,선두께);
비중 = int(최대거래량 / 총거래량 * 200);
TL_SetColor(TL1,RGB(200 - 비중, 200 - 비중, 200 - 비중)); // 비중이 클수록 더 진해집니다.
}
다음글
이전글