커뮤니티

예스스팟 Q&A

답변완료

차트 틱사이즈 관련질문드립니다.

스팟매매를 하는 차트에서 차트종목의 틱사이즈를 받아오려고하는데 아래 두개처럼 하니깐 에러가 나는데요 어떻게 표현해야 되는지 확인 부탁드립니다. 1. Chart1.GetCode(1).GetTickSize()*20 2. Chart1.GetTickSize()*20
프로필 이미지
수다리
2019-09-09
3417
글번호 224987

yes랭귀지 님에 의해서 삭제되었습니다.

프로필 이미지
yes랭귀지
2019-09-08
0
글번호 224986
답변완료

종목 검색 후 시스템 적용

"바닥지지" 종목 검색 후 결과 종목들에 대해서 "우드스탁_주식_매매신호_Ver7.0"을 적용하라는 예스스팟 수식을 작성해 봤습니다. 예스스팟을 실행하면, 1분 정도 후에 프로그램이 꺼져 버리는데.. 수식이 잘못된 건지 아니면, 시스템 수식이 복잡하다보니(10000줄정도 됩니다.) 프로그램이 터지는 건지 궁금합니다. (실제로 수동으로 시스템 돌릴 때 4개 이상 차트에 시스템을 적용하면 프로그램이 꺼집니다.) 그리고, 아래 주어진 식을 보면 검색으로 나온 모든 종목들을 각각 시스템을 돌리는데, 그렇게 하지 않고 하나의 차트에 종목이 순서대로 적용되고, 시스템에서 매수 신호가 발생할 경우만 새로운 차트를 만들게 하고 싶습니다. 조언 부탁드립니다. var List; var ListCnt; var ReqCount; //스팟 첫 실행시 function Main_OnStart() { //시작 메세지 출력 Main.MessageLog("시작"); // 파워종목검색의 test Search라는 이름의 사용자검색조건 검색 요청 Main.ReqPowerSearch("바닥지지") } //종목검색 완료되어 리스트(검색된 종목코드) 수신 function Main_OnRcvItemList(aItemList, nCount) { //검색된 종목코드를 저장 List = aItemList; //검색된 종목수 저장 ListCnt = nCount; Main.SetTimer(1,2000);//2 타이머 ReqCount = 0; } function Main_OnTimer(nEventID) { //2초 단위로 한종목씩 차트 생성 if (nEventID == 1) { //요청이 검색된 종목수 만큼 되었으면 터이머 종료 if (ReqCount == ListCnt) Main.KillTimer(1); //ReqCount번째 종목요청 //종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청 //차트설정 :종목, 주기 1, 일간, 조회건수 400 var C1 = new ReqChartItem(List[ReqCount], 1, CHART_PERIOD_DAILY, 400, CHART_REQCOUNT_DAILY, false,false); //시스템 설정 var S1 = new SystemInfo("우드스탁_주식_매매신호_Ver7.0"); //C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성 Main.ReqChartEx(C1,S1); ReqCount = ReqCount+1;//요청횟수 1증가 } } //생성된 차트에서 신호가 발생하면 function Main_OnRiseSignal(ChartEx, Signal) { //신호완성 출력 Main.MessageLog("신호완성"); //매수신호 발생하면 매수주문 if (Signal.signalKind == 1) { Account1.OrderBuy(Main.GetOrderCode(ChartEx.code),1,0,1); Main.MessageLog("매수"); } //청산신호 발생하면 매도주문 if (Signal.signalKind == 2) { Account1.OrderSell(Main.GetOrderCode(ChartEx.code),1,0,1); Main.MessageLog("매수청산"); } }
프로필 이미지
feel29na
2019-09-08
3310
글번호 224985
답변완료

수식 보완 부탁드립니다.

