커뮤니티

예스스팟 Q&A

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

프로필 이미지
hello
0
글번호 225793

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

프로필 이미지
히익
1
글번호 225792
답변완료

옵션 관련

혹시 예스스팟에서 둘째주 목요일마다 양매도하고 만기때마다 청산(그 다음 월 둘째 주 목요일)하는 전략을 백테스트 해볼 수 있나요?
프로필 이미지
히익
1138
글번호 225791
답변완료

장전시간외 거래 가능여부

8시30분~8시40분에 장전시간외 거래에 스팟으로 주문 넣을 수 있는지요? 혹시 가능하다면 계좌에 있는 전종목을 매도주문 넣는 코드 샘플좀 짜주실 수 있으실까요? 너무나 감사드립니다.
프로필 이미지
깅창
1071
글번호 225788
답변완료

초보질문

예스스팟에 대해 자신이 직접 수식등을 작성 사용하기엔 어려울 경우 유료로 대신 작성 해주는 제휴업체나 또 다른 방법은 없을까요?
프로필 이미지
바타산
1057
글번호 225785
답변완료

시스템 수식 문의드립니다.

안녕하세요. YL및 YS 게시판을 통해서 도움을 많이 주셔서 항상 감사합니다. 현재 YS로 거래 중인데 좀 더 정교하게 거래해 보고자 다시 도움을 청합니다. 저는 일봉 거래를 하는데 2회 분할 매수(각각 일봉 종가에 진입) 후 분할매도(장중 분할 매도 후 남은 물량은 종가 매도) 하는 형태로 진행이 되고 하루에 2~5종목 정도 매수하고 15~20일 정도 후 매도합니다. 보통 검색식으로 추출(일 50~100종목)된 종목 중 신호(정규/예비)가 발생한 종목을 관심종목1에 등록한 후 YS를 통해 확장차트를 띄운 후 매수/매도하고 처리가 안된 종목은 수동으로 거래를 합니다. 그런데 정규 신호로는 종가 거래를 할 수 없다 보니, 매수/매도 시에 익일 시가에 진입하게 되다 보니, 결국 시스템 진입가격과 가격 괴리가 발생하고, 수동으로 처리하는 부분이 많다보니 시뮬레이션 결과보다 수익이 떨어지는 결과를 초래합니다. 그래서 예비 신호를 이용하여 장 종가 부근에서 매수/매도를 진행하는 형태로 YS를 새로 만들고 싶습니다. YS 수식을 하나로 합칠 수 있으면 더할 나위 없이 좋겠지만 프로그래밍 능력의 한계 때문에 2개의 YS 시스템을 사용해서 1번 - 매수/분할매도(2번을 통해 예비신호로 매수되어 잔고에 있으니 실제로는 1번 식으로는 매수 미발생) 2번 - 매수/잔여물량매도 이런 형태로 운용 가능하지 않을까 생각하고 있고, 2번 수식을 작성하다가 도움을 구해봅니다. 가이드 수식을 주시면 큰 도움이 될 것 같습니다. 오늘도 좋은 하루 보내세요. 감사합니다. --------------------------------------------------------------------------- // 2번 수정/추가사항 // 1) 에비신호로는 일 5종목까지만 매수하고, 매수된 종목이 있으면 관심그룹2에 종목 추가한 후 확장차트 생성 // 2) 예비신호로 매도 시 잔여 보유 물량 일괄 청산(yesspot1번에서 분할매도하기 때문에 남은 물량만 당일 종가 부근에서 매도하면 됩니다) // 문의사항- 관심그룹 이름을 동적(이름+당일날짜)로 설정가능한지? //yesspot2번(예비신호) var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); var cond; function Main_OnStart() { if (HHMMSS >= 90000) { Main.MessageList("start") Main.SetTimer(1,1000); } } function Main_OnTimer(nEventID) { if (HHMMSS >= 150000) { Main.KillTimer(1); Main.ReqPowerSearch("검색1"); } } function Main_OnRcvItemList(aItemList, nCount) { if (nCount > 0) { Main.SendInterests("관심그룹1", aItemList,false); } } function Main_OnTimer(nEventID) { if (nEventID == 1 && cond == false && HHMMSS >= 150000) { cond = true; var Incom = Chart1.GetIncompleteSignal(); if (Incom[0].signalKind == 1 && Account1.Balance.count == 0) { Account1.OrderBuy(Main.GetOrderCode(Incom[0].code), 1, 0,1); Main.MessageList("매수주문"); } if (Incom[0].signalKind == 2 && HHMMSS >= 151500) { Account1.OrderSell(Main.GetOrderCode(Incom[0].code), 1, 0,1); Main.MessageList("매도주문"); } } } // yesspot(1번) - 현재 사용 중 var ItemList; var Count; var ReqCount; var d; var H; function Main_OnStart() { Main.MessageLog("스팟시작"); d = new Date(); h=d.getDate(); //지정한 관심그룹의 종목수(관심그룹지정 필요) Count = Main.GetItemCountOfInterest("관심종목1"); Main.MessageList("지정관심그룹 종목수 : ", Count); ItemList = []; //관심그룹 종목코드를 ItemList로 옮김 for(var i = 0 ; i < Count ; i++) { //관심그룹지정 필요 ItemList.push(Main.GetItemCodeInInterest("관심종목1", i)); } ReqCount = 0; if (Count > 0) { Main.SetTimer(1, 500); } } function Main_OnTimer(nEventID) { if (nEventID == 1) { var TradeSet = new SystemTradeInfo(TRADE_FIXCAPITAL, 1, // 거래수량 100000000, // 자산 1, // 단위수량 0, 0, CALCMETHOD_PERCENT, // 진입/청산 수수료 0, 0, CALCMETHOD_POINT, // 진입/청산 슬리피지 PYRAMIDING_ENTRY, // 피라미딩 설정여부(다른진입신호만 허용) 100000, // 최대진입수량 20); // 최대진입횟수 var ChartSet = new ReqChartItem(ItemList[ReqCount],1,CHART_PERIOD_DAILY,1000,CHART_REQCOUNT_BAR,true,false); /////SystemInfo(name,kind,inputVar,tradeInfo,stopInfo) var SystemSet = new SystemInfo("YL_시스템(일봉)", YL_TYPE_NORMAL, null, TradeSet); Main.ReqChartEx(ChartSet,SystemSet); Main.MessageList("확장차트생성요청:",ItemList[ReqCount]); ReqCount = ReqCount+1; if (ReqCount == Count) { Main.KillTimer(1); Main.MessageList("종목객체생성완료"); } } } //신호발생 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), Signal.count, Signal.price, 0); Main.MessageList("매수주문9"); } if (Signal.signalKind == 2) { //전체미체결주문 갯수 var num = Account1.GetTheNumberOfUnfills(); //전체 미체결수 만큼 루프를 돌면서 for (var i = 0; i < num; i++) { //미체결을 하나씩 셋팅하고 Account1.GetTotalAmount(nCategory, nTradeKind) 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), Signal.count, Signal.price, 0); Main.MessageList("매도주문"); } } }
프로필 이미지
깜피
1236
글번호 225784

