커뮤니티

예스스팟 Q&A

검색 이후 자동매매 부탁드립니다.

매번 많은 도움 감사드립니다. 아래 조건 만족하는 수식 작성 부탁드립니다. 1. 파워종목 검색 (검색식 명: test)으로 10분마다 종목 검색 2. 검색된 종목들을 거래량으로 sorting 3. sorting 된 결과에서 상위 3종목 매수주문 --> 3종목 모두 매수한 뒤, 이후 검색조건 만족하는 종목이 나올 시, 거래량 상위 3종목 추가 선정하여 매수, 단, 이전에 매수한 종목과 안겹치게... 4. 검색된 종목들에서 매도신호 발생 시(yeslang. 전략명: temp) 매도주문 (미완성 봉에서 매도주문) 5. 장종료 동시호가 때, 남은 잔량 전부 매도 꼭 부탁드립니다. 감사합니다.
프로필 이미지
adino30
2019-04-07
3515
글번호 224781
답변완료

옵션객체에서 호가데이터 값을 얻는 방법 문의

GetAsk나 GetBid류의 함수를 쓰면 될 거는 같은데 이건 매번 조회하는 방법일테니 timer를 사용해서 해야할 거 같은데 timer를 사용하지 않고 하려면 main에서 onupdat emarket()을 사용하면 되나요? onupdat emarket()를 사용하려면 reqmarketdata()로 호출할 종목에 대해서 실시간에 데이타가 onupdat emarket()으로 도달하나요? 그리고 request한 것을 중지시키거나 수정하고 싶을땐 어떤 함수를 사용하면 되나요? 그리고, 메인에서 reqmarketdata()를 사용하는 방법과 MarketData 객체를 사용해서 실시간 데이터를 받는 방법은 어떤 차이가 있는지요? 15초 60회 규칙에 문제 일으키지 않고 서버나 피씨에도 부하가 적절한 방법을 고르고자 해서 보다 구체적인 이해를 위해 질문드립니다. 그리고, 각각의 사용법에 대한 예제를 찾아보는 중인데, 예를 들어, 장 시작전 및 장 중에 호가, 호가잔량, 총잔량, 총건수 및 체결시세(현재가)를 보고자 하는 종목들을 가격의 크기 여부에 따라 교체해 가면서 시세를 받고자 하는 코드를 작성하고자 합니다. 참고할 만한 글 번호 또는 예제 부탁드립니다.
프로필 이미지
온고지신
2019-04-05
3369
글번호 224777

문의드립니다.

해외 선물신호로 해외옵션 매수신호 내려면 어떻게 해야 하나요. 국내 옵션수식은 예제로 몇개 있는데요. 해외옵션 수식은 다른가요?
프로필 이미지
잡다백수
2019-04-05
3370
글번호 224776
답변완료

옵션 객체 및 날짜 객체 사용

예스트레이더에서 옵션 객체 사용과 관련하여 문의 드립니다. (예스글로벌의 옵션 객체는 메소드나 멤버가 달라서 별도로 문의 드리겠습니다) Q1) 장 시작 전에 옵션 예상체결가 또는 호가상황을 파악하여 원하는 조건(적정 가격 또는 적정 그릭스값)을 갖는 종목을 선정하여 장 시작 전에 미리 주문을 낼 수 있을까요? 즉, 체결데이타로 시세가 들어오기 전에도 조회할 수 있는 데이타가 있을런지요? Q2) lowersATM과 uppersATM의 값은 언제 갱신되나요? 즉, 전일 지수가 급격히 급등락 하였을 경우 새로운 종목이 생길 수 있는때, 당일 장 시작 전에 새로 생성된 종목에 체결데이타가 들어오지 않아도 값이 미리 바뀌는 지 아니면 장 시작해서 새로운 종목에 체결이 들어올 때 갱신되는 지 등 정확한 시점에 대해 문의드립니다. Q3) GetImpliedVolatility()와 Volatility멤버의 결과값은 각각 어떤 변동성을 반환시키는 것인지요? 그리고 내재변동성을 계산할때 입력값이 여러개 있는데 그것들을 별도로 입력시키는 방법은 없는지요? 그리고 GetImpliedVolatility()가 두개가 있던데 이것은 ATM중심으로 순번을 입력하는 것이든 아니면 특정 종목 코드를 입력하는 것이든 동일한 종목이라면 결과값은 같겠지요? 그렇다면, 추정컨데 신규종목코드는 9시가 아니라 그 전에 생성되니 lowersATM값이나 ATM에서의 순번째 등도 그 전에 반영될 거 같은데 맞나요? Q4) 장 시작 전에 미리 원하는 범위의 시세를 가질 것으로 예상되거나(예상체결가) 호가의 상태를 보고자 할 경우 1) 전 종목의 옵션 호가 시세를 처리할 수 있도록 하거나 2) 지수 또는 선물의 예상가격을 근거로 대상이 될 법한 종목들을 MarketData객체에 설정하여 데이타를 받아야 할 것 같은데 1번의 경우 아직 예스스팟으로 하는 방법을 모르겠고 2번으로 하고자 할 경우에도 제한된 수의 종목에 대해서도 장 시작 전에 데이타를 조회할 수 있어야 하는데 가능한지요? 1번으로 하는 방법이 가능하다면, 그 방법을, 그리고 1번은 불가능하다고 하는 경우 2번으로 하는 예제 부탁드립니다. Q5) 과거에 올려주신 예들을 찾아보다보니 new date()를 사용하면 날짜 객체를 사용해서 밀리세컨드까지 현재시각을 계속 조회할 수 있는 것 같던데, new에 의해서 생성한 날짜 객체는 별도로 delete를 시켜준다거나 해야하는지, 아니면 함수나 객체 내에서 사용이 끝나면 자동으로 소멸되는지요? 자동으로 소멸되지 않고 계속 동일 변수에 new를 반복해 주다보면 메모리 에러가 나지 않을까 하는 염려 때문에 main에서 한번만 생성시켜 준 후 글로벌 변수로 해서 다른 데서는 생성시키지 말고 메소드들로 조회만 해야할 지, 사용 방법에 대한 가이드 부탁드립니다.
프로필 이미지
온고지신
2019-04-05
3443
글번호 224773
답변완료

