커뮤니티
예스스팟 Q&A
삼장 님에 의해서 삭제되었습니다.
2026-04-15
17
글번호 231634
예스스팟 stop 지정가 가능방법 문의
안녕하세요.해외선물 거래를 하기위해 예스스팟 자동매매 전략을 테스트 중입니다.확장차트가 아닌 프로그램을 만들고 있습니다.Q1. 예스스팟에서 진입 체결 후 Stop Loss 주문을 넣는 방법이 궁금합니다.예를들어 hts에서 수동 매매할 경우에는 stop 버튼을 동해 손절가를 사전에 지정합니다.예스스팟을 통해 이를 구현하고 싶습니다.- 시도했으나 실패한 내용1) 매수시, orderbuy로 진입 체결 직후 진입가 대비 -30포인트 정도로 손절 가격을 계산해서ordersell을 통해 지정가로 매도 주문 방법을 사용했었습니다.그런데, 제가 의도한 STOP LOSS 형태로 대기하지 않고, 매수 직후 바로 매도 되는 현상이 발생하고 있습니다.제가 전문 프로그래머가 아니라서, 제가 잘못하고 있는건지 판단이 잘 안됩니다.2) pricekind를 15,9 등 시도했으나, 해외선물에서는 1(시장가), 2(지정가) 이렇게 밖에 안된다는 글을 봤습니다.실제로 9,15등을 사용하면 스크립트 실행시 에러가 났습니다.3) 진입후 STOP LOSS를 위해 사용한 코드if (entryFilled){ entryPrice = fillPrice; stopPrice = entryPrice - (STOP_LOSS_TICKS * TICK_SIZE); stopOrderID = Account1.OrderSell(OC, QTY, stopPrice, 2);}Q2. 예스 랭기지 실시간 정보 및 시장가 처리 가능여부예스랭기지에서는 exitlong or exitshort 등이 있어서 제가 의도한 STOP LOSS가 가능했었습니다.제가 예스 랭기지 사용을 포기한 이유는 저는 실시간으로 틱 정보를 받아서 진입/청산이 필요한데atmarket,onclose,atlimit,atstop 등은 봉이 완성되어야 신호를 주는 구조라 제 전략과 맞지 않았습니다.예스랭기지에서도 봉완성과 무관하게 실시간 정보를 처리할 수 있는 방법이 있다면 알려주시면 감사하겠습니다.
2026-04-10
682
글번호 231572
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다.
2026-04-10
3
글번호 231565
클래스가 등록되지 않았습니다.
위 그림처럼 Reference 부분 넣어서 저장하고 실행하면 저렇게 클래스가 등록되지 않았습니다 하고 나옵니다.
2026-04-09
573
글번호 231534
소나기 님에 의해서 삭제되었습니다.
2026-04-07
10
글번호 231482
당근인생 님에 의해서 삭제되었습니다.
2026-04-01
1
글번호 231371
답변완료
스팟 자동 주문 처리
실제 차트 자동주문도 신호가 발생하면 감지해 자동주문시 주문처리를 하는 부분이 따로 있습니다.이부분을 스팟이 대체하는 것일 뿐입니다이것을 스팟 코드로 보고 싶은데 예시 코드로 작성을 부탁드립니다.
2026-03-31
611
글번호 231350
답변완료
계좌비밀번호를 확인하세요. 메시지창 문의
안녕하세요.비밀번호 화면에 취소해놓고 script돌리다가 스크립트 메시지 창에서 비밀번호를확인하세요. 메시자가 나옵니다.스크립트로 메시지창의 비밀번호 확인하라는메시지를 받는 방법이 있나요.
2026-03-30
325
글번호 231326
답변완료
예스스팟 관련
안녕하세요.몇 개월전부터 대표님 무료 강의를 몇 번씩 들으며 자동매매를 실행 하고 있습니다.매수는 조건검색식으로 매수는 하는 데 매도 관련해서 아래와 같이 매도를 하고 싶은 데 구현 하고 싶은 데 한계가 있어 도움을 요청합니다.(현재 익절 5% 선절 3%로 셋팅 되어 있음)1. 3분봉 기준 볼린저 밴드 (20,1.5) 상한선 이탈시 70% 매도2. 3분봉 기준 볼린저 밴드(20,0.8) 상한선 이탈시 100% 매도3. 거래시간이 9시부터 되어 있는 데 8시 대체 거래시간에도 매수가 가능 하면 셋팅 을 해 주시면 감사하겠습니다.ar timer5 = 5; //5초var 매수금 = 50000;var 손절 = 0.97;var 익절 = 1.05;var OrderList = [];var MKList = [];var req;function Main_OnStart(){ //1번 타이머, 1초 Main.SetTimer(1, timer5*1000); // 오늘 매수한 종목 관리 배열 초기화 MKList = [];}function Main_OnTimer(nEventID){ var d = new Date(); YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS > 090000 && HHMMSS <152000) { //종목검색 수행 Main.ReqPowerSearch("기본전략") } if (nEventID == 2) { Main.ReqMarketData(OrderList[req]); }}function Main_OnRcvItemList(aItemList, nCount){ Main.KillTimer(1); OrderList = []; if (nCount >= 1) { if (MKList.length == 0) { OrderList = aItemList; } else { for (var a = 0; a < nCount; a++) { var Add = true; for (var b = 0; b < MKList.length; b++) { if (aItemList[a] == MKList[b].code) { Add = false; } } if (Add == true && !IsStockInAccount(aItemList[a])) { OrderList.push(aItemList[a]); } } } } if (OrderList.length == 0) { Main.SetTimer(1, timer5*1000); } else { req = 0; Main.ReqMarketData(OrderList[req]); }}function Main_OnRcvMarketData(MarketData){ if (MarketData.code == OrderList[req]) { MKList.push(MarketData); // 계좌에 같은 종목이 있는지 확인 if (!IsStockInAccount(MarketData.code)) { // 계좌에 없는 경우에만 매수 //Account1.OrderBuy(MarketData.code,1,0,1); Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1); // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),MarketData.Ask(1),0); //지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다. Main.MessageList(MarketData.code + " 주식을 매수합니다."); } else { Main.MessageList( MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다."); } req = req+1; if (req < OrderList.length) { var aa = Main.ReqMarketData(OrderList[req]); if (aa == -1) { Main.SetTimer(2, 15000); } } else { Main.SetTimer(1, timer5*1000); } }}function IsStockInAccount(stockCode) { // 계좌에 해당 종목이 있는지 확인하는 함수 var numberOfBalances = Account1.GetTheNumberOfBalances(); for (var i = 0; i < numberOfBalances; i++) { Account1.SetBalance(i); if (stockCode == Account1.Balance.code) { return true; // 계좌에 같은 종목이 있으면 true 반환 } } return false; // 계좌에 같은 종목이 없으면 false 반환}예스스탁에서 1.2 로 매도 하고 싶습니다.매수시간도 8시부터 가능 하면 좋겠습니다.미리 감사 인사 드립니다.늘 좋은 하루 보내세요.감사합니다.
2026-03-29
642
글번호 231322
답변완료
예스스팟과 파워종목검색 관련 문의
안녕하세요?최근 예스스팟을 알게되어 도전하고 있습니다.유튜브를 보고 편집기에 코딩하여 적용을 하였는데몇일째 매매가 이루어 지지 않아 조건에 맞는 종목이 없어 그런가 하다가,파워종목검색에서 예스스팟과 같은 조건식을 10분마다 조회을 해보니 종목이 검색 되고 있었습니다.그래서 같은 검색조건식의 종목이 파워종목검색에서는 나오고 예스스팟 자동매매는 이루어지지 않는이유를 알고 싶어 문의드립니다.아래 스팟 코딩 한번 점검 부탁드리고 자동매매 실행전 준비해야 하는 설정을 놓친 것은 아닌지 설명 부탁드립니다.참고로 예스스팟 자동매매에서는 에러 메세지 없이 잘 작동하는 것으로 같습니다.감사합니다.var timer5 = 5; //5초var 매수금 = 100000;var OrderList = [];var MKList = [];var req;function Main_OnStart(){ // 타이머 간격 설정 Main.SetTimer(1, timer5*1000);} function Main_OnTimer(nEventID){ var d = new Date(); YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= 90000 && HHMMSS < 151500) { //종목검색 수행 Main.ReqPowerSearch("전고점돌파"); //파워종목검색명 Main.MessageList("전고점돌파 종목 검색"); } if (nEventID == 2) { Main.ReqMarketData(Orderlist[req]); }}function Main_OnRevItemList(aItemList, nCount){ Main.KillTimer(1); OrderList = []; if (nCount >= 1) { if (MKList.length == 0) { OrderList = aItemList; } else { for (var a = 0; a < nCount; a++) { var Add = true; for (var b = 0; b < MKList.length; b++) { if (aItemList[a] == MKList[b].code) { Add = false; } } if (Add == true) { OrderList.push(aItemList[a]); } } } } if (OderList.length ==0) { Main.SetTimer(1, timer5*1000); } else { req = 0; Main.ReqMarketData(OredrList[req]); }}function Main_OnRcvMarketData(MarketData){ if (MarketData.code == OrderList[req]) { MKList.push(MarketData); Account1.OrderBuy(MarketData.code,1,0,1); // 1주 시장가 주문 Main.MessageList(MarketData.code + " 주식을 매수합니다."); req = req+1; if (req < OrderList.length) { var aa = Main.ReMarketData(OrderList[req]); if (aa == -1) { Main.SetTimer(2, 15000); } } else { Main.SetTimer(1, timer5*1000); } } }
2026-03-26
398
글번호 231273