커뮤니티

수식 검토 및 수정요청

프로필 이미지
심홍
2026-05-21 16:06:45
93
글번호 232129
답변완료

수고하십니다

아래사항을 검토 및 수정 부탁드립니다

1. 종목검색(일봉 및 15분봉)이 안됩니다. (500봉으로 검색)

  - 일봉은 200억 분종은 10억으로 검색

3. 지표는 첨부한 그림처럼 마지막봉과 가격이 겹칩니다

  - 마지막봉과 가격이 겹치지 않도록  봉의 우측 및  수평선의 위로 위치를 조정해 주시고

    가격단위는 100000이 100,000으로 표현되도록 수정


###  종목검색식 ###

input : P1(20),P2(240),Period(150),DoD(1.03);

input : 거래대금(200);//억단위

var : vwap(0),vwma(0),mav1(0),mav2(0);

var : mx(0),mn(0),T(0),T1(0),T2(0);


mav1 = ma(c,P1);

mav2 = ma(c,P2);


vwap = AccumN((H+L+C)/3 * V, Period) / AccumN(V, Period);

vwma = AccumN(C * V, Period) / AccumN(V, Period);


mx = max(vwap,vwma);

mn = min(vwap,vwma);


//조건1

Condition1 = mav1 > mav2 and mav2 > mav2[1] and

Money >= 거래대금*100000000 and

c >= DayClose(1)*DoD and

c > DayOpen;


#종가라 기준선중 큰값을 돌파하면

if T <= 0 and CrossUp(c,mx) Then

{

T = 1; #T는 1

#조건1을 만족했으면 T는 2

if Condition1 == true Then

T = 2;


T1 = T[1]; #T1는 직전구간(데드구간) T값

T2 = T1[1]; #T1 전전구간(직전골드구간) T값


#현재골드봉이고 직전데드구간은 -1로 끝났고 직전골드봉은 조건1이 만족

if T1 == -1 and T2 == 2 Then

Find(1);

}


if T >= 0 and CrossDown(c,mn) Then

T = -1;


#조건2체크 : 데드 구간에서 고가가 기준선 중 작은값보다 크거나 작은 봉이 하나라도 있으면 T는 -1에서 0

if T == -1 and H >= mn Then

T = -2;



### 지표식 ###

input : P1(20),P2(240),Period(150);

input : 거래대금(200);//억단위

input : 골드수평선색(red),데드수평선색(blue);

input : 골드수평선굵기(1),데드수평선굵기(1);

input : 골드가격표시색(red),데드가격표시색(blue);

input : 골드가격글자크기(12),데드가격글자크기(12);

input : 골드가격수숫점자리(4),데드가격소숫점자리(4);

var : vwap(0),vwma(0),mav1(0),mav2(0);

var : mx(0),mn(0),T(0),T1(0),T2(0);

var : upv(0),dnv(0),TL1(0),TX1(0),TL2(0),TX2(0);


mav1 = ma(c,P1);

mav2 = ma(c,P2);


vwap = AccumN((H+L+C)/3 * V, Period) / AccumN(V, Period);

vwma = AccumN(C * V, Period) / AccumN(V, Period);


Plot1(vwap,"vwap");

Plot2(vwma,"vwma");


mx = max(vwap,vwma);

mn = min(vwap,vwma);


//조건1

Condition1 = mav1 > mav1 and

Money >= 거래대금*100000000 and

C >= DayClose(1)*1.05 and

c > DayOpen;


#종가라 기준선중 큰값을 돌파하면

if T <= 0 and CrossUp(c,mx) Then

{

T = 1; #T는 1

#조건1을 만족했으면 T는 2

if Condition1 == true Then

T = 2;


T1 = T[1]; #T1는 직전구간(데드구간) T값

T2 = T1[1]; #T1 전전구간(직전골드구간) T값


Plot3(L,"골드(점)");


upv = mx;

TL_Delete(TL1);

TL1 = TL_New(sDate,sTime,upv,NextBarSdate,NextBarStime,upv);

TL_SetDrawMode(TL1,0);

TL_SetExtLeft(TL1,true);

TL_SetExtRight(TL1,true);

TL_SetColor(TL1,골드수평선색);

TL_SetSize(TL1,골드수평선굵기);


Text_Delete(TX1);

TX1 = Text_New(NextBarSdate,NextBarStime,upv,NumToStr(upv,골드가격수숫점자리));

Text_SetStyle(TX1,0,0);

Text_SetColor(TX1,골드가격표시색);

Text_SetSize(TX1,골드가격글자크기);

}

