커뮤니티
vwap검색식
재미나이의 도움을받아 vwap검색식을 만들어보았으나 반영이 제대로 되지않는것같아 문의드립니다
이건 일봉상 vwap아래에있는 조건식
Input : Period(250);
Var : TargetIndex(0), count(0), sumPV(0), sumV(0), AutoAVWAP(0), vM(0), HighVol(0);
// 1. 기간 내 최고 거래량 값 찾기
HighVol = Highest(V, Period);
// 2. 최고 거래량이 발생한 위치(현재로부터 몇 봉 전인지) 찾기
TargetIndex = -1;
for count = 0 to Period - 1
{
if TargetIndex == -1 and V[count] == HighVol Then
TargetIndex = count;
}
// 3. 기준봉을 찾았고 데이터가 충분할 때만 계산
if TargetIndex >= 0 and Index >= Period Then
{
sumPV = 0;
sumV = 0;
// 4. 앵커(기준봉)부터 현재까지의 누적 VWAP 계산
for count = 0 to TargetIndex
{
vM = (H[count] + L[count] + C[count]) / 3;
sumPV = sumPV + vM * V[count];
sumV = sumV + V[count];
}
if sumV > 0 Then
{
AutoAVWAP = sumPV / sumV;
// 5. 조건 설정: 주가가 검은선(AutoAVWAP)보다 아래에 있는 종목만 검색
if C < AutoAVWAP Then
Find(1);
}
}
이건 주가가 vwap밴드 보다 위에있는 조건식
Input : Period(250), D2(2);
Var : TargetIndex(0), count(0), sumPV(0), sumV(0), AutoAVWAP(0);
Var : sumVar(0), StdDev(0), LowerBand(0), vM(0); // M을 vM으로 변경
// 1. 데이터 확보 및 최고 거래량 지점 찾기
if Index >= Period Then
{
TargetIndex = MRO(V == Highest(V, Period), Period, 1);
sumPV = 0;
sumV = 0;
// 2. 앵커 시점부터의 VWAP(평균가격) 계산
for count = 0 to TargetIndex
{
vM = (H[count] + L[count] + C[count]) / 3;
sumPV = sumPV + vM * V[count];
sumV = sumV + V[count];
}
if sumV > 0 Then
{
AutoAVWAP = sumPV / sumV;
// 3. 표준편차 계산을 위한 편차 제곱합 계산
sumVar = 0;
for count = 0 to TargetIndex
{
vM = (H[count] + L[count] + C[count]) / 3;
sumVar = sumVar + V[count] * Pow(vM - AutoAVWAP, 2);
}
// 4. 하단 밴드 산출 (표준편차 적용)
StdDev = SQRT(sumVar / sumV);
LowerBand = AutoAVWAP - (D2 * StdDev);
// 5. 조건: 주가가 하단 밴드보다 위에 있는 종목 검색
if C > LowerBand Then
Find(1);
}
}
이렇게 적용시켜보았으나 vwap보다 높은위치에 있는 종목이 걸러질때가 있던데 어떻게 수정하면 좋을지 문의드립니다
답변 1
예스스탁 예스스탁 답변
2026-02-02 09:25:51