커뮤니티

예스스팟 Q&A

답변완료

GetUserValue()함수로 파일변수를 읽기전에 초기화하는 방법이 있나요?

파일에 변수를 만들어 스팟이 다시 실행되더라도 기존 값을 계속해서 읽고, 쓰고 싶을때가 많이 있습니다. OnStart()함수에서 GetUserValue()를 해서 변수를 활용하고 싶은데, 해당 변수는 OnTimer() 함수내에서 만들어주기 때문에 최초에 OnStart()에서 초기화를 할 수 없는 상황입니다.(OnStart() 함수에서 초기화하면 스팟 실행할때마다 초기화가 되어 파일에서 기존 값을 읽어오는게 의미가 없어지므로 그렇게 하면 안될 것 같습니다.) 이렇게 되면 맨 처음에 전략 실행시 변수가 초기화되지 않은 상태에서 OnStart()함수에서 GetUserValue()를 이용해 변수를 불러오게 되므로 오류가 생길 수 밖에 없는데, 어떻게 초기화하면 될까요?
프로필 이미지
원더뿌리
2013-10-07
701
글번호 222607

logos 님에 의해서 삭제되었습니다.

프로필 이미지
logos
2013-10-07
36
글번호 222604

루이001 님에 의해서 삭제되었습니다.

프로필 이미지
루이001
2013-10-04
30
글번호 222603
답변완료

문의드립니다

항상 수고 많으십니다. 종목명이 연결선물지수이고 스팟으로 장마감 동시호가 청산식으로 청산하려고 하는데 오류가 발생하네요 A1.OrderSell(A1.Balance.code,A1.Balance.count,0,1); 접수오류(주문가격이 하한가 미만입니다. 0)
프로필 이미지
재령
2013-10-02
877
글번호 222601
답변완료

질문드립니다.

안녕하세요. 제가 아래와 같이 선물 챠트 신호에 따라 옵션을 매매하는 수식을 작성해 보았는데요. 다음과 같이 청산식을 수정하고자 질문드립니다. 진입 - 기존 수식과 동일 청산1 - 챠트1 그리고 챠트2의 동시매수신호 발생시점의 선물가격이 1pt상승하면... 보유한 콜옵션 3개를 청산한다. 청산2 - 챠트1 또는 챠트2에서 매수익절신호(2) 또는 매도신호(3)이 발생하면 보유한 콜옵션 전량을 청산한다. 감사합니다. -------------------------------------------------------------------------------------- var S1; var S2; var MP; var Callcode; function Main_OnStart() { S1 = 0; S2 = 0; MP = 0; } function Chart1_OnRiseSignal(Signal) { S1 = Signal.signalKind; if (S1 == 1 && S2 == 1) { Callcode = Option.GetATMCallRecent(2,0); Account1.OrderBuy(Callcode, 6, Option.GetAskByCode(Callcode, 2), 0); MP = 1; } if (MP == 1 &&(S1 == 2 || S1 == 3)) { MP = 0; { Account1.OrderSell(Callcode, 6, Option.GetBidByCode(Callcode, 2), 0); } }
프로필 이미지
극동해
2013-10-01
831
글번호 222597

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
금학
2013-09-29
15
글번호 222596
0
답변완료

변수조합하여 일괄처리

안녕하세요. 늘 수고하십니다. 질문이 있어 이렇게 또 글을 올립니다. 미리 감사하구요 ^^ 질문1: 스팟의 종목개체를 추가하여 , 객체명은 Stock1 ~ Stock10 이렇게 만들고 이 종목의 현재가를 for로 처리하여 배열에 저장하는 수식을 만들려고 했는데 변수에 저장하면 문자열로 인식하여 제대로 작동을 하지 않는것 같네요. 이처럼 일괄로 처리하려면 어떻게 하는지 궁금합니다. S_CurPrc = new Array(20); var Adder; function Main_OnStart() { for(i=1; i<=10; i++) { Adder = 'Stock'+ i +'.' + 'current'; S_CurPrc[i] = Adder; S_CurPrc[19] = Stock1.current; Main.MessageList("조합 i",i, "Adder",Adder ,"S_CurPrc",S_CurPrc[i],"S_CurPrc[19]",S_CurPrc[19] ); } } 질문2: 데이터 베이스 처리문제 스팟의 메뉼얼을 보고 선물의 현재가를 MS-SQL 처리 하였는데, 이를 다음을 이용하여 처리하여 배열에 저장할 수 있는지 궁금합니다. GetFieldValue(nIndex) 설 명 : 현재 레코드의 각 필드별 데이터를 반환합니다. 반 환 값 : 문자열 매개변수 : nIndex &#8211; 정수, 필드의 인덱스를 입력합니다.
프로필 이미지
히말라야
2013-09-27
914
글번호 222594
답변완료

트레일링 문의 드립니다.

밑에 수식에서 지속적으로 트레일링을 작동 시킬려면 어떻게 해야되나요? 처음 실행할때만 작동이되고 지속적으로 작동이 안되는거 같아서요. ㅜㅜ var Nth = 0; var ItemCode = []; var ItemObject = []; var ItemHigh = []; var Bnum; function Main_OnStart() { Nth = 0; Bnum = Account1.GetTheNumberOfBalances() Main.MessageList("잔고종목수",Bnum); if (Bnum > 0) { //계좌의 잔고리스트에서 첫번째 잔고 셋팅 Account1.SetBalanceIndex(Nth);//잔고는 순번이 0부터 시작 //셋팅된 잔고의 수량이 0이상이면 if (Account1.Balance.count > 0) { //1번째 종목객체 생성요청 Main.ReqMarketData(Account1.Balance.code, 0,0); //ItemCode의 [Nth]번째 방에 종목코드 저장 ItemCode[Nth] = Account1.Balance.code; Main.MessageList("종목객체요청",Account1.Balance.code); } } } //요청한 종목객체 수신되면 function Main_OnRcvMarketData(MarketData) { Main.MessageList("종목객체수신",MarketData.code); //수신받은 종목객체의 종목코드와 직전에 요청한 종목과 같은지 확인 후에 if (MarketData.code == ItemCode[Nth]) { ItemObject[Nth] = MarketData;//ItemObject의 [Nth]방에 수신받은 객체를 저장 ItemHigh[Nth] = 0; //ItemHigh의 [Nth]방의 값을 0으로 셋팅 (이후 최고값 계산해 저장할 변수) Main.MessageList(Nth,"번째","종목객체생성완료 : ",ItemObject[Nth].code); //순번은 1 증가 Nth = Nth+1; //종목객체 수신완료되면 다음 종목 종목객체 요청 if (Bnum > 0) { //계좌의 잔고리스트에서 다음 순번 잔고 셋팅 Account1.SetBalanceIndex(Nth); //셋팅된 잔고의 수량이 0이상이면 if (Account1.Balance.count > 0) { //Nth번째 종목객체 생성요청 Main.ReqMarketData(Account1.Balance.code, 0,0); //ItemCode의 [Nth]번째 방에 종목코드 저장 ItemCode[Nth] = Account1.Balance.code; Main.MessageList("종목객체요청",Account1.Balance.code); } } } } 수식이 써지지 않아 첨부했습니다. ^^;;;;
프로필 이미지
오토
2013-09-30
868
글번호 222593

logos 님에 의해서 삭제되었습니다.

프로필 이미지
logos
2013-09-27
44
글번호 222592

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
명품이좋아
2013-09-25
3
글번호 222591
0