커뮤니티

지표작성 부탁드립니다.

프로필 이미지
고박사122
2026-03-01 12:17:13
50
글번호 230816
답변완료

안녕하세요. 운영자님


예스나AI 로 Fair Value Gap 과 Order Block 을 표시하는 지표를 만들었는데 차트에 적용시켜 보면 나타나지 않습니다.

검토 부탁드립니다.


// FairValueGap & OrderBlock 표시 지표

// 제목: FVG & OrderBlock


input : Lookback(50), FVGMinSize(0.5), OBStrengthThreshold(2);

Array : BoxId[50](0);

Var : i(0), j(0), k(0);

Var : fvgTop(0), fvgBottom(0), fvgHeight(0), fvgTop2(0), fvgBottom2(0), fvgH2(0);

Var : bodySize(0), avgBody(0), obTop(0), obBottom(0);


// 초기 인덱스 카운트

j = 0;


For i = 1 To Lookback

{

// Fair Value Gap (3-bar 패턴)

// 상승 FVG 조건: Low[i-1] > High[i+1]

fvgTop = Low[i-1];

fvgBottom = High[i+1];

fvgHeight = fvgTop - fvgBottom;

If fvgHeight >= FVGMinSize Then

{

BoxId[j] = Box_New(sDate[Index - i + 1], sTime[Index - i + 1], fvgTop, sDate[Index - i - 1], sTime[Index - i - 1], fvgBottom);

Box_SetColor(BoxId[j], Cyan);

j = j + 1;

if j >= 50 Then j = 0;

}


// 반대 방향 FVG (하락)

fvgTop2 = Low[i+1];

fvgBottom2 = High[i-1];

fvgH2 = fvgTop2 - fvgBottom2;

If fvgH2 >= FVGMinSize Then

{

BoxId[j] = Box_New(sDate[Index - i - 1], sTime[Index - i - 1], fvgTop2, sDate[Index - i + 1], sTime[Index - i + 1], fvgBottom2);

Box_SetColor(BoxId[j], Cyan);

j = j + 1;

if j >= 50 Then j = 0;

}


// Order Block 탐지: 현재 바디가 최근 10봉 평균 바디의 OBStrengthThreshold 배 이상이면 OB로 간주

bodySize = Abs(C[i] - O[i]);

avgBody = 0;

For k = 1 To 10

{

avgBody = avgBody + Abs(C[k] - O[k]);

}

avgBody = avgBody / 10;


If avgBody > 0 And bodySize >= avgBody * OBStrengthThreshold Then

{

obTop = Max(O[i], C[i]);

obBottom = Min(O[i], C[i]);

BoxId[j] = Box_New(sDate[Index - i], sTime[Index - i], obTop, sDate[Index - i], sTime[Index - i], obBottom);

If C[i] < O[i] Then

Box_SetColor(BoxId[j], Red);

Else

Box_SetColor(BoxId[j], Lime);

j = j + 1;

if j >= 50 Then j = 0;

}

}


// 지표용 기준선 없음, 박스만 표시


지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-03-03 14:46:06

안녕하세요 예스스탁입니다. 아마 FVG Order Blocks [BigBeluga] 트레이딩뷰 식을 변환하신 것 같습니다. 해당 수식은 변환이 어렵습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요