예스스탁
예스스탁 답변
2024-12-06 15:24:42
안녕하세요
예스스탁입니다.
1
dayclose(0)은 c와 같습니다.
plot은 과거봉에 그리지 못합니다.
분봉에서 최종 완성봉의 종가를 차트에 수평으로 그리고자 하시면 추세선을 이용하셔야 하고
var : tl(0);
TL_Delete(tl);
tl = tl_new(sDate,sTime,c,NextBarSdate,NextBarStime,c);
TL_SetExtLeft(tl,true);
전일종가를 당일에 그리고자 하시면 dayclose(1)을 plot하시면 됩니다.
plot1(dayclose(1));
2
if(A(1) - A(11) >= 1, B(1) < C and A(1) != A, 0)
A는 차트전체기간에서 조건발생 횟수입니다.
위 조건식은 1봉전~11봉 사이에 1회이상 조건만족한 날이 있다라는 내용있고 (A(1) - A(11) >= 1)
1봉전 기준 최근 만족한 날의 종가보다 오늘 종가가 크고 (B(1) < C )
오늘도 조건에 충족을 했음(A(1) != A)을 의미합니다.
즉 최근 2번의 조건만족봉의 종가를 비교해서 최근것이 높은 종목을 찾는 내용입니다.
최근 2번 중 한번은 오늘이고 직전은 1~11봉 사이라는 내용입니다.
var : A(0),B(0),cnt(0),DD(0),X(0);
Array : cond[50](False);
if Bdate != Bdate[1] Then
DD = DD+1;
#전일기준 일봉 평균값 계산
#avg(c, 40, 1)
#avg(money/C, 40, 1)
#avg(((h-l)/((h+l)/2)), 40, 1)
var1 = 0;
var2 = 0;
var3 = 0;
for cnt = 1 to 40
{
var1 = var1 + DayClose(cnt);
var2 = var2 + (DayMoney(cnt)/DayClose(cnt));
var3 = var3 + (DayHigh(cnt)-DayLow(cnt))/((DayHigh(cnt)+DayLow(cnt))/2);
}
value1 = var1/40;
value2 = var2/40;
Value3 = var3/40;
#당일기준 일봉 평균값 계산
#avg(money/C, 2)
#avg(((h-l)/((h+l)/2)), 2)
var4 = 0;
var5 = 0;
for cnt = 0 to 1
{
var4 = var4 + (DayMoney(cnt)/DayClose(cnt));
var5 = var5 + (DayHigh(cnt)-DayLow(cnt))/((DayHigh(cnt)+DayLow(cnt))/2);
}
value4 = var4/2;
value5 = var5/2;
#일봉 기준 조건체크
#avg(c, 40, 1) * 1.3 <= C
#and avg(money/C, 40, 1) * 6 <= avg(money/C, 2)
#and avg(((h-l)/((h+l)/2)), 40, 1) * 1.5 <= avg(((h-l)/((h+l)/2)), 2)
#and C(1) < C
Condition1 = value1[1] * 1.3 <= C and Value2[1] * 6 <= Value4 and
Value3[1] * 1.5 <= Value5 and DayClose(1) < C;
#전일기준 최근 만족봉이 1일전~11일전이고
#전일기준 최근 만족봉의 종가보다 현재봉 종가가 크고
#오늘 조건이 만족했으면 강조출력
if X > 0 and DD <= X[1]+11 and B < C and Condition1 Then
PlotPaintBar(H,L,"강조");
#당일 마지막봉에서만 조건 만족했으면 B에 종가저장,X에 날짜수 저장
if NextBarBdate != Bdate Then
{
if Condition1 == true Then
{
B = C;
X = DD;
}
}
즐거운 하루되세요
> yamu 님이 쓴 글입니다.
> 제목 : 질문 부탁드리겠습니다
> 지난번 단기과열/투경 예고 관련 질문 답변 주셔서 감사드립니다
먼저 여쭤보고 싶은건
분봉상에서 dayclose (일간 종가)를 플롯하면 분봉에서 매봉의 종가가 나오는데요
일봉에서 최종 종가를 표현하려면 작성을 어떻게 해야될까요??
일단 if nextbarbdate != bdate then plot11(dayclose));
이렇게 작성하니 분봉에서 당일 마지막 봉에만 종가가 표시되는 형식으로 나오는데 이게 맞나요???
맞다면 nextbarbdate!= bdate 이게 의미하는 바와 마지막 봉에만 표시가 되는 원리를 잘 모르겠습니다
질문2)
지난번에 단기과열 관련해서 여쭤볼때 키움수식을 올렸었는데요
일단 단기과열 예고 지정 조건은 :
3가지 복수조건 (아래수식에서 A에 해당) 모두 해당 - 최초 적출된 날
적출된 날 익일 부터 10거래일 이내에 동일 요건 재적출
이렇게 되고 키움수식은
A = sum(avg(c, 40, 1) * 1.3 <= C
and avg(money/C, 40, 1) * 6 <= avg(money/C, 2)
and avg(((h-l)/((h+l)/2)), 40, 1) * 1.5 <= avg(((h-l)/((h+l)/2)), 2)
and C(1) < C);
B = valuewhen(1, A(1) != A, C);
if(A(1) - A(11) >= 1, B(1) < C and A(1) != A, 0)
인데요,
B는 해석하면 A(1) != A 일때 C값을 가져오라는건데
A(1) != A 가 의미하는 바와 ( A와 이전 만족A가 같지 않다?)
IF 문에 따르면 A(1) - A(11) >= 1 이면 B(1) < C and A(1) != A 를 나타내라는건데
여기서도 해석이 잘 안됩니다
변환을 해주셨는데 원본에서부터가 잘 해석이 안되네요
알려주신 수식도 간단한 주석을 부탁드립니다
1,2 번 표시해논 부분이 잘 이해가 안갑니다, 수식 전문은 맨 마지막에 첨부했습니다
1. if Bdate != Bdate[1] Then DD = DD+1;
2. if X > 0 and DD <= X[1]+11 and B < C and Condition1 Then
PlotPaintBar(H,L,"강조");
if NextBarBdate != Bdate Then
{
if Condition1 == true Then
{
B = C;
X = DD;
}
}
수식 전문:
var : A(0),B(0),cnt(0),DD(0),X(0);
Array : cond[50](False);
if Bdate != Bdate[1] Then
DD = DD+1;
var1 = 0;
var2 = 0;
var3 = 0;
for cnt = 1 to 40
{
var1 = var1 + DayClose(cnt);
var2 = var2 + (DayMoney(cnt)/DayClose(cnt));
var3 = var3 + (DayHigh(cnt)-DayLow(cnt))/((DayHigh(cnt)+DayLow(cnt))/2);
}
value1 = var1/40;
value2 = var2/40;
Value3 = var3/40;
var4 = 0;
var5 = 0;
for cnt = 0 to 1
{
var4 = var4 + (DayMoney(cnt)/DayClose(cnt));
var5 = var5 + (DayHigh(cnt)-DayLow(cnt))/((DayHigh(cnt)+DayLow(cnt))/2);
}
value4 = var4/2;
value5 = var5/2;
Condition1 = value1[1] * 1.3 <= C and Value2[1] * 6 <= Value4 and
Value3[1] * 1.5 <= Value5 and DayClose(1) < C;
if X > 0 and DD <= X[1]+11 and B < C and Condition1 Then
PlotPaintBar(H,L,"강조");
if NextBarBdate != Bdate Then
{
if Condition1 == true Then
{
B = C;
X = DD;
}
}