커뮤니티

예스스팟 Q&A

답변완료

차트객체의 종목변환 코딩이 가능한가요?

안녕하세요. 차트객체의 현재 종목을 조건에 따라 프로그램상으로 변경을 시킬 수 있나요? 현재 차트객체에는 GetCode 함수는 확인하였으나, SetCode 와 같이 현재 차트객체의 설정변경은 불가한 것 같네요.
프로필 이미지
치우장
2018-06-16
2229
글번호 224474
답변완료

문의

BXID = a1.OrderSell (order1.code , a1.Balance.count , order1.Bid(1) , 2 ) ; 위 수식으로 예스트레이더에서는 잔고수량을 불러와서 매도 처리가 되는데 글로벌에서는 첨부파일처럼 잔고수량이 "0"으로 매도처리가 않되네요 글로벌에서 잔고수량과 포지션을 불러오는 수식 부탁드립니다 첨부파일2번관련입니다 예스트레이더에서 스팟식으로 작동한 첨부파일을 보시면 주문번호 240으로 3개 미도하고 270 ,275 번으로 한개씩 2개를 매수하고 주문번호 276으로 잔량 전부 청산 매수를 하도록 하였는데 잔고수량이 1개가 아니고 2개로 인식되어 처리됩니다. 왜 그런지요 ?
프로필 이미지
파일럿
2018-06-18
2132
글번호 224473
답변완료

문의드립니다.

수고하십니다. 장 종료후 계좌의 주식 현물 전 종목을 엑셀로 불러온 후에, 각 종목당 지정가 매도가격과 추가 매수가격을 기입해서 다음날 아침 8시 한번에 주문을 내는 식 부탁드립니다. 안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. 첨부된 그림과 같이 표시됩니다. 잔고객체에 종목명은 없어 별도로 종목개체 생성해서 사용하게 되어 있습니다. var V1 = []; var V2 = []; var V3 = []; var V4 = []; var V5 = []; var num; function Main_OnStart() { Main.SetTimer(1, 1000); } function Main_OnTimer(nEventID) { Main.KillTimer(1); num = Account1.GetTheNumberOfBalances(); Excel1.SetData(1, "A1","보유종목수"); Excel1.SetData(1, "B1",num); Excel1.SetData(1, "A2","종목명"); Excel1.SetData(1, "B2","종목코드"); Excel1.SetData(1, "C2","평단가"); Excel1.SetData(1, "D2","보유수량"); Excel1.SetData(1, "E2","현재가"); if (num > 0) { req = 0; Account1.SetBalance(req); V2[req] = Account1.Balance.code; V3[req] = Account1.Balance.avgUnitCost; V4[req] = Account1.Balance.count; V4[req] = Account1.Balance.current; Main.ReqMarketData(Account1.Balance.code,0,0); } } function Main_OnRcvMarketData(MarketData) { V1[req] = MarketData.name; req = req+1; if (req < num) { Account1.SetBalance(req); V2[req] = Account1.Balance.code; V3[req] = Account1.Balance.avgUnitCost; V4[req] = Account1.Balance.count; V4[req] = Account1.Balance.current; Main.ReqMarketData(Account1.Balance.code,0,0); } else { Excel1.SetArrayToCol(1,"A3",V1); Excel1.SetArrayToCol(1,"B3",V2); Excel1.SetArrayToCol(1,"C3",V3); Excel1.SetArrayToCol(1,"D3",V4); Excel1.SetArrayToCol(1,"E3",V4); } }
프로필 이미지
여세우
2018-06-20
2242
글번호 224472
답변완료

매도로직대로 실행이 안돼서 문의드립니다.

