커뮤니티

예스스팟 Q&A

개똥이 님에 의해서 삭제되었습니다.

프로필 이미지
개똥이
2017-05-29
3
글번호 224173

확장차트 생성 후 엑셀 작성 문의합니다.

안녕하세요. 예스스팟으로 매매에 도움을 얻고자 하는 1인입니다. 최근 여러 종목에서 필요한 값을 엑셀에 정리할 때 예스스팟을 활용할려고 합니다. 그래서 구상한 형태는 다음과 같은데요. 1 엑셀에 종목코드, 코스닥/코스피 표시 해두기 2 엑셀에 종목코드 읽어들여서 확장차트 생성하기 3 확장차트에서 최근 260일 종가 읽어들여서 수식 값 계산하기 4 수식 결과값 엑셀에 출력 그런데 현재 2번 확장차트 생성하기까지는 실행이 되는데, 이후 확장차트가 생성이 되어도 function Main_OnRcvChartEx(ChartEx) 로 진행이 되질 않습니다. 무엇이 잘못되었는지 참 고민하다가 여기에 글을 올립니다. 조언 부탁드립니다. ------------ 엑셀 파일 A B C D 1 종목코드 종목명 K (수식결과값입력란:빈칸) 2 종목코드 종목명 Q (수식결과값입력란:빈칸) (K면 코스피, Q면 코스닥) -------------- 코드 var ExcelCode = [], InMarket = [], Code = []; var KPprofit = [], KQprofit = [], Profit = [], Covar = [], Beta = []; var rcv, rcv1, ExcelRow, C1, ChartEx1, Period; var Avgpf, AvgKPpf, AvgKQpf, VarKP, VarKQ, AvgCovItem; function Main_OnStart() //특정이벤트에서 { Main.MessageLog("시작") ExcelRow = Excel1.GetRowCount(1); //엑셀에서 종목코드를 가져와 ExcelCode에 저장 for (var i = 2; i <= ExcelRow; i++) { ExcelCode[i-2] = Excel1.GetData(1, "A"+i); InMarket[i-2] = Excel1.GetData(1, "C"+i); } //객체수신 횟수를 카운트할 변수 rcv = 0; //객체수신하면 저장할 배열변수 Code = []; //자료수집 기간 설정 Period = 260; //코스피, 코스닥 지수 수익률 분산 계산 for (var j = 0 ; j < Period ; j++) { KPprofit[j] = ( ChartExKP.GetClose(1,j) / ChartExKP.GetClose(1,j+1) ) - 1; AvgKPpf = AvgKPpf + KPprofit[j] / Period; KQprofit[j] = ( ChartExKQ.GetClose(1,j) / ChartExKQ.GetClose(1,j+1) ) - 1; AvgKQpf = AvgKQpf + KQprofit[j] / Period; } for (var k = 0 ; k < Period ; k++) { VarKP = VarKP + Math.pow( AvgKPpf - KPprofit[k], 2); VarKQ = VarKQ + Math.pow( AvgKQpf - KQprofit[k], 2); } Main.MessageLog("KP, KQ 분산 측정, 타이머 시작"); Main.SetTimer(1,1000) } function Main_OnTimer(nEventID) //특정이벤트에서 { //ExcelCode에 저장된 값이 1개이상이면 if (nEventID == 1 && ExcelCode.length >= 1 && ExcelCode.length <= ExcelRow + 1 ) { //ExcelCode[rcv]방의 종목요청 Main.ReqMarketData(ExcelCode[rcv]); Main.MessageList("종목 <",ExcelCode[rcv],"> 생성 요청"); } Main.KillTimer(1); } function Main_OnRcvMarketData(MarketData) { //확장차트 객체 초기화 // var ChartEx1 = null; //직전 요청산 종목이 수신되면 if (MarketData.code == ExcelCode[rcv]) { //Object의 rcv방에 해당종목객체 저장 Code[rcv] = MarketData; var C1 = new ReqChartItem(MarketData.code, 1, CHART_PERIOD_DAILY, 261, CHART_REQCOUNT_BAR,false, false); Main.ReqChartEx(C1, null, null, null); Main.MessageList("종목 <",ExcelCode[rcv],">의 확장차트 생성"); } function Main_OnRcvChartEx(ChartEx) { ChartExA = ChartEx; for (var l = 0 ; l < Period; l++) { Profit[l] = ( ChartExA.GetClose(1,l) / ChartExA.GetClose(1,l+1) ) - 1; Avgpf = Avgpf + Profit[l] / Period; Main.MessageLog("Avgpf 측정"); } //코스피, 코스닥 종목 구분 if ( InMarket[rcv] == "K" ) { for (var m = 0 ; m < Period ; m++) { Covar[m] = ( Profit[m] - AvgKPpf )*( KPprofit[m] - Avgpf ); AvgCovItem = AvgCovItem + Covar[m] / Period; } Beta[rcv] = AvgCovItem / VarKP; Main.MessageLog("Beta 측정"); } if ( InMarket[rcv] == "Q" ) { for (var n = 0 ; n < Period ; n++) { Covar[n] = ( Profit[n] - AvgKQpf )*( KQprofit[n] - Avgpf ); AvgCovItem = AvgCovItem + Covar[n] / Period; } Beta[rcv] = AvgCovItem / VarKQ; Main.MessageLog("Beta 측정"); } if ( InMarket[rcv] == "" ) { Beta[rcv] = 0; Main.MessageLog("Beta 측정"); } rcv1 = rcv + 2; //엑셀에 베타(1년) 입력 Excel1.SetColData(1, "D"+rcv1, Beta[rcv]); Main.MessageList("종목 <",ExcelCode[rcv],">의 Beta 출력"); //필요한 변수 초기화 Avgpf = 0; AvgCovItem = 0; //rcv는 1증가 rcv = rcv+1; //타이머 재설정 Main.SetTimer(1,5000); //배열변수가 0부터 존재하므로 //rcv가 종목코드갯수 이하일때만 요청 if (rcv < ExcelCode.length) { Main.ReqMarketData(ExcelCode[rcv]); } if ( rcv >= ExcelRow - 1 ) { Excel1.Save() }; } }
프로필 이미지
매매광
2017-05-25
2509
글번호 224172

