커뮤니티

예스스팟 Q&A

답변완료

바로 아래 게시글에 질문 추가했습니다

바로 아래 게시글에 질문 추가했습니다 총 질문 8개
프로필 이미지
으쌰
2013-01-11
2444
글번호 221931
답변완료

3.1 버젼과 4.0 버젼의 데이터 값이 다릅니다.

3.1 버젼과 4.0 버젼의 데이터 값이 다릅니다. 첫째 개인 콜옵션 순매수 금액 개인 풋옵션 순매수 금액 외국인 콜옵션 순매수 금액 외국인 풋옵션 순매수 금액 둘째 차트에 연결선물지수를 띄우고 참조종목에 S&P를 띄우면 예전 3.1 버전과 다르게 일간격이 서로 엇갈리게 표현됩니다. 왜 이런건가요? 교정 바랍니다 셋째 투자주체별 매매현황데이터 값이 다릅니다. 첨부한 그림은 동시간에 캡춰한 그림 `````````````````````````````````````````````````` 넷째 [6103] 시스템모니터 화면에서 위아래 창간격을 조정후 저장해도 기본 디폴트 값으로 계속 돌아갑니다. 사용자가 조정한데로 저장될 수 있게 수정해 주세요~ 다섯째 [2102] 원샷주문 화면에서 표시된 가격의 색깔에 오류가 있습니다 첨부된 그림에 전일종가 266.20 이상이면 가격이 빨갛게 표시되야 하는데 실제론 파랗게 나오네요~ 여섯째 봉의 기준시간이 시작시간에서 종료시간으로 변경된 건가요? 기존에 사용하던 시스템에 stime 함수를 사용한 로직은 두버젼간에 결과값이 다르게 나옵니다. 어찌된건가요? 일곱 [1103] 계좌평가 창에 기존에 있던 새로고침 버튼이 사라져서 당일매매대금의 실시간 조회가 불가능합니다. 여덟 [2105] 예스자동정정 원샷주문 화면에서 매수주문시마다 확인창이 계속 뜹니다. 여간 불편한게 아니네요... [2102] 원샷주문창 설정화면처럼 매수확인창 미표시 항목 선택할 수 있게 메뉴 추가 바랍니다
프로필 이미지
으쌰
2013-01-11
2531
글번호 221928
답변완료

[시뮬레이션] 다수의 개별 종목에 적용하는 방법

동일한 시스템식을 다수의 개별 종목에 시뮬레이션으로 적용해 보고자 할때, 편리한 방법이 어떤게 있을까요? 각 종목마다 일일이 실행해 봐야 되나요?
프로필 이미지
hugnkiss
2013-01-09
2571
글번호 221927
답변완료

체결확인을 하고싶습니다.

