커뮤니티

예스스팟 Q&A

답변완료

모바일 문의

안녕하세요.국내주식 거래를 자동매매, 파위검색 등 모바일에 환경에서도 사용 할 수 있나요? 국내 증권사 Im, 나무 증권 가능 한가요?초짜라 정보를 잘 몰라 문의 드려 봅니다.감사합니다.늘 좋은 하루 보내세요.
프로필 이미지
victor
2025-11-13
106
글번호 227994
답변완료

확장차트 스크립트객체 추가 시 오류

항상 수고 많으십니다.확장차트 스크립트 객체 추가 시 오류가 발생하는 데 이유를 알 수가 없습니다. 알려주세요.
프로필 이미지
재령
2025-11-10
113
글번호 227866
답변완료

기초적인 사용법 질문 드립니다.

안녕하세요 예스스팟 입문자입니다.유진예스트레이더 해외선물 매매하려고 하구요.흐름이 이해가 어려워서 질문드립니다.예스랭귀지로 이평 돌파 전략 시스템을 만들었습니다.# 매수If CrossUP(close, value1) Then { Buy(); }# 매도If CrossDown(close, value2) Then { Sell(); }1) 이걸 3010 차트에 시스템 '시험 적용'하고, 예스스팟에서 Main_OnRiseSignal 이 발생하면 신호에 따라 매수 매도 코드 짜면 되는걸까요?로그찍어봤는데 신호가 발생해도 저 함수가 실행되지 않는것 같아서요제가 이해하기로는 신호발생 -> Main_OnRiseSignal 여기서 종목코드 얻을 수 있고 종목객체 만들어서 가격을 지속적으로 받아가면서 대응하는걸로 이해했는데 맞을까요?2) 추가로 Main_OnUpdateMarket 함수는 언제 발생하는 이벤트인가요?
프로필 이미지
9382
2025-11-10
125
글번호 227820
답변완료

앞에 답변해주신 코드

글번호 227426 앞에 답변해주신 코드를 [순위검색] 거래량 상위 10 종목검색만 설정하고8~9시 돌려보면 nxt에 해당하지 않은 종목 (예)고영 종목이 잡혀서 실제로는 매수가 되지 않습니다.문제점 해결할 방법이 있을까요?
프로필 이미지
허밍스타
2025-11-10
74
글번호 227801

수정문의

아래 수식 중 당일 전량매도조건 부분을 2봉전 RSI(20)>60, 1봉전 RSI(20)<59.9, 0봉전 RSI(20)<59.9일때에만 매도하는 조건으로 수정 가능한지 문의드립니다. (15시15분에 전량매도 삭제) 또, 계좌잔고 수익이 +-5%일때 전량매도조건을 삭제하고 싶은데요.그리고, 단봉(5분봉)으로 자동매매 실험하여(1주 매수매도)장종료 후 5분봉차트에서 확인해보니 조건에 맞는 종목이 많이 매수가 안되는 현상이 있는데이는 왜그런지요. 또 이를 피하려면 어떻게 해야 하나요? var timer5 = 5; //5초 var 매수금 = 100000; var 손절 = 0.95; var 익절 = 1.10; var OrderList = []; var MKList = []; var req; function Main_OnStart() { //1번 타이머, 5초 Main.SetTimer(1, timer5*1000); // 오늘 매수한 종목 관리 배열 초기화 MKList = []; //스팟 시작시 잔고평가금액 V1 = Account1.GetBalanceETCinfo(100); } 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("ZLMA+RSI-5분봉") } if (nEventID == 1) { //계좌보유종수 var num = Account1.GetTheNumberOfBalances(); //9시~15시 15분 사이 if (HHMMSS >= 90000 && HHMMSS < 151500) { //보유종목이 1개 이상 if (num >= 1) { //계좌평가금액이 스팟시작시 평가금액대비 5% 이상이면 전종목 전량매도 if (Account1.GetBalanceETCinfo(100) >= V1*1.10) { //1번 타이머 종료 Main.KillTimer(1); //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account1.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account1.Balance.count > 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } else //아니면 개별종목 5%익절, -5%손절 체크 { //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account1.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account1.Balance.count > 0 && (Account1.Balance.current >= Account1.Balance.avgUnitCost*익절 || Account1.Balance.current <= Account1.Balance.avgUnitCost*손절)) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } } } //15시 15분이후이면 if (HHMMSS >= 151500) { //1번 타이머 종료 Main.KillTimer(1); //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account1.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account1.Balance.count > 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } } 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(2)),0,1); // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(2)),MarketData.Ask(2),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 반환 }
프로필 이미지
ksks
2025-11-10
119
글번호 227800
답변완료

선물에서 나온 신호로 kodex200을 매수하려고합니다. 스팟수식 부탁드립니다.

1. 차트에 코스피 200선물 띠우고 시험적용을 적용한 다음.. 2. 선물 8분봉에서 첫봉에 매수신호가 나오면(= 이때는 8시 53분) 이 매수신호를 kodex200 에 보내서 9시 동시호가에 바로 kodex200에 매수주문을 넣는 스팟 수식을 부탁드립니다.
프로필 이미지
제우스
2025-11-07
88
글번호 227773
답변완료

종목객체에서 전일봉 데이터를 조회하면

종목객체에서 전일봉 데이터를 조회하면전일부터 데이터가 받아져야하는데 전전일 데이터부터 받아집니다.예를 들어 GetPrevHigh(1) 의 경우 전일 고가를 받아와야하는데 전전일 고가를 받아옵니다.
프로필 이미지
ruach
2025-11-06
93
글번호 227691
답변완료

DB insert 오류 문의

예스스팟의 Database객체 insert 함수를 이용하여 거래내역을 DB에 기록하고 있습니다.DB insert 실행시 insert함수의 반복실행 텀이 아주 짧을 경우 내용이 뒤죽박죽 되어 insert되는 현상이 발생합니다. (이미지의 빨간 박스 참고)텀이 짧을 경우 매번 이런 현상이 나타나진 않고 정상적으로 insert될 때도 있습니다. (이미지의 초록색 박스 참고)insert 함수의 사용텀을 지연시키는 것 외에 다른 솔루션이 있을지 문의드립니다.
프로필 이미지
훈sys
2025-11-05
86
글번호 227680
답변완료

엑셀 불러오기

안녕하세요 예스스팟에서 엑셀을 실시간으로 불러오기 기능이 구현가능할까요?/제가 트레이딩뷰에서 구현한 매매시그널을 신호가 나오면 실시간으로 엑셀로 저장가능하고 그걸 스팟에서 불러와서 매매를 해보고싶은데(예를들면 엑셀에 buy , sell, 수량 등을 읽어오는 방식으로 엑셀에 저장)구현가능한지 검토 부탁드립니다.
프로필 이미지
소드노
2025-11-03
87
글번호 227590

민재77 님에 의해서 삭제되었습니다.

프로필 이미지
민재77
2025-11-03
16
글번호 227586