Else

Text_SetLocation(TX1,NextBarSdate,NextBarStime,upv);


if T >= 0 and CrossDown(c,mn) Then

{

T = -1;

Plot4(L,"데드(점)");


dnv = mn;

TL_Delete(TL2);

TL2 = TL_New(sDate,sTime,dnv,NextBarSdate,NextBarStime,dnv);

TL_SetDrawMode(TL2,0);

TL_SetExtLeft(TL2,true);

TL_SetExtRight(TL2,true);

TL_SetColor(TL2,데드수평선색);

TL_SetSize(TL2,데드수평선굵기);


Text_Delete(TX2);

TX2 = Text_New(NextBarSdate,NextBarStime,dnv,NumToStr(dnv,데드가격소숫점자리));

Text_SetStyle(TX2,0,1);

Text_SetColor(TX2,데드가격표시색);

Text_SetSize(TX2,데드가격글자크기);

}

Else

Text_SetLocation(TX2,NextBarSdate,NextBarStime,dnv);


#조건2체크 : 데드 구간에서 고가가 기준선 중 작은값보다 크거나 작은 봉이 하나라도 있으면 T는 -1에서 0

if T == -1 and H >= mn Then

T = -2;


종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-05-21 17:04:54

안녕하세요 예스스탁입니다. 식을 수정했습니다. 1 종목검색 데드구간에서 고가가 기준값(2개중 작은값) 보다 같거나 크면 제외되는데 데드발생봉에서도 판단하게 되어 있어 데드발생봉은 제외하게 수정했습니다. 또한 데드구간에 봉수 지정이 빠져있어 추가했습니다. 현재 데드구간봉수를 5봉으로 하면 검색되는 종목이 없어 1로 지정했습니다. 설정에서 제외종목이나 범위적용은 모두 설정하지 않고 검색했습니다.