주문에러에 따른 주문수정 문의

안녕 하세요 스팟 사용중에 문의사항 있습니다. 주문 후 에러발생시 OnOrderResponse 에서 OrderResponse.error 로 에러내용은 확인 가능하지만 OrderResponse.orderNum 이나 OrderResponse.orderID 등 어떤 정보도 나오지 않아 어느 주문의 에러인지 파악할 수 가 없어 주문수정을 할 수 가 없습니다. 주문 후 에러발생시(OrderResponse.orderKind 값 -1) 어느 주문의 에러인지 알 수 있는 방법이 있을까요? orderNum 또는 orderID 만 알 수 있어도 수정주문이 가능 할텐데요.
프로필 이미지
흰수염고래
2019-04-04
3199
글번호 224772
답변완료

파워종목 검색시 질문입니다.

2개 이상의 파워종목 검색식을 돌릴때 하나는 코스피만 검색하고 다른 하나는 코스닥만 검색할수 있는 기능이 있나요? 파워종목 검색창에서 설정창에서 설정하면 모든 파워종목 검색에 다 한가지로만 적용될 수 밖에 없는 건가요? 그리고 ETF도 검색이 가능한지 답변 부탁드릴게요!!~ 감사합니다
프로필 이미지
도도당
2019-04-04
3127
글번호 224771

몬스터 님에 의해서 삭제되었습니다.

프로필 이미지
몬스터
2019-03-25
11
글번호 224770

몬스터 님에 의해서 삭제되었습니다.

프로필 이미지
몬스터
2019-03-22
1
글번호 224769
답변완료

수식 작성 부탁드립니다ㅜㅜ

매번 많은 도움 미리 감사드립니다. 아래와 같은 spot 수식 작성 부탁드립니다. 1. 예트 차트 매수신호 발생 즉시,(현재가 < 예트 매수신호 가격+2호가) 이면 바로 spot 매수 주문 2. spot 매수 주문 이후 10초 이내에 주문수량 전부 체결 시 --> 매수 체결 즉시, 실제 체결된 가격에 1호가 더해서 spot 매도 주문 3. spot 매수 주문 이후 10초 이내에 일부 체결 시: 매수 체결 즉시, 미체결 수량은 취소 and 실제 체결된 가격에 1호가 더해서 매수 체결된 수량을 매도 4. spot 매수 주문 이후 10초내에 미체결 시 --> 매수주문 취소 여기서, "매수 체결 즉시" 는 스팟으로 구현이 안되면 0.1초 후로 바꾸어도 괜찮을듯 합니다. 바쁘시더라도 도움 부탁드려요. 감사합니다.
프로필 이미지
adino30
2019-03-16
3128
글번호 224768
답변완료

질문드립니다.