평소 도움에 감사드립니다. 조건검색으로 검색된 종목을 특정기준으로 정렬해서 그중 10종목만 매수하려합니다. -정렬기준: (전일고가-전일종가/(전일종가) (내림차순) * 전일 데이타를 가져오는게 어려움이 많다면 전일 15:30분이후에 검색해서 종목정렬 및 관심종목 저장한후 당일에 가져오는 로직도 좋습니다. *아래 수식은 기존 QnA에 있던 건데 여기에 수정 보완해주시면 감사하겠습니다. ------------------------------------------------------------------- var list; //차트객체 순서대로 저장할 변수 var ct = []; //스파시작 function Main_OnStart() { //종목검색 Main.ReqPowerSearch("aaa"); } //종목검색완료 function Main_OnRcvItemList(aItemList, nCount) { //검색된 종목을 전역변수에 저장 //list = aItemList; list = ["005930","000660","010950","090430","299660"]; //요청카운트 (첫종목 0으로 시작) req = 0; //차트설정, 시스템 설정 var ChartSet = new ReqChartItem(list[req],1,CHART_PERIOD_MINUTE,100,CHART_REQCOUNT_BAR,false,false); var SystemSet = new SystemInfo("시스템이름", YL_TYPE_NORMAL, null, null, null); //차트객체 요청 Main.ReqChartEx(ChartSet,SystemSet); } //차트객체 생성완료 function Main_OnRcvChartEx(ChartEx) { //ct배열에 차트객체 저장 ct[req] = ChartEx; Main.MessageList(req,ct[req].GetCode(1)); //요청횟수 1 증가 req = req+1; //요청횟수가 검색된 종목수 보다 작으면 //다음종목 요청 if (req < list.length) { //차트설정, 시스템 설정 var ChartSet = new ReqChartItem(list[req],1,CHART_PERIOD_MINUTE,100,CHART_REQCOUNT_BAR,false,false); var SystemSet = new SystemInfo("시스템이름", YL_TYPE_NORMAL, null, null, null); //차트객체 요청 Main.ReqChartEx(ChartSet,SystemSet); } else //요청횟수가 검색된 종목수 이상이면 모두 요청했으므로 끝 { Main.MessageList("차트객체 생성끝"); } } //차트에서 신호가 발생하면 function Main_OnRiseSignal(ChartEx, Signal) { Main.MessageList("신호발생 : ",Signal.code,Signal.signalKind); for (var i = 0; i < ct.length; i++) { //전체 차트 객체 중 신호발생된 객체를 찾고 if (ChartEx.GetCode(1) == ct[i].GetCode(1)) { //매수신호이면 신호가격으로 10주 주문 if (Signal.signalKind == 1) { Main.MessageList("매수주문 : ",i,ct[i].GetCode(1)); Account1.OrderBuy(ct[i].GetCode(1), 10, Signal.price,0); //타이머를 차트객체 배열방 번호와 동일번호로 지정 Main.SetTimer(i, 10000);//10초 타이머 } //매도신호이면 if (Signal.signalKind == 2) { //전체 미체결 갯수 var num = Account1.GetTheNumberOfUnfills(); //전체미체결 중 신호발생 종목과 같은 종목의 미체결은 모두 취소 for (var z = 0; z < num; z++) { Account1.SetUnfill(z); if (Account1.Unfill.count > 0 && Account1.Unfill.code == ChartEx.GetCode(1)) { Account1.OrderCancel(Account1.Unfill.orderNum); } } //잔고셋팅 Account1.SetBalance(ct[i].GetCode(1), 0); //잔고수량이 있으면 신호가격으로 전량청산 if (Account1.Balance.count > 0) { Main.MessageList("매도주문 : ",i,ct[i].GetCode(1)); Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,Signal.price, 0); //타이머를 차트객체 배열방 번호와 동일번호로 지정 Main.SetTimer(i, 10000);//10초 타이머 } } break; } } } //타이머가 동작하면 function Main_OnTimer(nEventID) { Main.MessageList("타이머 : ",nEventID); //동작된 타이머 번호의 차트객체에서 종목코드 가져와 종목객체생성 Main.ReqMarketData(ct[nEventID].GetCode(1)); //1회 동작 후 타이머 종료 Main.KillTimer(nEventID); } //종목객체 생성되면 function Main_OnRcvMarketData(MarketData) { Main.MessageList("종목객체생성 : ",MarketData.code); //종목객체 MD변수에 저장 var MD = MarketData; //전체 미체결 갯수 var num = Account1.GetTheNumberOfUnfills(); //전체미체결 중 신호발생 종목과 같은 종목의 미체결을 찾아 for (var z = 0; z < num; i++) { Account1.SetUnfill(z); if (Account1.Unfill.count > 0 && Account1.Unfill.code == MD.code) { //매수주문이면 if (Account1.Unfill.orderKind == 2) { //정정할 가격 매도1호가 var ReplacePrice = MD.Ask(1); //정정할 가격이 주문가겨과 다르면 if (ReplacePrice > 0 && ReplacePrice != Account1.Unfill.price) { //정정주문 Account1.OrderReplacePrice(Account1.Unfill.orderNum,ReplacePrice); } } //매도주문이면 if (Account1.Unfill.orderKind == 1) { //정정할 가격 매수 1호가 var ReplacePrice = MD.Bid(1); //정정할 가격이 주문가격과 다르면 if (ReplacePrice > 0 && ReplacePrice != Account1.Unfill.price) { //정정주문 Account1.OrderReplacePrice(Account1.Unfill.orderNum,ReplacePrice); } } } break; } //종목객체 삭제 Main.RemoveObject(MD); }
프로필 이미지
dayun01
2019-09-06
3238
글번호 224984

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

프로필 이미지
dayun01
2019-09-05
0
글번호 224982
답변완료

수식 부탁 드립니다

수고가 많으싶니다 주식 거래 하는 데요 매도 신호 입니다 매수가 기준 3% or 30이평이 300이평 데드 클로스 둘중 신호 먼저 나오면 50% 매도 나머지는 둘개 신호중 1번 더나오면 나머지 50 % 매도 부탁 드립니다
프로필 이미지
킬러잡이킬러
2019-09-04
3142
글번호 224980
답변완료

질문 입니다

예스스탁 질문 입니다 예스랭귀지 종목검색한 종목을 매수 할수 있다고 들엇읍니다 종목 검색이 a라고 하면 a종목이 b라는 조건의 시점까지 하락 하면 매수 할수 있나요? 매수가 된다면 c라는 조건에서 50 % 청산 d 라는 조건에 50 % 매도 되나요? c<가격<d 이후 고점 대비 오늘의 고점 +저점 /2 에도 청산 가능 한가요? 손절 한후 다시 손절가 격 보다 위로 상승 하면 재 매수 가능 한가요? 한 계좌에 예스랭귀지 종목 검색식 1 개만 가능 한가요? 아니면 검색식을 a or b 라고 해서 만들어야 하나요? 한 조건으로 다중 계좌 로 사용 할려면 hts를 다중으로 켜야 하나요? 한 계좌에 몇 종목 까지 살수 있나요?
프로필 이미지
로빈의맥주
2019-09-02
3144
글번호 224979

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

프로필 이미지
idnotbe
2019-08-30
5
글번호 224978
답변완료

조건검색이 안돼요

어제까지 잘쓰던 3-4개의 조건 검색 같은 조건으로 돌려도 결과값이 안 나와요 뭐가 잘못 된거죠?
프로필 이미지
아무다
2019-08-29
3210
글번호 224972
답변완료

수식 수정 부탁드립니다

안녕하세요~ 다음 수식 수정 부탁드립니다. 1) 현재 아래의 수식을 자동으로 설정하였을 경우, 8시30분 이전 주식시장 주문가능시간전에 HTS에 접속을 하면 주문 오류가 발생합니다. ---> 주문가능 시간전이므로 당연함 (8시30분 이후 접속시는 정상주문 됨) ---> 접속시간에 관계없이, 8시45분~ 8시55분 사이에 'test1'의 종목검색 및 매수주문이 발생하도록 수정 부탁드립니다. 2) 장개시전 매수 주문시 다음 조건을 추가하고 싶습니다. * 장개시전 계좌의 D+2 예수금 잔고가 주식평가자산을 포함한 순자산액의 1/10 이상일 때라는 조건 * 매수시 'K200 지수의 전일저가가 전전일저가보다 작을 때' 라는 조건 * 현재 작성된 수식은 검색된 종목들중 전일종가가 가장 높은 종목부터 순차적으로 5종목 이하로 매수하도록 작성되어 있습니다. ---> 이때 만약 잔고에 해당 종목들의 잔고가 미결제 포함하여 100주 미만이라면 매수주문이 발생하고, 100주 이상이라면 건너뛰고 가격이 높은 순으로 검색된 종목중 다음 가격이 높은 종목으로 순연하여 5종목 이하로 주문되도록 하고 싶습니다. 3) 8시45분 ~ 8시55분에 잔고에 있는 종목들중 평균매입가격대비 전일종가 기준으로 30% 이상 상승한 종목들이 있다면, 해당종목들의 전체 수량을 전일종가로 매도주문 내고 싶습니다. ---> 매도시 수량은 3일 결제로 인한 전일의 미결제 수량 포함입니다. 4) 당일 매수 및 매도 주문에 대한 정정과 취소는 없습니다. 즉, 개장전 주문이 장종료시까지 유지됩니다. 차트는 사용하지 않습니다. 다음 수식은 일봉기준으로 종목검색후, 장개시전 고가순으로 5종목 매수주문 < 스크립트 객체 > - Main - Account1 - Vol --------------------- var List; var ListCnt; var RcvCount; var ItemCode = new Array(200); var PPrice = new Array(200); var RcvCount = 0; var Ymoney; function Main_OnStart() { Main.ReqPowerSearch("test1") Ymoney = Account1.GetBalanceETCinfo(0); // D+2 예수금을 불러오는지요? Main.MessageLog("종목검색"); } function Main_OnRcvItemList(aItemList, nCount) { List = aItemList; ListCnt = nCount; for (var i = 0; i < nCount; i++) { Main.ReqMarketData(List[i], 0, 0); } } function Main_OnRcvMarketData(MarketData) { RcvCount = RcvCount+1; ItemCode[RcvCount] = MarketData.code; PPrice[RcvCount] = MarketData.prevClose; if (RcvCount == ListCnt) { for (var ii = 1; ii <= 5; ii++) { var HH = -1; var Hi = -1; for (var iii = 1; iii <= RcvCount; iii++) { if (PPrice[iii] > HH) { HH = PPrice[iii]; Hi = iii; } } //매수주문 if (Hi > -1) { Account1.OrderBuy(ItemCode[Hi], Vol, PPrice[Hi], 0); ItemCode[Hi] = -1; PPrice[Hi] = -1; } } } } 감사합니다 !!
프로필 이미지
새로운세상
2019-09-10
3326
글번호 224971