input : P1(20),P2(240),Period(150),DoD(1.03),데드구간봉수(1); input : 거래대금(200);//억단위 var : vwap(0),vwma(0),mav1(0),mav2(0); var : mx(0),mn(0),T(0),T1(0),T2(0),deadbars(0); mav1 = ma(c,P1); mav2 = ma(c,P2); vwap = AccumN((H+L+C)/3 * V, Period) / AccumN(V, Period); vwma = AccumN(C * V, Period) / AccumN(V, Period); mx = max(vwap,vwma); mn = min(vwap,vwma); //조건1 Condition1 = mav1 > mav2 and mav2 > mav2[1] and Money >= 거래대금*100000000 and c >= DayClose(1)*DoD and c > DayOpen; #종가라 기준선중 큰값을 돌파하면 if T <= 0 and CrossUp(c,mx) Then { T = 1; #T는 1 #조건1을 만족했으면 T는 2 if Condition1 == true Then T = 2; T1 = T[1]; #T1는 직전구간(데드구간) T값 T2 = T1[1]; #T1 전전구간(직전골드구간) T값 #현재골드봉이고 직전데드구간은 -1로 끝났고 직전골드봉은 조건1이 만족 if T1 == -1 and T2 == 2 and deadbars >= 데드구간봉수 Then Find(1); } if T >= 0 and CrossDown(c,mn) Then { T = -1; T1 = T[1]; T2 = T1[1]; deadbars = 0; } Else { if T == -1 Then deadbars = deadbars+1; #조건2체크 : 데드 구간에서 고가가 기준선 중 작은값보다 크거나 작은 봉이 하나라도 있으면 T는 -1에서 0 if T == -1 and H >= mn Then T = -2; } 2 지표 텍스트는 천단위 구분기호로 표시되게 수정해 드립니다. 다만 봉과 겹치는 부분은 수식에서는 날짜, 시간,가격만 지정해서 표시를 하는데 봉과 겹칩을 확인을 할수 없습니다. 현재 수식에서는 가능한 우측에 표시를 하게 지정은 되어 있습니다. " "+NToStr(dnv,데드가격소숫점자리) 위와 같이 텍스트의 앞에 3칸정도 공백(스페이스바)을 넣어드립니다. 공백을 추가하거나 줄이셔서 조정해 보셔야 합니다. input : P1(20),P2(240),Period(150); input : 거래대금(200);//억단위 input : 골드수평선색(red),데드수평선색(blue); input : 골드수평선굵기(1),데드수평선굵기(1); input : 골드가격표시색(red),데드가격표시색(blue); input : 골드가격글자크기(12),데드가격글자크기(12); input : 골드가격수숫점자리(0),데드가격소숫점자리(0); var : vwap(0),vwma(0),mav1(0),mav2(0); var : mx(0),mn(0),T(0),T1(0),T2(0),deadbars(0); var : upv(0),dnv(0),TL1(0),TX1(0),TL2(0),TX2(0); mav1 = ma(c,P1); mav2 = ma(c,P2); vwap = AccumN((H+L+C)/3 * V, Period) / AccumN(V, Period); vwma = AccumN(C * V, Period) / AccumN(V, Period); Plot1(vwap,"vwap"); Plot2(vwma,"vwma"); mx = max(vwap,vwma); mn = min(vwap,vwma); //조건1 Condition1 = mav1 > mav1 and Money >= 거래대금*100000000 and C >= DayClose(1)*1.05 and c > DayOpen; #종가라 기준선중 큰값을 돌파하면 if T <= 0 and CrossUp(c,mx) Then { T = 1; #T는 1 #조건1을 만족했으면 T는 2 if Condition1 == true Then T = 2; T1 = T[1]; #T1는 직전구간(데드구간) T값 T2 = T1[1]; #T1 전전구간(직전골드구간) T값 Plot3(L,"골드(점)"); upv = mx; TL_Delete(TL1); TL1 = TL_New(sDate,sTime,upv,NextBarSdate,NextBarStime,upv); TL_SetDrawMode(TL1,0); TL_SetExtLeft(TL1,true); TL_SetExtRight(TL1,true); TL_SetColor(TL1,골드수평선색); TL_SetSize(TL1,골드수평선굵기); Text_Delete(TX1); TX1 = Text_New(NextBarSdate,NextBarStime,upv," "+NToStr(upv,골드가격수숫점자리)); Text_SetStyle(TX1,0,1); Text_SetColor(TX1,골드가격표시색); Text_SetSize(TX1,골드가격글자크기); } Else Text_SetLocation(TX1,NextBarSdate,NextBarStime,upv); if T >= 0 and CrossDown(c,mn) Then { T = -1; T1 = T[1]; T2 = T1[1]; deadbars = 0; Plot4(L,"데드(점)"); dnv = mn; TL_Delete(TL2); TL2 = TL_New(sDate,sTime,dnv,NextBarSdate,NextBarStime,dnv); TL_SetDrawMode(TL2,0); TL_SetExtLeft(TL2,true); TL_SetExtRight(TL2,true); TL_SetColor(TL2,데드수평선색); TL_SetSize(TL2,데드수평선굵기); Text_Delete(TX2); TX2 = Text_New(NextBarSdate,NextBarStime,dnv," "+NToStr(dnv,데드가격소숫점자리)); Text_SetStyle(TX2,0,1); Text_SetColor(TX2,데드가격표시색); Text_SetSize(TX2,데드가격글자크기); } Else { if T == -1 Then deadbars = deadbars+1; #조건2체크 : 데드 구간에서 고가가 기준선 중 작은값보다 크거나 작은 봉이 하나라도 있으면 T는 -1에서 0 if T == -1 and H >= mn Then T = -2; Text_SetLocation(TX2,NextBarSdate,NextBarStime,dnv); } #조건2체크 : 데드 구간에서 고가가 기준선 중 작은값보다 크거나 작은 봉이 하나라도 있으면 T는 -1에서 0 if T == -1 and H >= mn Then T = -2; 즐거운 하루되세요