안녕하세요! 항상 친절한 답변 감사드립니다.
1. 분봉주기에서, 오늘 날짜 기준으로, 전일의 특정시간(ex:142959 ~ 151459) 고가를 변수지정하려면 아래와 같이 가능한가요?
value1 = timehigh(142959, 151459)[1]
가능하다면, 이해가 가질 않는 부분은, '분봉주기'임에도 불구하고 [1]가 어떻게 적용 가능하냐는 겁니다. [n]은 n봉전을 의미하는데 '분봉주기'에서 어찌가능한지 이해가 가질 않습니다. 만일 분봉이라면 해당 구문은 (1분봉일 시, 가령 현재시간 90514을 가정한다면) 1분봉전의 시점에서 142959~151459의 고가를 찾아야함이 옳은 것 아닌가요???
2. "분봉주기"에서의 일봉 이격도 작성이 아래와 같이 가능한지 확인 부탁드립니다.
(5일 이동평균기준, 현재봉이 아닌 1봉전에 이격수준을 확정)
2.1 첫번째 방법
for cnt = 1 to 5 begin
va1 = var1 + dayclose(n);
end
var2 = var1/5;
var3 = dayclose(1)/var2 * 100 //var3는 이격도
2.2 두번째 방법
var3 = AccumN(dayclose, 5)[1] //여기서도 만일가능하다면, 첫번째 질문의 답변과 같은 맥락으로 함수가 작동할까요??
3. 포지션함수에서 DEF가 어떻게 작동하는지, 사례 혹은 자료가 있으실까요? 이 질문은 다소 불편하시거나 답변하시기 오래걸리시면 패스하셔도 괜찮습니다.
4. 조건식 "if date != date[1] then"의 역할을 잘 모르겠습니다. 분봉주기에서 자주 보이는데 해당 구문을 누락할 시 어떤 참사가 발생하는지 혹시 답변 가능하실까요?
5. dayindex의 역할을 자세히 설명가능하실까요?? 메뉴얼에서는 분봉에서 당일 봉의 번호라고 기재되어 있는데 그러면 언제 사용하던 '0'이 아닌가요??? 더하여, 여러 구문 등에서 등장하는, dayindex > 0 의 목적을 좀 알고 싶습니다.
6. 구문의 작동 방식에 관한 질문입니다. 아래의 구문이 20봉이내에 5일/20일 이평의 골든크로스 종목을 검색한다고 알고 있습니다. 골든크로스 시점의 봉 번호를 i1에 저장한 그것을 index와 비교하는 구문인데 2)번째줄의 index와 4)번째줄의 차이를 모르겠습니다. 2)번째 줄의 index는 앞의 조건 발생 시, 발동(?)하며 i1에 값을 담아주는데, 어떻게 4)번째 줄의 index는 이전 20개 봉의 위치를 갑자기 출력해내며 i1과 값을 비교하는 작동을 하는지 이해가 가질 않습니다
(구문 자체의 문제가 있어서, 답변이 어려우시거나 껄끄러우시면 넘어가셔도 괜찮습니다)
1)if crossup(ma(c,5), ma(c,20)) then
2) i1 = index;
3)
4) if index <= i1 +20 and index >= i1 then
5) find(1);
초보자라 답답한, 그리고 어설픈 질문을 드려 죄송합니다..
답변 1
예스스탁
예스스탁 답변
2024-10-10 14:01:26
안녕하세요
예스스탁입니다.
1
value1 = timehigh(142959, 151459)[1]
위 내용은 전일값이 아닙니다. 언급하신 것과 같이 1봉전 기준의 값입니다.
아래와 같이 작성해 사용하셔야 합니다.
input : StartTime(142959),EndTime(151459);
var : Tcond(false),HH(0),HH1(0);
if Bdate != Bdate[1] Then
HH1 = HH[1];
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
HH = H;
LL = L;
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = False;
}
if Tcond == true Then
{
if HH > 0 and H > HH Then
HH = H;
}
2
첫번째가 맞습니다.
var : cnt(0);
var1 = 0;
for cnt = 1 to 5
{
var1 = var1 + dayclose(n);
}
var2 = var1/5;
var3 = dayclose(1)/var2 * 100;
3
포지션 함수는 매개변수에 def를 지정하는 함수가 없습니다.
def로 매개변수를 지정하는 것은 수식을 잘못 지정한 작성한것입니다.
각 포지션 함수의 도움말 참고하시기 바랍니다.
4
if date != date[1] then 조건은 당일 첫봉이라는 내용입니다.
수식내용상 첫봉에서 초기화를 하거나 값을 저장할 필요가 있는등
별도로 해야할 내용이 있을때 사용하게 됩니다.
수식별로 해당 조건이 만족할 때 실행되는 내용이 다릅니다.
보시는 수식안에서 실행되는 내용을 독해해 보시기 바랍니다.
5
dayindex는 분봉이하 차트에서 당일봉번호입니다.
첫봉은 0, 두번째는 1, 세번째는 2와 같이 1씩 증가합니다.
그러므로 dayindex > 0은 당일두번째봉부터라는 내용이 됩니다.
6
2번째 줄은 골드가 나면 i1이라는 변수에 골드가 난 봉의 index를 저장하는 내용이고
4번째 줄은 현재봉 봉번호와 i1에 저장된 값(이전골드시봉번호)와 비교하는 내용입니다.
즐거운 하루되세요
> 아침식사됩니다 님이 쓴 글입니다.
> 제목 : 질문 드립니다.
> 안녕하세요! 항상 친절한 답변 감사드립니다.
1. 분봉주기에서, 오늘 날짜 기준으로, 전일의 특정시간(ex:142959 ~ 151459) 고가를 변수지정하려면 아래와 같이 가능한가요?
value1 = timehigh(142959, 151459)[1]
가능하다면, 이해가 가질 않는 부분은, '분봉주기'임에도 불구하고 [1]가 어떻게 적용 가능하냐는 겁니다. [n]은 n봉전을 의미하는데 '분봉주기'에서 어찌가능한지 이해가 가질 않습니다. 만일 분봉이라면 해당 구문은 (1분봉일 시, 가령 현재시간 90514을 가정한다면) 1분봉전의 시점에서 142959~151459의 고가를 찾아야함이 옳은 것 아닌가요???
2. "분봉주기"에서의 일봉 이격도 작성이 아래와 같이 가능한지 확인 부탁드립니다.
(5일 이동평균기준, 현재봉이 아닌 1봉전에 이격수준을 확정)
2.1 첫번째 방법
for cnt = 1 to 5 begin
va1 = var1 + dayclose(n);
end
var2 = var1/5;
var3 = dayclose(1)/var2 * 100 //var3는 이격도
2.2 두번째 방법
var3 = AccumN(dayclose, 5)[1] //여기서도 만일가능하다면, 첫번째 질문의 답변과 같은 맥락으로 함수가 작동할까요??
3. 포지션함수에서 DEF가 어떻게 작동하는지, 사례 혹은 자료가 있으실까요? 이 질문은 다소 불편하시거나 답변하시기 오래걸리시면 패스하셔도 괜찮습니다.
4. 조건식 "if date != date[1] then"의 역할을 잘 모르겠습니다. 분봉주기에서 자주 보이는데 해당 구문을 누락할 시 어떤 참사가 발생하는지 혹시 답변 가능하실까요?
5. dayindex의 역할을 자세히 설명가능하실까요?? 메뉴얼에서는 분봉에서 당일 봉의 번호라고 기재되어 있는데 그러면 언제 사용하던 '0'이 아닌가요??? 더하여, 여러 구문 등에서 등장하는, dayindex > 0 의 목적을 좀 알고 싶습니다.
6. 구문의 작동 방식에 관한 질문입니다. 아래의 구문이 20봉이내에 5일/20일 이평의 골든크로스 종목을 검색한다고 알고 있습니다. 골든크로스 시점의 봉 번호를 i1에 저장한 그것을 index와 비교하는 구문인데 2)번째줄의 index와 4)번째줄의 차이를 모르겠습니다. 2)번째 줄의 index는 앞의 조건 발생 시, 발동(?)하며 i1에 값을 담아주는데, 어떻게 4)번째 줄의 index는 이전 20개 봉의 위치를 갑자기 출력해내며 i1과 값을 비교하는 작동을 하는지 이해가 가질 않습니다
(구문 자체의 문제가 있어서, 답변이 어려우시거나 껄끄러우시면 넘어가셔도 괜찮습니다)
1)if crossup(ma(c,5), ma(c,20)) then
2) i1 = index;
3)
4) if index <= i1 +20 and index >= i1 then
5) find(1);
초보자라 답답한, 그리고 어설픈 질문을 드려 죄송합니다..