주식승부 님에 의해서 삭제되었습니다.

프로필 이미지
주식승부
2
글번호 225783
답변완료

YesSpotMaker 클래스가 등록되지 않았습니다

안녕하세요, 다른 컴으로 YTS를 옮기는 과정에서 발생한 일인데, YesSpot 스크립트에 대한 스크립트 검증 과정에서 제목과 같은 메시지가 뜹니다. 문제가 뭘까요?
프로필 이미지
민현종
994
글번호 225782
답변완료

ReferenceError:GetOpen: 정상적인 값을 반환할 수 없습니다.

확장차트에서 GetOpen으로 데이터를 읽어 올 때, 어쩌다 가끔 "ReferenceError:GetOpen: 정상적인 값을 반환할 수 없습니다." 에러가 발생합니다. 어떻게 해결하면 될까요?
프로필 이미지
markus
1006
글번호 225781
답변완료

예스랭귀지, 스팟 문의드립니다.

예스 스팟을 예스트레이더에서 예스랭귀지로 작성한 수식으로 이용 중인 시스템 트레이딩이 가능하도록 하려면 예스스팟에서 어떻게 구현해야하는지 궁금합니다. 찾아보니 예스스팟에서 별도의 매수 매도 수식을 작성하던데 예스랭귀지 수식에서 구현해놓은 매수 매도 신호가 발생시 예스스팟에서 바로 주문을 넣을수있는 부분에 대한 문의입니다.
프로필 이미지
망고맨
1160
글번호 225778