Input : signal(30);
var : K1s(0), Pred(C);
// ClearDebug;
K1s = ma(Pred,signal);
if sTime == 12000 then {
MessageLog("%s%f","Pred=",Pred);
MessageLog("%s%f","K1s=",K1s);
// 1.#QNAN0 계산은 되지만 무한 숫자가 나오는 오류
if Pred > K1s then {
Buy("매수");
}
}
Debug 내용에 보면 'K1s=1.#QNAN0'라고 표시 됩니다.
무슨 뜻인지는 알겠는데, 어떻게 해결해야 하나요?
답변 1
예스스탁
예스스탁 답변
2020-03-24 09:33:40
안녕하세요
예스스탁입니다.
1
봉수가 충족이 안되면 nan이 됩니다.
기간이 30이면 최소 30봉 이후부터 값을 계산할수 있습니다.
아래와 같이 지정한 변수가 nan이 아닐때 동작하게 하시면 됩니다.
2
var는 변수 선언입니다.
선언문에 pred(C)로만 지정하시고 이후에 값할당이 없으면 초기값만 유지 됩니다.
내부변수에 계속 값을 할당하게 하셔야 합니다.
3
Input : signal(30);
var : K1s(0), Pred(C);
Pred = C;
K1s = ma(Pred,signal);
if sTime == 12000 and IsNaN(k1s) == false then
{
MessageLog("%s%f","Pred=",Pred);
MessageLog("%s%f","K1s=",K1s);
if Pred > K1s then {
Buy("매수");
}
}
즐거운 하루되세요
> 와글이 님이 쓴 글입니다.
> 제목 : 오류
>
Input : signal(30);
var : K1s(0), Pred(C);
// ClearDebug;
K1s = ma(Pred,signal);
if sTime == 12000 then {
MessageLog("%s%f","Pred=",Pred);
MessageLog("%s%f","K1s=",K1s);
// 1.#QNAN0 계산은 되지만 무한 숫자가 나오는 오류
if Pred > K1s then {
Buy("매수");
}
}
Debug 내용에 보면 'K1s=1.#QNAN0'라고 표시 됩니다.
무슨 뜻인지는 알겠는데, 어떻게 해결해야 하나요?