커뮤니티
문의드립니다^^
2013-05-06 22:18:08
197
글번호 62871
수고 많으십니다.
다음 문장을 표현해보고 싶습니다.
"5일이평이에 20일이평을 돌파한 후 봉의 종가가 5일선아래로 내려올 때까지 최고가를 Hvalue라고 한다."
아래 수식과 같이 표현해 봤는데 차트에 적용시키니 컴터가 무언가 계속 계산은 하는데 결과물이 출력되지 않더군요ㅡ.ㅡ;;;
---------------------------------------------------
Input : shortPeriod(5), longPeriod(20);
var: sma(0), lma(0), count(0), hvalue(0);
sma=ma(c,5);
lma=ma(c,20);
count=0;
if CrossUp(sma,lma) then
{
while c>=sma begin
count=count+1;
hvalue=h[count];
end;
}
------------------------------------------------------
위의 수식에서 문제점이 무엇인지도 지적해주셨으면 합니다^^
답변 1
예스스탁 예스스탁 답변
2013-05-07 11:45:14
안녕하세요
예스스탁입니다.
while문은 지정한 조건이 만족하면 계속 수행을 하게 됩니다.
작성하신 식은 무한루프를 돌게되는 내용입니다.
아래와 같이 작성하시면 됩니다.
Input : shortPeriod(5), longPeriod(20);
var: sma(0), lma(0), count(0), hvalue(0);
sma=ma(c,5);
lma=ma(c,20);
#골든크로스 발생하면 Hvalue에 해당봉의 고가를 초기값으로 세팅
if CrossUp(sma,lma) then{
Hvalue = H;
}
#종가가 5이평보다 크고 고가가 Hvalue에 저장된 값보다 크면 Hvalue에 해당봉고가를 저장
if C > sma Then{
if H > Hvalue Then
Hvalue = H;
}
plot1(Hvalue);
즐거운 하루되세요
> 태발군 님이 쓴 글입니다.
> 제목 : 문의드립니다^^
> 수고 많으십니다.
다음 문장을 표현해보고 싶습니다.
"5일이평이에 20일이평을 돌파한 후 봉의 종가가 5일선아래로 내려올 때까지 최고가를 Hvalue라고 한다."
아래 수식과 같이 표현해 봤는데 차트에 적용시키니 컴터가 무언가 계속 계산은 하는데 결과물이 출력되지 않더군요ㅡ.ㅡ;;;
---------------------------------------------------
Input : shortPeriod(5), longPeriod(20);
var: sma(0), lma(0), count(0), hvalue(0);
sma=ma(c,5);
lma=ma(c,20);
count=0;
if CrossUp(sma,lma) then
{
while c>=sma begin
count=count+1;
hvalue=h[count];
end;
}
------------------------------------------------------
위의 수식에서 문제점이 무엇인지도 지적해주셨으면 합니다^^