커뮤니티
지표
2026-09-09 11:02:31
83
글번호 233551
안녕하세요
선물60틱차트에서 On Balance Price 120틱 지표을같이볼려구합니다
이미지는 선물60틱차트입니다
On Balance Price 120틱지표가이렇게표시됩니까?
맡에지표가주신수식입니다 검토부탁합니다. 감사합니다

안녕하세요
예스스탁입니다.
input : n(2);//기본차트 2배주기
var : cnt(0),D1(0),idx(0),TF(0);
Array : CC[10](0);
Var : OBP(0) ;
if Bdate != Bdate[1] Then
{
D1 = sdate;
idx = 0;
}
Else
idx = idx+1;
if D1 > 0 then
{
TF = idx%n;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 99 DownTo 1
{
CC[cnt] = CC[cnt-1];
}
}
CC[0] = C;
If CC[0] > CC[1] Then
OBP = 1;
else if CC[0] < CC[1] Then
OBP = -1;
else
OBP = 0;
Plot1(OBP);
}
답변 1
예스스탁 예스스탁 답변
2026-09-09 13:03:34
안녕하세요
예스스탁입니다.
1
Var : OBP(0) ;
If Close > Close[1] Then
OBP = 1;
else if Close < Close[1] Then
OBP = -1;
else
OBP = 0;
Plot1(accum(OBP), "On Balance Price");
PlotBaseLine1(0, "기준선0");
On Balance Price 계산식인데
차트 전체 누적값 처리가 빠졌있었습니다.
2
기본식이 차트 전체 누적입니다.
60틱에서 120틱이면 봉수 문제로 값이 다를 수 있습니다.
60틱의 조회봉수가 120틱의 2배가 되어야 값이 같거나 비슷하게 됩니다.
수정한 식입니다.
input : n(2);//기본차트 2배주기
var : cnt(0),D1(0),idx(0),TF(0);
Array : CC[10](0);
Var : OBP(0),sum(0),sumOBP(0);
if Index == 0 or Bdate != Bdate[1] Then
{
D1 = sdate;
idx = 0;
}
Else
idx = idx+1;
if D1 > 0 then
{
TF = idx%n;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 99 DownTo 1
{
CC[cnt] = CC[cnt-1];
}
SUM = SUM + OBP[1];
}
CC[0] = C;
If CC[0] > CC[1] Then
OBP = 1;
else if CC[0] < CC[1] Then
OBP = -1;
else
OBP = 0;
sumOBP = sum+OBP;
Plot1(sumOBP);
}
즐거운 하루되세요
다음글
이전글