var ItemList; var Count; var ReqCount; //#종목검색 실행 function Main_OnStart() { Main.MessageLog("스팟시작"); Main.ReqPowerSearch("검색"); Start = 0; Main.SetTimer(1, 1000); } function Main_OnRcvItemList(aItemList, nCount) { Main.MessageList("추가완료 : ",nCount); if (nCount >= 1) Main.SendInterests("테스트",aItemList, true); Main.MessageLog("관심종목생성시작"); Count = Main.GetItemCountOfInterest("테스트"); Main.MessageList("지정관심그룹 종목수 : ", Count); ItemList = []; for(var i = 0 ; i < Count ; i++) { ItemList.push(Main.GetItemCodeInInterest("테스트", i)); } Main.SetTimer(1, 1000); ReqCount = 0; } function Main_OnTimer(nEventID) { if (nEventID == 1) { var StopSet = new SystemStopInfo(new StopLoss(5, CALCMETHOD_PERCENT, 0xFFDA93), // new StopTrailing(2, 5, CALCMETHOD_PERCENT, 0), new StopProfitTarget(20, CALCMETHOD_PERCENT, 0xFFDA93), //new StopInactivity(0.5, 6, CALCMETHOD_PERCENT, 0xFFDA93), //new StopEndOfDay(151500)); var ChartSet = new ReqChartItem(ItemList[ReqCount],3,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,StopSet); Main.ReqChartEx(ChartSet); Main.MessageLog("확장차트생성_"+ItemList[ReqCount]); ReqCount = ReqCount+1; if (ReqCount == Count) { Main.KillTimer(1); Main.MessageLog("start system trading"); } //신호발생 function Main_OnRiseSignal(ChartEx, Signal) { //신호발생 종목에 대해 잔고셋팅 Account1.SetBalance(Main.GetOrderCode(Signal.code),0); //매수신호이고 잔고가 없을때만 매수 if (Signal.signalKind == 1 && Account1.Balance.count == 0) { Account1.OrderBuy(Main.GetOrderCode(Signal.code),Math.floor(100000/ChartEx.GetClose(1,0)),0,1); Main.MessageLog("매수주문"); } if (Signal.signalKind == 2) { //전체미체결주문 갯수 var num = Account1.GetTheNumberOfUnfills(); //전체 미체결수 만큼 루프를 돌면서 for (var i = 0; i < num; i++) { //미체결을 하나씩 셋팅하고 Account1.SetUnfill(i); //미체결종목이 신호종목과 같고 미체결수량이 있으면 if (Account1.Unfill.code == Main.GetOrderCode(Signal.code) && Account1.Unfill.count > 0) { Account1.OrderCancel(Account1.Unfill.orderNum); } } //잔고수량만큼만 매도 if (Account1.Balance.count > 0) { Account1.OrderSell(Main.GetOrderCode(Signal.code),Account1.Balance.count,0,1); Main.MessageLog("매도주문"); } } } 1. 관종 추가된종목에 위와같이 차트셋팅하고나서 고가가 시가보다 10%미만으로 크고, 저가가 시가보다 7% 이상 작지않으며((DayOpen*1.10 > DayHigh and DayOpen*1.7 > DayLow)), 종가가 10이동평균선 값보다 n%위에 있다면 최대5회 피라미딩진입을 3시20분 동시호가에 진입하게할 수 있게 부탁드립니다.다만 20이평밑으로 종가가 8%내려가면 진입신호 중지라는 신호 소중한 시간 내어주시어 제게는 너무나도 필요하고 소중한 수식부탁드리겠습니다. 2. 아래 신호 변환 부탁드립니다. Var : profit(10),loss(5); if MarketPosition == 1 Then { ExitLong("매수익절",Atlimit,AvgEntryPrice*(1+profit/100)); //매입10%수익청 ExitLong("손절",AtStop,AvgEntryPrice*(1-loss/100)); //매입가5%손절청 } #14%수익이후 50% 수익 감소하면 청산 Var : UPrate(14),Dnrate(50); if MarketPosition == 1 Then{ Var5 = highest(H,BarsSinceEntry); if Var5 >= EntryPrice*(1+UPrate/100) then exitlong("전량14%-하락50%",AtStop,Var5-(Var5-EntryPrice)*(Dnrate/100)); } 3. 최초진입신호이후 10일이 지나면 전량청산 수식부탁드립니다. 4. 위의 손절, 익절, 제가 만든 신호(기타등등) 이후 당일 동시호가 진입x 신호부탁드립니다. 5. 종목에서 10%수익시 물량의 20% 청산식 부탁드립니다. 위 수식에서는 예스시스템없이 오로지 스팟에서만 진입청산수식이 나가게하고 있습니다만.. 예스랭귀지에서는 동시호가 주문이 안되다보니... 자바스크립트에 적응하는게 표본이 적다보니 여간 쉬운게 아니네요. 소중한 답변 긴 시간 기다리고 있습니다. 기다리는 만큼 답변 역시 제게는 너무 소중하고 감사한 답변입니다. 꼭 부탁드리겠습니다. 질문사항이 길어 누가 될 수 있지만, 답변의 속도가 예스랭귀지 수식보다 느리기도하고, 오래걸림을 아는지라 정말 필요하고 부족한지식으로 작성하기 어려운 부분들이 있어 어쩔 수 없음을 양해바랍니다. 수식짜주시는데에 항상 감사한 마음을 가지고있는 고객들이 많이 있습니다. 감사합니다.
프로필 이미지
stockric
2019-04-13
3323
글번호 224767