커뮤니티

예스스팟 Q&A

답변완료

신속하고 친절한 답변 감사 합니다.

Python 기반 강화학습 자동매매 시스템과의 연동과 관련하여 다음 몇가지 질문 드립니다. 1. 예스스팟의 JScript 환경에서 직접 적이거나 fetch 또는 XMLHttpRequest 와 같은 간접적인 방법에 의한 HTTP 지원여부 및 방안. 그리고 모의 거래시에도 DB와의 연동이 실거래와 마찬가지로 원활하게 사용 가능 한지요? 2. DB1 객체가 DSN을 통한 로컬 SQLite DB 연결 시 'Error initializing DB connection' 오류 발생 초기화에 실패 하였습니다. 특히 스크립트 로딩시점에 초기화 오류 원인에 대하여 해결 방안을 말씀해 주시면 감사 하겠습니다. 또한 초기화 실패가 원인 인줄은 잘 모르겠으나 가원장 체킹이 안 되고 있습니다. 3. 해외선물(MYMZ25) 거래에서 SQLite DB 연동과 관련한 예제를 하나 올려 주시면 정말 감사 하겠습니다.
프로필 이미지
너무조아
2025-11-01
137
글번호 227560
답변완료

대체거래소 시세주문

안내해주신 공지사항 (https://www.yesstock.com/community/notice-dtl?postNo=227137&searchType=&searchValue=)봤는데제가 사용하고 있는 코드는 종목객체속성도 없고 코드 예제에 속성도 좀 달라서 ......ordersell, orderbuy 이 부분만 고치면 되는가요?속성 부분이 예제랑 달라서... 수정 부탁드려요 ㅠ sor로 수정 하고 싶습니다-------------------아래 코드 -------------------------------var timer5 = 3; //3초var 매수금 = 1500000;var 손절 = 0.975;var 익절 = 1.15;var OrderList = [];var MKList = [];var req;function Main_OnStart(){ //1번 타이머, 5초 Main.SetTimer(1, timer5*1000); // 오늘 매수한 종목 관리 배열 초기화 MKList = []; //스팟 시작시 잔고평가금액 V1 = Account2.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 >= 090459 && HHMMSS < 151900) { //종목검색 수행 Main.ReqPowerSearch("메인733511") } if (nEventID == 1) { //계좌보유종수 var num = Account2.GetTheNumberOfBalances(); //9시~15시 15분 사이 if (HHMMSS >= 090459 && HHMMSS < 151900) { //보유종목이 1개 이상 if (num >= 1) { //계좌평가금액이 스팟시작시 평가금액대비 5% 이상이면 전종목 전량매도 if (Account2.GetBalanceETCinfo(100) >= V1*1.10) { //1번 타이머 종료 Main.KillTimer(1); //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account2.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account2.Balance.count > 0) { Account2.OrderSell(Account2.Balance.code,Account2.Balance.count,0,1); } } } else //아니면 개별종목 5%익절, -5%손절 체크 { //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account2.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account2.Balance.count > 0 && (Account2.Balance.current >= Account2.Balance.avgUnitCost*익절 || Account2.Balance.current <= Account2.Balance.avgUnitCost*손절)) { Account2.OrderSell(Account2.Balance.code,Account2.Balance.count,0,1); } } } } } //15시 15분이후이면 if (HHMMSS >= 152900) { //1번 타이머 종료 Main.KillTimer(1); //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account2.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account2.Balance.count > 0) { Account2.OrderSell(Account2.Balance.code,Account2.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)) { // 계좌에 없는 경우에만 매수 //Account2.OrderBuy(MarketData.code,1,0,1); Account2.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1); //Account2.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 = Account2.GetTheNumberOfBalances(); for (var i = 0; i < numberOfBalances; i++) { Account2.SetBalance(i); if (stockCode == Account2.Balance.code) { return true; // 계좌에 같은 종목이 있으면 true 반환 } } return false; // 계좌에 같은 종목이 없으면 false 반환}
SOR주문
프로필 이미지
허밍스타
2025-10-29
138
글번호 227426
답변완료

수식 문의드림니다

선물신호를 받아 etf 종류인 코덱스 인버스 와 레버리지를 매수 하고 싶은데요선물신호가 매도 발생하면 코덱스인버스를 매수하고선물신호에서 매수가 발생하면 코덱스 레버리지를 매수 하는 스팟 수식 부탁드림니다* 주의점은 선물신호가 매수인 경우는 이익방향이 같기 때문에 코덱스레버리지를 같은 방향으로 매수하는 것이 맞는데요주식의 성질을 같는 코덱스인버스는 선물처럼 매도를 할수 없기 때문에선물에서 매도신호가 나오면 매수하는 것으로 수식 작성 부탁드림니다
선물신호ETF주문
프로필 이미지
mao
2025-10-27
150
글번호 227345

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

프로필 이미지
iamdenison
2025-10-27
6
글번호 227343
답변완료

문의 드립니다.《매수,매도 예정가》

장 종료후 개별종목 다음날 매수,매도 예정가격 매수,매도 신호를 볼수 있었는데개편후에는 어디서 조회 해볼수 있나요.
프로필 이미지
심산대박
2025-10-23
130
글번호 227257
답변완료

질문드립니다.

안녕하세요. 항상 도움 많이 주셔서 감사합니다. 아래 수식에 대하여 확인차 문의드립니다. 다음 식으로 선물 매도가능수량을 했는데, 1개만 주문이 나가는데요. (실제 계좌에는 5개 주문 가능함) 수정 부탁드립니다. Svol = Math.floor((A2.GetBalanceETCinfo(29)/(M1.Bid(3)*250000*0.15))*0.9);감사합니다.
프로필 이미지
지나리
2025-10-22
104
글번호 227146

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

프로필 이미지
ksks
2025-10-21
20
글번호 227097
답변완료

문의 드립니다

예스스팟에서 수식 부탁합니다파워종목검색으로 실시간 검색으로 일봉에서 5이평이 20이평 돌파시 매수하는 파워검색식 (예: 이평돌파) 으로 종목을 매수하는 경우에특정시간대(9시30분~ 12시) 에만 매수할 수 있는 예스스팟 수식 부탁합니다.이평 돌파가 9시 10분대 20분대에도 발생할 수 있는데 일봉으로 종목 매수하여시작타임을 9시30분으로 하면, 그 이전 시간에 20이평 돌파가 발생된 종목도같이 시작하자마자 매수가 되어서, 특정시간대에만 지정된 파워검색식으로검색된 종목이 매수 될 수 있도록 수식 부탁합니다.
프로필 이미지
미래테크
2025-10-20
116
글번호 227072
답변완료

문의 드립니다

예스스팟에서 수식 부탁합니다파워종목검색으로 실시간 검색으로 일봉에서 5이평이 20이평 돌파시 매수하는 파워검색식 (예: 이평돌파) 으로 종목을 매수하는 경우에특정시간대(9시30분~ 12시) 에만 매수할 수 있는 예스스팟 수식 부탁합니다.이평 돌파가 9시 10분대 20분대에도 발생할 수 있는데 일봉으로 종목 매수하여시작타임을 9시30분으로 하면, 그 이전 시간에 20이평 돌파가 발생된 종목도같이 시작하자마자 매수가 되어서, 특정시간대에만 지정된 파워검색식으로검색된 종목이 매수 될 수 있도록 수식 부탁합니다.
프로필 이미지
미래테크
2025-10-20
100
글번호 227071
답변완료

스크립트 파일 요청 (해외선물 MYM 종목 기준)

**SQLite DB (파일 기반)**를 연동하여 자동매매 시스템을 구축하고 있습니다. 구조 : 예스스팟 <---------> SQLite DB <--------> Python * 예스스팟에서 SQLite DB 연동을 위한 아래 **두 가지 수식(또는 구현 코드 예시)**을 수정요청 드립니다.1. SQLite DB에서 주문 오더 정보를 읽어 예스스팟에서 매매 주문을 실행하는 수식예스스팟이 특정 SQLite DB 테이블에서 주문 오더 정보(매수/매도, 종목명, 수량, 가격 등)를 읽어 실제 주문을 실행하는 수식2. 예스스팟에서 미체결 및 체결 정보를 SQLite DB에 기록하는 수식예스스팟에서 실행 한 미체결 잔량 및 매매 체결 정보(체결 수량, 체결 가격, 고유 주문 ID, 주문 상태 등)를 SQLite DB에 기록하는 수식아직 코드작성이 미숙 합니다. 자세한 주석을 달아 주시면 감사 하겠습니다.
프로필 이미지
너무조아
2025-10-20
133
글번호 227044