안녕하세요. 제가 첨으로 예스스팟 게시판 보고 참고해서 프로그램을 완성했는데요. 파워종목 검색으로 주문 넣고 매수 후에 기준가에서 1% 씩 오를때마다 일정수량(10%)을 매도하는 프로그램을 만들었는데요. 종목 검색후 매수(20종목)까지는 무난하게 잘 돌아갑니다. 그런데 익절에서 기준가 대비 1% 상승시 보유수량에 10%, 2% 상승시 보유수량에 20%, 3% 상승시 보유수량에 20%, 4% 상승시 보유수량에 10%, 5% 상승시 보유수량에 10%를 매도하고 10시에 타임컷을 실행하려고 하는데요. 다 잘 돌아가는데 예를 들어 20종목을 매수했는데 어떤 종목은 위 매도로직에 의해 매도가 잘 되는 반면 어떤 종목은 매수가에서 3%까지 상승해도 매도가 안되는 경우가 생기고 해서 뭐가 잘못된건지 모르겠어요ㅜㅜ 매수 종목수가 많아서 그럴까요? 대략 목표치에 도달한 종목중에 10종목중 3종목 정도만 매도 로직대로 매도가 되고 나머지는 매도가 안되고 나중에 타임컷으로 매도가 되었어요. 에러가 뜨면 고치겠는데 에러 메시지가 뜨지도 않으니 뭐가 잘못되었는지 모르겠어요. 코드좀 한번 봐주시기 바랍니다. 그리고 로그 메시지가 따로 저장되는 파일이 존재하나요? 예스스팟에 디버깅이랑 오류창에서만 볼수 있는건가요? 답변좀 부탁드리겠습니다. 그리고 한가지 질문 더 드릴게요. 매도 로직을 하나 더 만들려고 합니다. 분봉을 이용해서 현재 가격 < 30분 and 20분 and 10분 가격 시에 매도하고 싶은데요. 챠트 객체를 이용해서 해야 하나요? 되신다면 간단한 예제좀 부탁드릴게요~ 예스스팟을 배운지 아직 얼마 안돼서 이곳 게시판 보면서 적용하기가 쉽지가 않습니다ㅜㅜ 시간 되시면 답변좀 꼬옥 부탁드려요^^ 감사합니다 function Main_OnU*dateMarket(sItemCode, lU*dateID) { if( lU*dateID == 20001 && RcvData >= 1 ) { for( var i = 0; i < EntryItem.length; i++ ) { if( sItemCode == EntryObject[i].code ) { A1.SetBalanceItem(EntryObject[i].code, 0); // 장중 최고가 세팅 if( EntryObject[i].current > EntryHH[i] ) EntryHH[i] = EntryObject[i].current; // 상한가 도달시 자동 청산 if( EntryObject[i].current >= EntryObject[i].limitUp ) { if( A1.Balance.count >= 1 ) { A1.OrderSell(A1.Balance.code, A1.Balance.count, EntryObject[i].Bid(1), 0); Main.MessageList("상한가 도달로 익절"); } } //1% 도달 - 매수수량의 10% 청산 if( BenefitCnt[i] == 0 && EntryObject[i].current >= A1.Balance.avgUnitCost * 1.01 ) { if( A1.Balance.count >= 1 ) { A1.OrderSell(A1.Balance.code, Math.floor(A1.Balance.count * 0.1), EntryObject[i].Ask(1), 0); Main.MessageList("종목명 : ", EntryObject[i].name, " 진입가에서 1.5% 상승하여 전체 금액의 10% 익절"); } BenefitCnt[i] = 1; } //2% 도달 - 매수수량의 20% 청산 if( BenefitCnt[i] == 1 && EntryObject[i].current >= A1.Balance.avgUnitCost * 1.02 ) { if( A1.Balance.count >= 1 ) { A1.OrderSell(A1.Balance.code, Math.floor(A1.Balance.count * 0.24), EntryObject[i].Ask(1), 0); Main.MessageList("종목명 : ", EntryObject[i].name, " 진입가에서 2% 상승하여 전체 금액의 10% 익절"); } BenefitCnt[i] = 2; } //3% 도달 - 매수수량의 20% 청산 if( BenefitCnt[i] == 2 && EntryObject[i].current >= A1.Balance.avgUnitCost * 1.03 ) { if( A1.Balance.count >= 1 ) { A1.OrderSell(A1.Balance.code, Math.floor(A1.Balance.count * 0.32), EntryObject[i].Ask(1), 0); Main.MessageList("종목명 : ", EntryObject[i].name, " 진입가에서 3% 상승하여 전체 금액의 10% 익절"); } BenefitCnt[i] = 3; } //4% 도달 - 매수수량의 10% 청산 if( BenefitCnt[i] == 3 && EntryObject[i].current >= A1.Balance.avgUnitCost * 1.04 ) { if( A1.Balance.count >= 1 ) { A1.OrderSell(A1.Balance.code, Math.floor(A1.Balance.count * 0.23), EntryObject[i].Ask(1), 0); Main.MessageList("종목명 : ", EntryObject[i].name, " 진입가에서 3% 상승하여 전체 금액의 10% 익절"); } BenefitCnt[i] = 4; } //5% 도달 - 매수수량의 10% 청산 if( BenefitCnt[i] == 4 && EntryObject[i].current >= A1.Balance.avgUnitCost * 1.05 ) { if( A1.Balance.count >= 1 ) { A1.OrderSell(A1.Balance.code, Math.floor(A1.Balance.count * 0.31), EntryObject[i].Ask(1), 0); Main.MessageList("종목명 : ", EntryObject[i].name, " 진입가에서 5% 상승하여 전체 금액의 10% 익절"); } BenefitCnt[i] = 5; } } } } }
프로필 이미지
도도당
2018-06-13
2351
글번호 224471
답변완료

거래량 상워종목 N개 검색식 언제 반영되나요?

지난주 중으로 반영하신다고 하셨는데, 언제쯤 사용가능한가요??
프로필 이미지
gutentak
2018-06-11
2291
글번호 224466
답변완료

하이투자증권에서 예스스팟 전략 제작도 해주나요?

스팟 매뉴얼 읽어보고 있습니다만 워낙 이쪽으로 초보라 쉽지 않습니다 하이투자증권에서 거래 예정인데 제가 원하는바를 이야기하면 제작해주는 부서는 없나요?
프로필 이미지
미수맨
2018-06-10
2283
글번호 224465
답변완료

문의드립니다.

수고하십니다. 장시작전에 지정가 AA에 매도를 XX주 , BB에 XX주 매도 주문을 내고 현재가가 AA에 오면 +NN호가 위에 XX주 매도 주문을 내고 지정가 AA에 걸어둔 XX주가 매도 체결이 되면 -MM호가 아래 XX주 매수주문을 내는 식 부탁드립니다. 항상 고맙습니다.
프로필 이미지
여세우
2018-06-14
2266
글번호 224464

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

프로필 이미지
훈sys
2018-06-07
6
글번호 224463
답변완료

문의드립니다.

항상 도움 주셔서 고맙습니다. 옵션이 아닌 Account1의 내용을 엑셀로 출력하고 싶습니다. 종목명, 종목코드,평단가,수량,현재가를 엑셀에 표시하고 싶습니다. var a = "A"; function Main_OnStart() { Main.SetTimer(1, 1000); } function Main_OnTimer(nEventID) { var ItemCode = new Array(6); var ItemPrice = new Array(6); ItemCode[0] = "종목코드" ItemPrice[0] = "평단가" for(var i = 1; i <= 5; i++) { ItemCode[i] = Option.GetATMCallRecent(i); ItemPrice[i] = Option.GetavgUnitCost(0, i); } //지정된 셀을 기준으로 우측으로 배열변수에 저장된 값을 순서대로 입력 Excel1.SetArrayToRow(1, "C1", ItemCode); //지정된 셀을 기준으로 우측으로 배열변수에 저장된 값을 순서대로 입력 Excel1.SetArrayToRow(1, "C2", ItemPrice); //지정된 셀을 기준으로 아래로 배열변수에 저장된 값을 순서대로 입력 Excel1.SetArrayToCol(1, "C4", ItemCode); //지정된 셀을 기준으로 아래로 배열변수에 저장된 값을 순서대로 입력 Excel1.SetArrayToCol(1, "D4", ItemPrice); Main.KillTimer(1); } 잘 부탁드립니다.
프로필 이미지
여세우
2018-06-11
2281
글번호 224460

여세우 님에 의해서 삭제되었습니다.

프로필 이미지
여세우
2018-06-09
5
글번호 224459