찬홍아빠 님에 의해서 삭제되었습니다.

프로필 이미지
찬홍아빠
2017-05-25
14
글번호 224171

찬홍아빠 님에 의해서 삭제되었습니다.

프로필 이미지
찬홍아빠
2017-05-22
7
글번호 224170
답변완료

Grid 와 엑셀 객체 사용관련 문의 드립니다.

예스스팟에서 그리드를 활용하여 수시로 변경되는 데이터들을 보관하고, 업데이트하여 사용중입니다. 질문이 좀 여러가지네요. ^__^ 1. 전략을 실행하면 Grid 부분에서 마우스로 보이기 를 클릭해 줘야 보이는데, 기본적으로 보이도록 할 방법은 없는지요? 2. Grid 객체를 예스스팟 편집기에서 사용시 row는 최소 1 이상으로 줘야 합니다. 이런 경우 실행시 grid.rows 하면 1이 아닌 0이 리턴 됩니다. 맞는 건가요? 이걸 알아야 새로운 row 추가 후 사용시 0 또는 1로 결정해서 set data를 할 수 있거든요. 3. Grid의 row 나 col은 0부터 시작된다고 하였는데요. 모두 0부터 사용이 되는게 맞는것 같은데, deleterow(0) 이렇게 하면 0 row가 아닌 1번 row가 삭제되는 것으로 테스트가 됩니다. 4. 엑셀객체를 사용하는데, 항상 화면에 엑셀이 나타나는데, 이거 나타나지 않게 할 수 있나요? 5. 엑셀객체 사용시 새로운 프로세스로 가동이라는 게 있던데, 이거는 Y / N 으로 해도 큰 차이를 알수가 없네요. 6. 전략 실행 후 엑셀객체가 뜬 상태에서 전략을 중지하거나 취소하면 PC가 종료되어 버리는 경우가 있습니다. 어떤 경우에 해당되는지 알 수가 없네요. 예스트레이더 파일 전체 새로 받아서 해 보아도 마찬가지 입니다. 7. 엑셀에는 예스스팟에서 사용할 여러 설정값을 저장해 놓고 불러다 사용하는 용도입니다. 그냥 txt 파일에 저장해 놓고 불러다 사용토록 하면 더 좋을 것 같은데요. 좋은 방법이 없을까요? (일반적인 스크립트의 파일스트림은 사용 불가한 듯) 좀 여러가지이지만 성실한 답변 부탁드립니다.
프로필 이미지
파워풀맨
2017-05-15
2430
글번호 224166

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

프로필 이미지
매매광
2017-05-11
24
글번호 224165
답변완료

문의드립니다.

선물매매시입니다. 1.아래내용처럼 구현되는지 문의드립니다. 2.예스스팟으로만 구현되는지요? 예스트레이드도 되나요? 진입 : 신호결정된 가격에 지정가로 예약대기 수익청산 : 진입하자마자 목표수익 (예를 들어 0.5p수익) 가격에 지정가 예약대기 손실청산 : 신혼나오면 시장가로 청산 (지정가 예약 되어 있던 목표수익은 취소후 손실청산은 시장가 청산)
프로필 이미지
비류천
2017-05-06
2480
글번호 224164
답변완료

현대선물 자꾸 에러가 뜹니다!! 미치겠습니다!!

첨부파일과 같이 계속해서 에러가 뜹니다..그것도 대부분 차트가 급하게 움직이는 경우에 발생하여 손실이 막심합니다...장소를 가리지 않습니다...무쓴 문제가 있는지요?? 새롭게 다운로드 하여 설치하여도 마찬가지입니다.. 피씨메로리가 부족하다면 실제로 8메가인 사무실에서는 이런 현상이 발생하면 안되는데요.. 낮시간 해외선물을 이용할 때에도 그렇습니다... 이런 에러때문에 몇백정도 잃었지만 그래도 시스템차트를 볼수 있는 방법이 없어서 이렇게 문의드립니다. 좋은방법 또는 제가 시스템을 업그레이드 해야한다면 그렇다고 말씀이라도 쩜 해주세요.. 너무 힘드네요~~
프로필 이미지
쪽박부활
2017-05-03
2540
글번호 224163

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

프로필 이미지
매매광
2017-05-02
1
글번호 224162
답변완료

안녕하세요. 실시간으로 V-Kospi 그려볼 수는 없을까요?

보니까 v-kospi 봉이 실시간으로 완성되는것이 아니라 15분? 30분 지나면 되는것 같더라구요. 이걸 예스스팟을 활용해 실시간으로 ATM을 잡아주고, 변동성 그래프를 그리게 할 수는 없을까요?
프로필 이미지
가치투자꾼
2017-05-01
2480
글번호 224160