커뮤니티

예스스팟 Q&A

답변완료

트레일링 문의 드립니다.

밑에 수식에서 지속적으로 트레일링을 작동 시킬려면 어떻게 해야되나요? 처음 실행할때만 작동이되고 지속적으로 작동이 안되는거 같아서요. ㅜㅜ 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
915
글번호 222593

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

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

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

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

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

프로필 이미지
매매의추억
2013-09-24
9
글번호 222590
0

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

프로필 이미지
logos
2013-09-25
33
글번호 222588

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

프로필 이미지
재령
2013-09-23
0
글번호 222585
답변완료

시세조회 건수제한 오류

매매 시작하기 전에 약 30~80 개의 관종 종목의 maketdata를 추가하는 것으로 프로그램을 짰는데, 갑자기 시세조회 건수제한 오류(15초당 60건만 가능합니다. 15초 남았습니다.)라고 뜨고 marketdata가 추가가 안되는 것 같네요. 이제 컴퓨터로 for loop을 이용해서 다량의 marketdata를 추가하는 것이 불가능한건가요? 그렇게 되면,, 이 프로그램 쓸 이유가 없어지게 되는데,, 생각보다 이 hts는 많은 제약이 있어서 아쉽네요. 전략 생성의 간편함으로 예스스팟을 많이 용했는데, 생각보다 많은 제약이 있어서 다른 api를 찾아서 사용하는 것이 더 이로울 것 같네요...
프로필 이미지
here9931
2013-09-22
605
글번호 222584
답변완료

해당 종목에 가격 변동 정보를 구하고 싶네요

종목의 일정 기간동안 평균 상승률, 하락률 최고 상승률, 하락률 최조 상승률, 하락률 이렇게 정보를 얻고 싶습니다 도와주세요 그리고 좋은 추석 연휴 보내세요 ^_^
프로필 이미지
스킬
2013-09-17
699
글번호 222583
답변완료

파일쓰기와 읽기

수고 하십니다. 항상 멋진 프로그램 사용하는 재미에 푹빠져 있어 즐겁네요. 즐거운 추석되시고, 늘 건강하세요 예스 스팟의 Q& 게시판에 예스스탁의 답변중에 파일에 로그를 남기고, 이후 다시 불러 올 수 있다고 설명하셨는데 질문) 선물의 체결시간,현재가, 거래량을 파일에 저장하고 , 이 값을 배열에불러와 저장하고 출력하는 예문 부탁드립니다. function Main_OnStart() { var Test; testArr = new Array(100); // 단순 저장후 출력 Main.SetUserValue("buy",Futures.current); Test =Main.GetUserValue("buy"); Main.MessageList("Test:저장후 호출",Test); // 파일에 저장후 출력 for(i=0; i<10 ; i++) { testArr[i]=i; Main.PrintOnFile("Futures.txt",i,Futures.time,Futures.current,Futures.volume); } // testArr 저장 후 출력 Main.SetUserValue("SetArr",testArr); Main.MessageList("SetArr",Main.GetUserValue("SetArr")); // 파일의 출력? } <기존 답변> 특정값을 로그를 남기실 경우에는 아래 함수를 이용하시면 됩니다. Main.PrintOnFile(sFilePath, sMsg) sFilePath : 저장결로및 파일명 sMsg : 출력내용 스크립트에서 특정 값을 저장해서 이후에 해당 값을 다시 불러 사용하실 경우에는 아래 함수를 이용하시면 됩니다. Main.SetUserValue(sName, sValue) --> 내부파일에 지정한 이름으로 지정한 값을 저장 Main.GetUserValue(sName) --> 내부파일에 지정한 이름으로 저장된 값을 값 반환 내부파일에 수식의 특정값을 이름을 지정해 저장하고 부르시는 함수가 제공되고 있습니다. 즐거운 하루되세요
프로필 이미지
히말라야
2013-09-17
780
글번호 222581
답변완료

질문 올립니다.

안녕하세요. 항상 친절하신 답변 감사드립니다. 한 번 주문한 후, 그 것이 체결되어 청산되든, 아니면 조건이 안 맞아 체결 전에 취소하든, 이런 과정들을 아주 철저하게 주문번호를 연결고리로 하여 추적해 가며 관리하고 싶습니다. 그래서, 아래와 같은 스팟 식을 짜고 싶은데, 아직 잘 되질 않고 있어서 도움을 부탁드립니다. ////////// ////////// ////////// ////////// ////////// 아래: 신호에 따라 매수진입 주문(예: 20 이평 80 이평 교차 전략) 주문번호: 88번. (변수로는 가령 BuyNum이라 가정) 1. 이 매수주문이 체결되면: 1.1. 초기손절: 진입가격에서 9틱 하락하면 손절. ((위 주문 번호를 이용해서 코딩)) 1.2. 익절: 매수주문이 체결되면 50틱 위에서 익절하도록 익절 주문 냄. ((위 주문 번호를 이용해서 코딩)) 1.3. 추적스탑: 그 전까지는(즉 익절 목표에 달성하기 전까지는), 10틱 이상 오르고 2틱 내리면 손절하는 추적스탑. ((위 주문 번호를 이용해서 코딩)) 2. 미체결된 경우: 주문 취소: 매수진입 주문 후, 그 주문이 아직 체결되지 않은 상태에서, 시장의 가격이, 처음 매수주문한 가격으로부터, 5틱 오르거나 3틱 내리면 매수진입주문 취소. ((위 주문 번호를 이용해서 코딩)) ////////// ////////// ////////// ////////// ////////// 이상과 같은 것을, step과 같은 변수 등을 이용하지 않고, 최대한 주문 번호 자체를 이용해서, 즉 그 매수주문이 응답됐는지, 체결됐는지, 아직 안 됐으면 그 주문가격과 현재가격을 비교해서 현재가격이 너무 동떨어져 버렸으면 주문을 취소한다든지 하는 모든 과정을, 아주 철저하게 주문 번호 자체로 추적하며 관리할 수 있는 소스를 짜고자 하는데, 잘 안 되고 있습니다. 신호에 따라 매수주문 내고 하는 것은 별 문제없이 잘 되는데, 특히 잘 안 되는 부분은, 체결되고 난 후, 손절 익절 주문 등이 제가 짠 소스대로 잘 나가 주질 않고, 또 체결 전에 시장 가격이 많이 바뀌어서 주문을 취소해 버리고자 하는 부분도 제가 짠 소스에 의한 대로는 실행이 안 되고 있습니다. 그래서 아주 주문 번호 자체를 이용, 그 주문의 전 과정을 주문번호에 따라 밀착 추적해서 관리하는 방법을 배우고 싶습니다. 전문가님께서 도움을 제시해 주시면 대단히 감사하겠습니다.
프로필 이미지
즐겁게
2013-09-15
623
글번호 222578