예스스탁
예스스탁 답변
2024-08-20 14:49:45
안녕하세요
예스스탁입니다.
1
var : txx(0);
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,stime);
if CrossUp(c,Value1) Then
{
txx = Text_New(sDate,sTime,L,"●");
Text_SetColor(txx,LightGreen); //색상
Text_SetSize(txx,20); //사이즈
}
}
점그래프로 설정 후 크기는 제공하는 크기 이상으로는 설정이 되지 않습니다.
해당 크기보다 더 크게 출력하기 위해서는
plot이 아닌 위와 같이 텍스트 함수로 출력해서 크기를 지정하시면 됩니다.
2
해당식에서 추세선은 기본적으로 현재시점 과거 N개봉의 최고가와 최저가를 연결해 그리게 됩니다.
그럼므로 현재봉이 해당 값을 돌파할 수가 없기에 연장선을 그리게 한다음 이후에 돌파하는 것으로 작성된 내용입니다.
3
var : n(20);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TX(0),TL1(0);
if CountIf(H >= L*1.13,n) >= 1 Then
{
#"최근봉"만 표시되게 하기위해 "직전에서 출력된 추세선과 텍스트는 삭제"
#n개봉 최고가와 최고가위치(몇봉전인지) 계산
#n개봉 최저가와 최저가위치(몇봉전인지) 계산
hh = 0;
hb = 0;
ll = 0;
lb = 0;
For cnt = 0 to n-1
{
if hh == 0 or (hh > 0 and h[cnt] > hh) Then
{
hh = h[cnt];
hb = cnt;
}
if ll == 0 or (ll > 0 and l[cnt] < ll) Then
{
ll = l[cnt];
lb = cnt;
}
}
if (lb > hb and hh >= ll*1.29) or (lb < hb and ll <= hh*0.85) Then
{
//TL_Delete(TL);
// Text_Delete(TX);
if (hb < lb and abs(hb-lb) <= 10) or (hb > lb and abs(hb-lb) <= 5) Then
{
TL = TL_New(sDate[hb],sTime[hb],hh,sDate[lb],sTime[lb],ll);
TL_SetDrawMode(tl,0);
TL_SetExtRight(tl,true);
}
#20개봉 수평선
//TL_Delete(TL1);
TL1 = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
TL_SetDrawMode(tl1,0);
TL_SetColor(tl1,Red);
TL_SetSize(tl1,1);
#최고가가 더 가까우면 빨강 아니면 파랑
if lb > hb Then
{
TL_SetColor(TL,Pink);
TL_SetStyle(tl,2);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetSize(tl,1);
}
TX = Text_New(TL_GetEndDate(TL),TL_GetEndTime(TL),TL_GetEndVal(TL),NumToStr(abs(hb-lb),0));
Text_SetSize(tx,15);
}
}
var : txx(0);
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,stime);
if CrossUp(c,Value1) Then
{
txx = Text_New(sDate,sTime,L,"●");
Text_SetColor(txx,LightGreen);
Text_SetSize(txx,20);
}
}
4
지표를 특정조건일때는 그리고
조건이 만족하지 않으면 그리지 않고자 할때 noplot을 사용합니다.
즐거운 하루되세요
> yamu 님이 쓴 글입니다.
> 제목 : TL 돌파 표시 + 몇가지 관련 질문드립니다
> 늘 답변해 주셔서 감사드립니다
질문 1) 전에 알려주셨던 수식 검토해봤는데요
마지막에 #추세선값 상향돌파 부분에서
라인그래프로 있는 부분을 점그래프로 바꿔봤는데 점이 매우 작게 나오네요 굵기를 크게 해도 변화가 없고요. 일단 막대로 해놓으니 나오긴 하는데 점으로도 표기가 되나요???
추세선은 예전것도 보고 싶어서 delete 해제 시켜놨습니다
기본차트에 적용했습니다 검토 부탁드려요~
질문 2)
추세선 돌파는 여부는 반드시 우측연장 표시를 해야 나오나요?
우측연장은 말그대로 연장한 선까지 포함시켜서 돌파 했을때 표시해주는거고,
추세선 범위내에서 (연장없음) 돌파가 발생하면 상관없나요?~
질문3) 우상향 추세선 (pink) 일때는 봉갯수가 10개 이하,
우하향 (블루) 일때는 봉갯수가 5개 이하일때 추세선을 나타내라
이런식으로 나눠서 작성하고 싶습니다
질문4) noplot 은 어떤 경우에 쓰는 함수인가요?
감사합니다
var : n(20);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TX(0),TL1(0);
if CountIf(H >= L*1.13,n) >= 1 Then
{
#"최근봉"만 표시되게 하기위해 "직전에서 출력된 추세선과 텍스트는 삭제"
#n개봉 최고가와 최고가위치(몇봉전인지) 계산
#n개봉 최저가와 최저가위치(몇봉전인지) 계산
hh = 0;
hb = 0;
ll = 0;
lb = 0;
For cnt = 0 to n-1
{
if hh == 0 or (hh > 0 and h[cnt] > hh) Then
{
hh = h[cnt];
hb = cnt;
}
if ll == 0 or (ll > 0 and l[cnt] < ll) Then
{
ll = l[cnt];
lb = cnt;
}
}
if (lb > hb and hh >= ll*1.29) or (lb < hb and ll <= hh*0.85) Then
{
//TL_Delete(TL);
// Text_Delete(TX);
TL = TL_New(sDate[hb],sTime[hb],hh,sDate[lb],sTime[lb],ll);
TL_SetDrawMode(tl,0);
TL_SetExtRight(tl,true);
#20개봉 수평선
//TL_Delete(TL1);
TL1 = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
TL_SetDrawMode(tl1,0);
TL_SetColor(tl1,Red);
TL_SetSize(tl1,1);
#최고가가 더 가까우면 빨강 아니면 파랑
if lb > hb Then
{
TL_SetColor(TL,Pink);
TL_SetStyle(tl,2);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetSize(tl,1);
}
TX = Text_New(TL_GetEndDate(TL),TL_GetEndTime(TL),TL_GetEndVal(TL),NumToStr(abs(hb-lb),0));
Text_SetSize(tx,15);
}
}
#추세선값 상향돌파
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,stime);
if CrossUp(c,Value1) Then
plot3(high,"tlcross",LightGreen,Def,1);
}