예를 들어 선물 신호기준 콜옵션 1.0에 가장 가까운 종목을 매수했을때. 가격이 올라 만약 2.5 가 되었을때 청산 신호가 뜬다면 예스스탁님이 올려주신 아래식을 적용한다면 매수는 a라는 종목에 나가고 청산은 b라는 종목에 나갈꺼 같습니다... 맞는지요.. 그래서 아래처럼.OnNotifyFill 을 사용해서 체결유무를 확인하고 체결되었다면 checkbuycallcode 변수에 CallOrderCode 를 넣은후...청산 신호가 발생시 ... Main.OrderSell(a1.number, CallOrderCode, 1, Option.GetAskByCode(checkbuycallcode, 2), 0); 이렇게 청산되게 했습니다... 근데 메시지 로그에 checkbuycallcode 값이 안나오네요 수정 및 설명부탁드립니다. var CPrice = new Array(101); var CCode = new Array(101); var PPrice = new Array(101); var PCode = new Array(101); var MaxCall; var MaxCallCode; var MaxPut; var MaxPutCode; var checkbuycallcode; function c1_OnRiseSignal(Signal) { //ATM 위 행사가 갯수 UNum = Option.uppersATM; //ATM 위 행사가 갯수 LNum = Option.lowersATM; //배열변수 준비(가격, 종목코드) CallCode = new Array(UNum+LNum+1); PutCode = new Array(UNum+LNum+1); CallPrice = new Array(UNum+LNum+1); PutPrice = new Array(UNum+LNum+1); //3.0이하의 가격을 가지는 콜종목은 해당 값과 종목코드 저장 //3.0을 초과하는 콜종목은 가격과 종목코드를 모두 -1 처리 for (var i = -LNum; i <= UNum; i++) { if (Option.GetCurrent(0, i) <= money) { CallPrice[i+LNum] = Option.GetCurrent(0, i); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else { CallPrice[i+LNum] = -1; CallCode[i+LNum] = -1; } Main.MessageLog(i+"콜종목코드:"+CallCode[i+LNum]+"/가격:"+CallPrice[i+LNum]); } //3.0이하의 가격을 가지는 풋종목은 해당 값과 종목코드 저장 //3.0을 초과하는 풋종목은 가격과 종목코드를 모두 -1 처리 for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) <= 1.0 ) { PutPrice[ii+UNum] = Option.GetCurrent(1, ii); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else { PutPrice[ii+UNum] = -1; PutCode[ii+UNum] = -1; } // Main.MessageLog(ii+"풋종목코드:"+PutCode[ii+UNum]+"/가격:"+PutPrice[ii+UNum]); } //각 배열에 저장된 값중 가장 큰 값을 찾음 var CC = -1; var CallOrderCode = -1; for (var iii = -LNum; iii <= UNum; iii++) { if (CallPrice[iii+LNum] > CC) { CC = CallPrice[iii+LNum]; CallOrderCode = CallCode[iii+LNum] } } var PP = -1; var PutOrderCode = -1; for (var iiii = -UNum; iiii <= LNum; iiii++) { if (PutPrice[iiii+UNum] > PP) { PP = PutPrice[iiii+UNum]; PutOrderCode = PutCode[iiii+UNum]; } } Main.MessageLog("--------------------------------------------"); Main.MessageLog("콜주문종목코드:"+CallOrderCode+"/가격:"+CC); // Main.MessageLog("풋주문종목코드:"+PutOrderCode+"/가격:"+PP); if (Signal.signalKind == 1)// ----------->A 여기서부터 수정했습니다. { Main.OrderBuy(a1.number, CallOrderCode, 1, Option.GetAskByCode(CallOrderCode, 2), 0); } if (Signal.signalKind == 2) { Main.OrderSell(a1.number, CallOrderCode, 1, Option.GetBidByCode(CallOrderCode, 2), 0); } } //그래서 A 에서 아래와 같이 수정했지만 메시지로그 에서는값이 나오지 않네요. if (Signal.signalKind == 1)// -------> 이렇게요. { Main.OrderBuy(a1.number, CallOrderCode, 1, Option.GetAskByCode(CallOrderCode, 2), 0); function Main_OnNotifyFill(NotifyFill) { if (NotifyFill == 2) { checkbuycallcode = CallOrderCode; } } } Main.MessageLog("call주문종목코드:"+checkbuycallcode); if (Signal.signalKind == 2) { Main.OrderSell(a1.number, checkbuycallcode, 1, Option.GetAskByCode(checkbuycallcode, 2), 0);
프로필 이미지
nadogaja
2013-01-07
2521
글번호 221923

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

프로필 이미지
nadogaja
2013-01-07
1
글번호 221922
답변완료

문의

99번 추가기능 건의사항 (선물신호 옵션 바로주문) 개발중이라 하셨는데,6개월이 지났는데도 아직 볼 수가 없네요. 언제쯤 가능할까요? 스팟으로 좀 불편한 사항이 있어서 빨리 나왔으면 좋겠습니다.
프로필 이미지
시라즈
2013-01-07
2392
글번호 221921
답변완료

틱봉 전략설정 제공봉 증가요청

1. 틱 전략차트 10,000봉 까지만 늘려주세요. 틱봉을 사용하는데 하루치 자료가 5000봉으로 제한되어 있어서 10틱정도를 사용해도 거래량이 많은 날은 시스템을 종료했다가 다시 올리면 5000봉을 넘어 신호가 나온시간이 없어지는 때가 있습니다. 더더구나 2틱, 5틱 정도되면 엄청 심하구요. 10,000봉까지로 두배로만 늘려줘도 문제가 많이 없어질 것으로 보이는데. 중간에 시스템 가끔꺼지는 경우가 있어 시스템을 다시 가동시켜도 시스템 신호가 안나와 자동청산이 불가능하여 마음을 엄청 졸이게됩니다. ==> 신호 나온 후 시스템꺼져서 자동매매 불가능해지는 것 당해본 사람은 정말 심각합니다. 꼭 고려해주세요. 2. 시뮬레이션의 틱봉은 50만봉까지로 되어 있던데... 장중에는 제한되더라도 주말 또는 장종료후 만이라도 50만봉제한을 풀어주거나 500만봉 정도로 충분히 늘려주시면 안될까요 ? 개인 시스템 문제라면 알아서들 잘 사용할꺼고... 주말이라면 서버쪽 문제도 크게 없으리라 생각됩니다. 시스템 만들고 자료가 있어도 검증 또는 최적화에 어려움이 많습니다. 개선 부탁드려요. 특히, 첫번째 건의사항은 빠르시간 내에 지원해주시면 감사하겠습니다.
프로필 이미지
anyhelp
2013-01-06
2265
글번호 221920
답변완료

[파워종목검색] 구버전과 신버전 결과가 다름

다음과 같은 동일한 검색식을 장종료후에 구버전과 신버전에서 실행했을때, 검색 결과값이 다르게 나오며 구버전 결과가 맞는 것으로 보입니다. 확인 부탁 드립니다. Input : BB80Period(80), BB240Period(240), D(2); Variable : BB80up(0), BB240up(0); BB80up = BollBandUp(BB80Period,D); BB240up = BollBandUp(BB240Period,D); If (BB80up > BB240up) and (CountIF(C > BB80up, 5) >= 4) and (C < BB80up*1.05 and C > BB80up*0.97 and C > BB240up) Then { Find(1); }
프로필 이미지
hugnkiss
2013-01-04
2325
글번호 221916
답변완료

친절히 상담해 주셔서 감사합니다...

늦었지만 당담자분 새해 복많이 받으세요... 아주 많은 도움이 되었습니다.
프로필 이미지
nadogaja
2013-01-04
2377
글번호 221913
답변완료

스팟 주문오류입니다,.

예스트레이더 로는 시스템 매매가 가능한 상태입니다. 하지만 예스스팟으로 주문할시 증거금 부족으로 나옵니다.. 왜그런가요. . <오류메시지> [cd_ord_normal]부족액 위탁:16801980, 현금:16801980: sqlnum 20003 매수<0000-0000-00> 종목:KR4201H12703 수량:1 가격:0.00 주문유형 : 시장가 <적용 수식> 선물챠트 객체에서 신호를 받아와서 atm 옵션 가격중 1보다 작고 가장 근접한 옵션 을 매수 청산 하는 식을 시험 하려고 스팟 자동 매매로 돌려보니... 증거금 부족메시지가 나옵니다 현재 증거금은 2백 정도만 들어가 있는 상태로.. 미결제 계약을 항상 1개 를 남겨 두기에 .. 시스템 매매 거래 가능한 상태입니다.메시지를 분석해 보니.. 옵션 종목으로 매매가 이루어지는 것은 맞는거 같은데.. 증거금 부족 때문인지 아니면.... 다른 이유가 있는것이인지 알려주세요. <수식내용> var CPrice = new Array(101); var CCode = new Array(101); var PPrice = new Array(101); var PCode = new Array(101); var MaxCall; var MaxCallCode; var MaxPut; var MaxPutCode; function c1_OnRiseSignal(Signal) { //ATM 위 행사가 갯수 UNum = Option.uppersATM; //ATM 위 행사가 갯수 LNum = Option.lowersATM; //배열변수 준비(가격, 종목코드) CallCode = new Array(UNum+LNum+1); PutCode = new Array(UNum+LNum+1); CallPrice = new Array(UNum+LNum+1); PutPrice = new Array(UNum+LNum+1); //3.0이하의 가격을 가지는 콜종목은 해당 값과 종목코드 저장 //3.0을 초과하는 콜종목은 가격과 종목코드를 모두 -1 처리 for (var i = -LNum; i <= UNum; i++) { if (Option.GetCurrent(0, i) <= 1.0) { CallPrice[i+LNum] = Option.GetCurrent(0, i); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else { CallPrice[i+LNum] = -1; CallCode[i+LNum] = -1; } Main.MessageLog(i+"콜종목코드:"+CallCode[i+LNum]+"/가격:"+CallPrice[i+LNum]); } //3.0이하의 가격을 가지는 풋종목은 해당 값과 종목코드 저장 //3.0을 초과하는 풋종목은 가격과 종목코드를 모두 -1 처리 for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) <= 3.0 ) { PutPrice[ii+UNum] = Option.GetCurrent(1, ii); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else { PutPrice[ii+UNum] = -1; PutCode[ii+UNum] = -1; } Main.MessageLog(ii+"풋종목코드:"+PutCode[ii+UNum]+"/가격:"+PutPrice[ii+UNum]); } //각 배열에 저장된 값중 가장 큰 값을 찾음 var CC = -1; var CallOrderCode = -1; for (var iii = -LNum; iii <= UNum; iii++) { if (CallPrice[iii+LNum] > CC) { CC = CallPrice[iii+LNum]; CallOrderCode = CallCode[iii+LNum] } } var PP = -1; var PutOrderCode = -1; for (var iiii = -UNum; iiii <= LNum; iiii++) { if (PutPrice[iiii+UNum] > PP) { PP = PutPrice[iiii+UNum]; PutOrderCode = PutCode[iiii+UNum]; } } Main.MessageLog("--------------------------------------------"); Main.MessageLog("콜주문종목코드:"+CallOrderCode+"/가격:"+CC); Main.MessageLog("풋주문종목코드:"+PutOrderCode+"/가격:"+PP); if (Signal.signalKind == 1) { Main.OrderBuy(a1.number, CallOrderCode, 1, 0, 1); } if (Signal.signalKind == 2) { Main.OrderSell(a1.number, CallOrderCode, 1, 0, 1); } }
프로필 이미지
nadogaja
2013-01-04
2575
글번호 221908