예스스탁
예스스탁 답변
2024-08-27 14:49:16
안녕하세요
예스스탁입니다.
1
crossup(C,value1)은 풀어서 작성하면
C > value1 and C[1] <= value1입니다.
현재봉에서는 value1보다 커야 하는데
현재봉에서 값이 value1하고 같습니다.
if crossup(c,value1) Then 대신에
아래와 같이 변경하시면 됩니다.
if C >= value1 and C[1] < value1 Then
2
var : n(18);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TX(0),tx1(0),TL1(0),tl2(0);
if CountIf(H >= L*1.11,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;
}
// plot1(hh);
if ll == 0 or (ll > 0 and l[cnt] < ll) Then
{
ll = l[cnt];
lb = cnt;
}
// Plot4(ll,"ll",LightGreen);
// TL2 = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
// TL_SetColor(tl2,Yellow);
}
if (lb > hb and hh >= ll*1.24) or (lb < hb and ll <= hh*0.80) Then
{
// TL_Delete(TL);
// Text_Delete(TX);
//TL_Delete(TL1);
if (hb < lb and abs(hb-lb) >= 10) or (hb > lb and abs(hb-lb) >= 20) Then
{
#상향,하향 일때 봉갯수 조건
TL = TL_New(sDate[hb],sTime[hb],hh,sDate[lb],sTime[lb],ll);
TL_SetDrawMode(tl,0);
TL_SetExtRight(tl,true);
#20개봉 수평선
TL1 = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
TL_SetDrawMode(tl1,0);
TL_SetColor(tl1,Tomato);
TL_SetSize(tl1,0);
#최고가가 더 가까우면 빨강 아니면 파랑
if lb > hb Then
{
TL_SetColor(TL,Pink);
TL_SetStyle(tl,2);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetStyle(tl,2);
}
#최고가 이후 최저가 발생했고 5봉이내
#등락률
if (hb > lb and abs(hb-lb) <= 5) Then
{
TL_SetColor(tl,Yellow);
TX1 = text_new(sDate,sTime,LL,NumToStr((ll-hh)/hh*100,0));
Text_SetStyle(tx1,2,0);
}
//TL_Delete(TL1);
// TX = Text_New(TL_GetEndDate(TL),TL_GetEndTime(TL),TL_GetendVal(TL),NumToStr(abs(hb-lb),0));
Text_SetSize(tx,12);
}
}
}
var : txx(0);
#돌파 텍스트 표시
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,stime);
if C >= value1 and C[1] < value1 Then# crossup(c,value1) Then
{
txx = Text_New(sDate,sTime,L,"●");
Text_SetColor(txx,LightGreen);
Text_SetSize(txx,15);
Text_SetStyle(txx,2,0);
}
}
#추세선값 상향돌파
/*
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,stime);
if CrossUp(l,Value1) Then
plot3(high,"tlcross",LightGreen);
}
즐거운 하루되세요
> yamu 님이 쓴 글입니다.
> 제목 : 추세선 crossup
> 전에 문의했던 추세선 돌파가 잘 안나와서 재질문 드립니다
추세선 연장을 한 상태이면 추세선의 시작점, 끝점을 이은 선만이 아닌 연장된 선까지 해당되는게 아닌가요?
제가 이해를 제대로 못한건지 뜻하는대로 잘 안나와서 여쭤봅니다
스샷을 첨부했고 수식은 아래와 같습니다
스샷을 보시면 2번째 추세선을 가장 긴 장대양봉의 종가가 돌파를 한 상태인데 표시가 안나오네요. 전 봉의 종가는 추세선 아래에 있었고요. 그럼 돌파의 의미가 맞지 않나요?~
crossup(c,value1) 대신에 if c>value1 and c[1]<value1 then 으로도 해봤는데 안나오네요 ㅠㅠ...
일전에 plot 으로 표현했다가 점그래프가 너무 작게 나와서 텍스트로 다시 수정해주셨는데 (txx 부분)
한번 검토 해주셨으면 감사하겠습니다
+추가로 하나 부탁드려도 될까요
두개의 상향 추세선 (lb > hb) 의 시작점 사이가 n봉 (10봉 이상일때) 고점 갱신 라인을, 하향 추세선 (lb < hb) 의 시작점 사이가 20봉 이상일때 고점 라인을 나타내는것도 가능할까요?
감사합니다
var : n(18);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TX(0),tx1(0),TL1(0),tl2(0);
if CountIf(H >= L*1.11,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;
}
// plot1(hh);
if ll == 0 or (ll > 0 and l[cnt] < ll) Then
{
ll = l[cnt];
lb = cnt;
}
// Plot4(ll,"ll",LightGreen);
// TL2 = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
// TL_SetColor(tl2,Yellow);
}
if (lb > hb and hh >= ll*1.24) or (lb < hb and ll <= hh*0.80) Then
{
// TL_Delete(TL);
// Text_Delete(TX);
//TL_Delete(TL1);
if (hb < lb and abs(hb-lb) <= 18) or (hb > lb and abs(hb-lb) <= 9) Then
{
#상향,하향 일때 봉갯수 조건
TL = TL_New(sDate[hb],sTime[hb],hh,sDate[lb],sTime[lb],ll);
TL_SetDrawMode(tl,0);
TL_SetExtRight(tl,true);
#20개봉 수평선
TL1 = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
TL_SetDrawMode(tl1,0);
TL_SetColor(tl1,Tomato);
TL_SetSize(tl1,0);
#최고가가 더 가까우면 빨강 아니면 파랑
if lb > hb Then
{
TL_SetColor(TL,Pink);
TL_SetStyle(tl,2);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetStyle(tl,2);
}
#최고가 이후 최저가 발생했고 5봉이내
#등락률
if (hb > lb and abs(hb-lb) <= 5) Then
{
TL_SetColor(tl,Yellow);
TX1 = text_new(sDate,sTime,LL,NumToStr((ll-hh)/hh*100,0));
Text_SetStyle(tx1,2,0);
}
//TL_Delete(TL1);
// TX = Text_New(TL_GetEndDate(TL),TL_GetEndTime(TL),TL_GetendVal(TL),NumToStr(abs(hb-lb),0));
Text_SetSize(tx,12);
}
}
}
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,15);
Text_SetStyle(txx,2,0);
}
}
#추세선값 상향돌파
/*
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,stime);
if CrossUp(l,Value1) Then
plot3(high,"tlcross",LightGreen);
}