답변완료
분봉이나 틱에서 상단, 하단 터치 횟수가 다르게 나오는 것 해결 방법 문의
항상 도움에 감사드립니다.
첨부된 이미지를 참고해서 보시면
같은 시간에 10틱, 1분봉, 5분봉에서
일정한 가격 사이틀 왔다갔다가 터치하는 횟수를 세는 수식을 작성했는데요.
10틱에서는 상단선과 하단선을 왔다갔다 터치하는 횟수가 잘 세어지는데요.
10틱에서 1분봉, 5분봉으로 갈 수록 상단과 하단의 터치 횟수가 줄어들게 됩니다.
이유는 하단(상단)을 터치했다가 상단(하단)을 터치할 때
봉이 완성되어야 터치 횟수가 카운트 되기 때문인데요.
1분봉, 5분봉이나 10분봉 이렇게 봉 시간이 다를때도
실시간의 경우에 터치횟수가 세어지는 것이 틱차트 처럼
셀 수 있게 수식 작성이 가능한가요?
아래는 제가 작성한 수식입니다.
------------------------------------------------------
var : hh(0),ll(0),t(0);
var : upcnt(0),dncnt(0);
var : oo(0);
var : line_up(0), line_down(0), oo_line(0);
var : up_text(0), down_text(0);
var : tcond(False);
input : ntime(203500), xtime(050000);
if (sdate != sdate[1] and stime >= xtime) or
(sdate == sdate[1] and stime >= xtime and stime[1] < xtime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
Tcond = true;
oo = 15373.50;
hh = oo+PriceScale*5;
ll = oo-PriceScale*5;
t = 0;
upcnt = 0;
dncnt = 0;
if H >= hh Then
{
T = 1;
upcnt = upcnt+1;
}
if L <= ll Then
{
T = -1;
dncnt = dncnt+1;
}
oo_line = TL_New(sDate,sTime,oo,NextBarSdate,NextBarStime,oo); // 선긋기
line_up = TL_New(sDate,sTime,hh,NextBarSdate,NextBarStime,hh); // 선긋기
line_down = TL_New(sDate,sTime,ll,NextBarSdate,NextBarStime,ll); // 선긋기
up_text = Text_New(NextBarSdate,NextBarStime,hh,NumToStr(upcnt,0));
down_text = Text_New(NextBarSdate,NextBarStime,ll,NumToStr(dncnt,0));
}
if Tcond == true Then
{
if T <= 0 and H >= hh Then
{
T = 1;
upcnt = upcnt+1;
if upcnt >= 5 Then
Buy();
}
if T >= 0 and L <= LL Then
{
T = -1;
dncnt = dncnt+1;
if dncnt >= 5 Then
Sell();
}
TL_SetEnd(line_up,NextBarSdate,NextBarStime,hh); // 선 긋기 연장해줌
TL_SetEnd(line_down,NextBarSdate,NextBarStime,ll); // 선 긋기 연장해줌
TL_SetEnd(oo_line,NextBarSdate,NextBarStime,oo); // 선 긋기 연장해줌
Text_SetString(up_text,NumToStr(upcnt,0));
Text_SetString(down_text,NumToStr(dncnt,0));
Text_SetLocation(up_text,NextBarSdate,NextBarStime,hh);
Text_SetLocation(down_text,NextBarSdate,NextBarStime,ll);
Text_SetColor(down_text, Red);
}
MessageLog("상단, 하단______ %.2f, %.2f", upcnt, dncnt);
MessageLog("%.2f, %.2f, %.2f", hh, ll, oo);
------------------------------------------------------------------
예를들어 5분봉이 완성되기 전에
상단선과 하단선을 오르락 내리락 하면서 터치하게 될 경우
터치 횟수가 세어지는 수식을
작성할 수 있는지 궁금합니다.
2023-11-09
1058
글번호 173900
시스템
답변완료
부탁드립니다
수고하십니다
아래수식을 지표고점에 사선표시 가격고점에 사선표시 , 지표저점에 사선표시 가격저점에 사선표시 수식 수정부탁드립니다
input : Left(3),Right(3);
var : 지표(0);
var : HI1(0),HI2(0),HI3(0),HP1(0),HP2(0),HP3(0);
var : LI1(0),LI2(0),LI3(0),LP1(0),LP2(0),LP3(0);
지표 = RSI(15);
#지표저점발생
if SwingLowBar(1,지표,Left,Right,Left+Right+1) != -1 Then
{
#지표저점값
LI1 = 지표[right];
#주가저점값(지표저점판단봉수동안의 최저가)
LP1 = Lowest(L,Left+Right+1);
#직전저점
LI2 = LI1[1];
LP2 = LP1[1];
#전전저점
LI3 = LI2[1];
LP3 = LP2[1];
if LP3 > 0 and
LI1 > LI2 and LI2 > LI3 and
LP1 > LP2 and LP2 < LP3 Then
TL_new(LP1,LP2,LP3);
TL_New_Self(LI1,LI2,LI3);
}
#지표고점발생
if SwingHighbar(1,지표,Left,Right,Left+Right+1) != -1 Then
{
#지표고점값
HI1 = 지표[right];
#주가고점값(고점판단봉수동안의 최고가)
HP1 = highest(H,Left+Right+1);
#직전고점
HI2 = HI1[1];
HP2 = HP1[1];
#전전고점
HI3 = HI2[1];
HP3 = HP2[1];
if HP3 > 0 and
HI1 < HI2 and HI2 < HI3 and
HP1 < HP2 and HP2 > HP3 Then
TL_new( HP1, HP2, HP3);
TL_New_Self(HI1,HI2,HI3);
}
2023-11-10
833
글번호 173896
지표