커뮤니티
예스스팟 Q&A
답변완료
모듈화하여 여러 script 파일을 나누어 구현 할 수 있나요?
// exchange.jsconst dollarToWonRate = 1177.1;const euroToWonRate = 1298.3;const yenToWonRate = 10.8;const cynToWonRate = 169.7;// 첫 번째 export 방법export function dollarToWonFn(dollar) { return dollar * dollarToWonRate;};// calculate.js// 첫 번째 import 방법 : Destructuringimport { dollarToWonFn } from './exchange.js';console.log(dollarToWonFn(10)); // 11771이런식으로 2개의 파일을 나누어 구현이 가능한지 문의드립니다.
2026-03-17
560
글번호 231121
답변완료
문의드립니다
아래 수식은 선물신호 발생시 2.0 가격에 근접한 옵션을 찾아서 매매하는 수식입니다 라는 오류가 뜹니다잘못 된 부분을 수정 부탁드립니다감사합니다
2026-03-12
571
글번호 231060
답변완료
아랫글(230868) 추가질문입니다.
콜이나 풋을 매수한 상태일때, 위 수식이 0.5pt가격에 지정가 매도주문을 발생한다는 의미인가요?동시호가에 옵션매수종목을 무조건 청산하기 위해 시장가 매도주문을 발생시켰으나, 거부되는 경우가 발생되어 ,낮은 가격(0.1pt나 0.5pt 등) 지정가로 주문을 내서 주문이 거부되지 않으면서 거의 무조건 매수포지션을 청산하려는 의도로 질문을 드렸습니다.원하는 바는, 옵션 매수상태일때 지정가 0.5로 청산주문 발생시키고옵션 매도상태일때 지정가 50으로 청산주문 발생시키고 싶습니다.다시한번 답변 부탁드립니다.
2026-03-11
596
글번호 231048
관리자에 의해 예스랭귀지 QnA로 이동되었습니다.
2026-03-11
4
글번호 231036
답변완료
객체사용
marketdata1과 chart1 객체를 사용하여 미니KP200선물연결 종목호가정보를 가져오려고 하는데 예스스팟 실행을 하면 최근메시지 항목에 "주식종목만 조회 가능합니다."라고 나옵니다.선물도 다 가능하다라고 매뉴얼에 나오는데 왜 그런가요?
2026-03-10
582
글번호 231029
tktmsl 님에 의해서 삭제되었습니다.
2026-03-10
27
글번호 231020
답변완료
저점 돌파 콜매수, 고점 돌파 풋매수
주간용이며, 데이트레이딩입니다.신호는 선물, 진입은 옵션입니다.요청수식1 . 장초반에 생긴 저점을 깨지 못하다가 오후에 저점에 근접할 때 Call 매수1. 전제조건 : K200선물 시가에서 10포인트 이상 하락2. 구간 저점 저장 : 084500 에서 100000 까지 K200선물 저점은 A 입니다. ( A는 084500 부터 100000 까지 시세를 모두 보고 판단 )3. 트리거 : stime>=130000 and stime<150000 A+2.5포인트 crossdown4. 진입 : 콜옵션 가격 0.20 포인트 이하에 최근접한 행사가에 매수주문 1개를 매도5호가에 냅니다. ( 단, 저점 A가 여전히 저점인 경우만 진입 )5. 청산 : 익절 2.50포인트, EndofDay 1515006. 진입횟수 : 1회요청수식2. 장초반에 생긴 고점을 깨지 못하다가 오후에 고점에 근접할 때 Put 매수1. 전제조건 : K200선물 시가에서 10포인트 이상 상승2. 구간 고점 저장 : 084500 에서 100000 까지 K200선물 고점은 B 입니다. ( B는 084500 부터 100000 까지 시세를 모두 보고 판단 )3. 트리거 : stime>=130000 and stime<150000 B-2.5포인트 crossup4. 진입 : 풋옵션 가격 0.20 포인트 이하에 최근접한 행사가에 매수주문 1개를 매도5호가에 냅니다. ( 단, 고점 B가 여전히 고점인 경우만 진입 )5. 청산 : 익절 2.50포인트, EndofDay 1515006. 진입횟수 : 1회수식 부탁 드립니다.항상 고맙습니다.
2026-03-09
669
글번호 230984
답변완료
관심종목 중에서 매수, 계좌보유종목수 제한 등에 대해 문의합니다.
전체 종목을 대상으로 써치하여 종목을 매수하는 프로그램입니다.1. 미리 관심종목 그룹에 등록해둔 특정관심종목 폴더에서 중에서 종목을 써치해서 매수하게 하고 싶습니다.2. 1차 매수(지정금액01) 후 당일 내에 매수금액에서 2%하락 시 2차매수(지정금액01)를 하고, 1.2차 평균매수가가 3%하락시 3차매수(지정금액02)를 하는 로직을 만들고 싶습니다.3. 1차 매수(지정금액01) 후 당일이 아닌 다음날에 평균매수가 대비 5%하락 시 2차매수(지정금액01)를 하고, 평균매수가 대비 다시 5%하락시 3차매수(지정금액02)를 하는 로직을 만들고 싶습니다.4. 해당 계좌의 보유 종목수를 제한하여 매수하고자 합니다.(계좌에 20종목만 보유, 1 종목 매도하면 1종목 매수)5. NXT에서도 자동매매가 가능하게 하고 싶습니다.부탁드립니다.=====================var M_Buy = 500000;//종목당 1회 매수금액var OPEN_T = 090000;var CLOSE_T = 150000;var SearchName = "224이평 돌파 및 지지"; //PowerSearch Namevar 당일매수제한종목수 = 10, BuyCount;var timer = 5; //매수 매도 초(시간) 간격var Earning_Rate = 1.3; //계좌평가금액이 스팟시작시 평가금액대비 30% 이상이면 전종목 전량매도var Trailing_Stop = 0.1; // 종목당 -10%이하 손실이면 전량 손절var Earning_Sale = 1.25; // 종목당 25%이상 수익이면 전량 익절var OrderList = [];var MKList = [];var req;function Main_OnStart(){ //1번 타이머, 5초 Main.SetTimer(1, timer*1000); // 오늘 매수한 종목 관리 배열 초기화 MKList = []; //스팟 시작시 잔고평가금액 V1 = Account1.GetBalanceETCinfo(100); BuyCount = 0;}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 >= OPEN_T && HHMMSS < CLOSE_T && BuyCount < 당일매수제한종목수) { //종목검색 수행 Main.ReqPowerSearch(SearchName) Main.MessageList("ReqPowerSearch1"); } if (nEventID == 1) { //계좌보유종수 var num = Account1.GetTheNumberOfBalances(); //9시~15시 15분 사이 if (HHMMSS >= OPEN_T && HHMMSS < CLOSE_T) { //보유종목이 1개 이상 if (num >= 1) { //계좌평가금액이 스팟시작시 평가금액대비 30% 이상이면 전종목 전량매도 if (Account1.GetBalanceETCinfo(100) >= V1*Earning_Rate) { //1번 타이머 종료 Main.KillTimer(1); //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account1.SetBalance(i); //수량이 있고 Earning_Rate(30%)수익이거나 손실이면 시장가 매도 if (Account1.Balance.count > 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } else //아니면 개별종목 25% Earning_Sale, -10% Trailing_Stop 체크 { //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account1.SetBalance(i); //수량이 있고 "Earning_Sale" 25% 수익이거나 "Trailing_Stop" -10% 손실이면 시장가 전량매도 if (Account1.Balance.count > 0 && (Account1.Balance.current >= Account1.Balance.avgUnitCost*Earning_Sale || Account1.Balance.current <= Account1.Balance.avgUnitCost*Trailing_Stop)) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } } } } if (nEventID == 2) { Main.ReqMarketData(OrderList[req]); Main.MessageList("ReqMarketData:",OrderList[req]); }}function Main_OnRcvItemList(aItemList, nCount){ Main.KillTimer(1); Main.MessageList("aItemList:",aItemList); 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]); } } } } Main.MessageList("OrderList:",OrderList); if (OrderList.length == 0) { Main.SetTimer(1, timer*1000); } else { req = 0; Main.ReqMarketData(OrderList[req]); Main.MessageList("ReqMarketData:",OrderList[req]); ; }}function Main_OnRcvMarketData(MarketData){ if (MarketData.code == OrderList[req]) { MKList.push(MarketData); // 계좌에 같은 종목이 있는지 확인 if (!IsStockInAccount(MarketData.code)) { if (BuyCount < 당일매수제한종목수) { // 계좌에 잔고가 없는 경우에만 매수 Account1.OrderBuy(MarketData.code,1,MarketData.Ask(1),0); // 종목당 1주 지정가 매수주문 // Account1.OrderBuy(MarketData.code,1,0,1); // 종목당 1주 시장가 매수주문 // Account1.OrderBuy(MarketData.code,Math.floor(M_Buy/MarketData.Ask(1)),0,1); // 종목당 지정금액 시장가 매수주문 //Account1.OrderBuy(MarketData.code,Math.floor(M_Buy/MarketData.Ask(1)),MarketData.Ask(1),0); // 종목당 지정금액 지정가 매수주문 Main.MessageList(MarketData.code + "주식을 매수합니다."); BuyCount = BuyCount+1; } } else { Main.MessageList( MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다."); } req = req+1; if (req < OrderList.length && BuyCount < 당일매수제한종목수) { var aa = Main.ReqMarketData(OrderList[req]); Main.MessageList("ReqMarketData:",OrderList[req]); ; if (aa == -1) { Main.SetTimer(2, 15000); } } else { Main.SetTimer(1, timer*1000); Main.MessageList("당일종목수제한 도달 :",BuyCount,"/",당일매수제한종목수); } }}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 반환}
2026-03-08
688
글번호 230977
늘그렇게 님에 의해서 삭제되었습니다.
2026-03-08
6
글번호 230976
답변완료
나스닥 거래되는 시작시간과 마감시간을 알아내는 방법이 있는지요?
안녕하세요.Summer time이나 조기종료, 휴일처럼 시간이 바뀌게 되는것을API를 통해서 알아내는 방법이 있는지요?알려주세면 감사하겠습니다.
2026-03-07
583
글번호 230971