답변완료
지표수식(76016번)에 대한 수정 질문드립니다
담당자님, 안녕하세요.
(Q&A 76016번과 관련한 추가 질의입니다.)
담당자님께서 작성해 주신 수식을 잘 활용하고 있습니다.
그런데, <지표2>의 시스템 산출 결과가 의도했던 것과는 다른 결과가 산출됩니다.
선택한 기간에 대한 일봉 시가, 종가 중에서 조건에 부합하는 것이
당일(D)에만 추세선으로 표시되어야 하는데,
선택한 기간 보다 이전 과거의 일봉 시가 또는 종가도 당일(D)에 표시되는 경우가 발생하고
당일(D)에 표시되어야 할 추세선이 표시되지 않는 경우도 발생합니다.
첨부된 그림 파일의 예시로 설명드립니다.
기간을 3일(n=3)으로 설정하고 지표를 조회하면
2022.2.21을 당일(D)로 볼 때
(D-1) 2.18 ~ (D-3) 2.16의 일봉 시가, 종가 중 조건에 부합하는 추세선 만이 표시되어야 하는데
그 이외에 표시되지 않아야 할 (D-4) 2.15의 시가 363.90도 추세선으로 표시됩니다.
cf. (D-4) 2.15의 종가 360.55는 2.18에만 표시됨.
즉, 2.18을 당일(D)로 볼 때 (D-3)에 해당되는 2.15의 종가 360.55가 2.18에 표시되는 것은 적합함.
또한 예시에는 기재하지 않았으나,
기간 n을 확장해서 조회할 경우에 2022.2.21을 당일(D)로 볼 때 2.21에 표시되지 않아야 할 추세선이
표시되는 사례도 있으며, 2022.2.22의 경우에는 표시되어야 할 추세선이 표시되지 않는 사례도 있습니다.
<지표2>에 대해서 다른 결과가 도출되는 점에 대해 검토해주시고
수정해 주실 것을 부탁드립니다.
* 일봉 고가와 저가를 연산하는 Q&A 76016번의 <지표1>에서는
위와 같은 사례를 제가 발견하지 못했는데 지표 로직 상
<지표2>와 같은 부분이 보완되어야 한다면 <지표1>의 수정도 부탁드립니다.
수정해서 작성해 주시는 것에 대해 담당자님께 미리 감사드립니다.
(담당자님께서 작성해주신 지표2의 수식을 아래에 기재합니다.)
--------------------------------------------------------------------------------------
input : N(30);
var : cnt(0),HH(0),LL(0);
Array : HTL[100](0),LTL[100](0);
Array : HTX[100](0),LTX[100](0);
if Sdate != sDate[1] Then
{
For cnt = 1 to N
{
if HTL[cnt] > 0 Then
{
TL_SetEnd(HTL[cnt],sDate,sTime,TL_GetValue(HTL[cnt],sDate,sTime));
TL_SetExtRight(HTL[cnt],False);
}
if LTL[cnt] > 0 Then
{
TL_SetEnd(LTL[cnt],sDate,sTime,TL_GetValue(LTL[cnt],sDate,sTime));
TL_SetExtRight(LTL[cnt],False);
}
if cnt == 1 Then
{
var1 = max(DayOpen(cnt),DayClose(cnt));
var2 = min(DayOpen(cnt),DayClose(cnt));
HTL[cnt] = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
TL_SetColor(HTL[cnt],RED);
TL_SetExtRight(HTL[cnt],true);
TL_SetDrawMode(HTL[cnt],0);
HH = var1;
LTL[cnt] = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2);
TL_SetColor(LTL[cnt],BLUE);
TL_SetExtRight(LTL[cnt],true);
TL_SetDrawMode(LTL[cnt],0);
LL = var2;
}
Else
{
var1 = max(DayOpen(cnt),DayClose(cnt));
var2 = min(DayOpen(cnt),DayClose(cnt));
if abs(var1-DayOpen(0)) < 10 and (var1 > HH or var1 < LL) Then
{
HTL[cnt] = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
TL_SetColor(HTL[cnt],RED);
TL_SetExtRight(HTL[cnt],true);
TL_SetDrawMode(HTL[cnt],0);
}
if abs(Var2-DayOpen(0)) < 10 and (Var2 > HH or Var2 < LL) Then
{
LTL[cnt] = TL_New(sDate,sTime,Var2,NextBarSdate,NextBarStime,Var2);
TL_SetColor(LTL[cnt],BLUE);
TL_SetExtRight(LTL[cnt],true);
TL_SetDrawMode(LTL[cnt],0);
}
if var1 > HH and abs(var1-DayOpen(0)) < 10 Then
HH = DayHigh(cnt);
if Var2 < LL and abs(Var2-DayOpen(0)) < 10 Then
LL = DayLow(cnt);
}
}
}
-----------------------------------------------------------------------------------
2022-02-23
1287
글번호 156623
지표
답변완료
MACD 0,시그널 돌파
M=Macd(기간1,기간2);
ms=eavg(m,기간3);
Mv=ValueWhen(1,crossup(m,0), c);
Msv=ValueWhen(1,crossup(m,ms), c);
crossup(c,mv) &&
crossup(c,msv)
긴간1 12
기간2 26
기간3 9
키움에서 쓰던건데 검색식 부탁드립니다.
감사합니다.
2022-02-23
1419
글번호 156619
종목검색
답변완료
문의 드립니다.
안녕하세요
저번에 답변 주셨는데요
input : 시작시간(170000),끝시간(60000);
input : N(10);
var : tx(0);
var1 = TimeToMinutes(시작시간);
var2 = TimeToMinutes(끝시간);
if (NextBarSdate != sdate and TimeToMinutes(NextBarStime) >= var1) or
(NextBarSdate == sdate and TimeToMinutes(NextBarStime) >= var1 and TimeToMinutes(Stime) < var1) Then
{
tx = Text_New(NextBarSdate,NextBarStime,NextBarOpen+PriceScale*N,"유럽장시작");
Text_SetStyle(tx,2,1);
}
if (NextBarSdate != sdate and TimeToMinutes(NextBarStime) >= Var2) or
(NextBarSdate == sdate and TimeToMinutes(NextBarStime) >= Var2-BarInterval and TimeToMinutes(Stime) < Var2-BarInterval) Then
{
tx = Text_New(NextBarSdate,NextBarStime,NextBarOpen-PriceScale*N,"유럽장끝");
Text_SetStyle(tx,2,0);
}
이것에서
글씨 위치를 유럽장 시작 캔들에서 위로 얼마만큼 배치를 할 수 없을까요?
지금 그 소스가 캔들과 겹쳐있어서 보기에 너무 불편합니다.
그리고 추가로 부탁드리고 싶은데요
유럽장 시작하면 글씨만 나타내는것 뿐만 아니라
검은선 굵은것 수직선으로 나타내게 할 수 없나요?
그 수직선이 캔들을 덮히지 않게 위아래 배치 하는 방법이 있을까요?
다시 말해서
유럽장 글씨를 캔들 위로 굵은 글씨가 겹치지 않게 높이 배치하고 싶고
그 위치에 위아래 검은 수직선 굵은것을 나오게 하고 캔들을 가리지 않게 하고 싶습니다.
감사합니다.
2022-02-23
1416
글번호 156613
검색