수고 하십니다.
YestSpot 에서 static 변수 선언 하는 방법 문의 드립니다.
Marketdata = Futures
var static a;
static a;
static var a;
모두 에러가 나더라구요
미리 감사 드립니다.
< 질문>
1. Static 변수 선언 방법
2. 직전값을 참조하는 방법
다음은 스팟의 실행시점부터 최고가를 찾는 로직 샘플입니다.
이와 같은 코딩을 할때 함수로 구현시에는 해당 함수를 호출한다음에 직전값을 참조해야하는 로직이 필요한데. 함수 구현시에 제대로 되지 않습니다.
이부분에서 적어도 flag 값과 NewMax_before 의 변수 값이 호출후에 사라지면 안되는데 이를 해결 할 방법을 알고 싶습니다.
// Max함수 테스트
var flag = 0;
var NewMax =0;
var NewMax_before=0;
var initialPrice =0;
var Price =0;
function Main_On**Market(sItemCode, l**ID)
{
if(sItemCode =Futures.code && l*pdateID == 20001) // 선물의 시세를 받으면
{
Price = Futures.current;
if(flag ==0)
{
NewMax =Price; // 최고에 가격을 저장함
flag =1;
initialPrice = Price ;
Main.MessageList("flag2", flag);
}
// 최고 값을 구함
if(Price >= NewMax)
{
NewMax = Price;
}
else
{
NewMax = NewMax_before;
}
Main.MessageList("검증 ", "최초가격", initialPrice, "현재가 ", Price
,"flag ", flag
,"NewMax", NewMax,"NewMax_bf", NewMax_before
);
// 직전 값의 처리
NewMax_before = NewMax;
}
}
답변 1
예스스탁
예스스탁 답변
2013-09-03 15:53:32
안녕하세요
예스스탁입니다.
1
자바 스크립트 언어에는 Static 키워드가 없습니다.
Static 변수가 어떤 기능을 하는 변수인지 정확히 몰라
구글에서 찾은 링크 올려드립니다. 참고하시기 바랍니다.
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=91173
2.
NewMax_before = NewMax;
if(Price >= NewMax)
{
NewMax = Price;
}
else
{
NewMax = NewMax_before;
}
위 내용과 같이 위치 시키시면 됩니다.
NewMax_before에 직전시세에서 계산된 값이 저장이 되고
아래 조건문으로 들어가게 됩니다.
만약 스팟 적용 후의
Futures 종목객체의 최고가를 구하신 다면
아래와 같이 간단히 작성하셔도 됩니다.
var NewMax =0;
function Main_OnStart()
{
NewMax = Futures.current;
}
function Main_On**Market(sItemCode, l**ID)
{
if(sItemCode = Futures.code && l*pdateID == 20001)
{
if (Futures.current > NewMax)
{
NewMax = Futures.current;
}
}
}
즐거운 하루되세요
> 히말라야 님이 쓴 글입니다.
> 제목 : static 변수 선언
> 수고 하십니다.
YestSpot 에서 static 변수 선언 하는 방법 문의 드립니다.
Marketdata = Futures
var static a;
static a;
static var a;
모두 에러가 나더라구요
미리 감사 드립니다.
< 질문>
1. Static 변수 선언 방법
2. 직전값을 참조하는 방법
다음은 스팟의 실행시점부터 최고가를 찾는 로직 샘플입니다.
이와 같은 코딩을 할때 함수로 구현시에는 해당 함수를 호출한다음에 직전값을 참조해야하는 로직이 필요한데. 함수 구현시에 제대로 되지 않습니다.
이부분에서 적어도 flag 값과 NewMax_before 의 변수 값이 호출후에 사라지면 안되는데 이를 해결 할 방법을 알고 싶습니다.
// Max함수 테스트
var flag = 0;
var NewMax =0;
var NewMax_before=0;
var initialPrice =0;
var Price =0;
function Main_On**Market(sItemCode, l**ID)
{
if(sItemCode =Futures.code && l*pdateID == 20001) // 선물의 시세를 받으면
{
Price = Futures.current;
if(flag ==0)
{
NewMax =Price; // 최고에 가격을 저장함
flag =1;
initialPrice = Price ;
Main.MessageList("flag2", flag);
}
// 최고 값을 구함
if(Price >= NewMax)
{
NewMax = Price;
}
else
{
NewMax = NewMax_before;
}
Main.MessageList("검증 ", "최초가격", initialPrice, "현재가 ", Price
,"flag ", flag
,"NewMax", NewMax,"NewMax_bf", NewMax_before
);
// 직전 값의 처리
NewMax_before = NewMax;
}
}