커뮤니티

예스스팟 Q&A

답변완료

사용자함수

사용자함수를 만들고 지표를 만들려고하는데 어떻게 해야하나요??
프로필 이미지
윤호석
2025-06-13
235
글번호 226322
답변완료

예스스팟 전략 작동 시간 문의

이번에 야간이 추가되었다고 해서 야간 데이터 확인용으로 전략을 만들었는데 18:00 ~ 02:45 까지만 확인이 됩니다. 혹시 전략 사용시간에 제한 같은것이 있는지 궁금합니다.
프로필 이미지
이스데일
2025-06-12
253
글번호 226321

골드33 님에 의해서 삭제되었습니다.

프로필 이미지
골드33
2025-06-11
0
글번호 226320
답변완료

분할매도 수식 문의

안녕하세요? 현재 예스랭귀지 종목검색을 기반으로 예스스팟에서 자동매수를 하고 수동 매도를 하고 있습니다. 혹시, 매수 후 특정한 조건에서 매도를 할 수 있게 수식 부탁드립니다.(스팟에 추가) 1. 추가할 매도 조건 a. 5% 수익일때 50% 매도(1차 익절) b. 1차 매도 후 2% 도달하면 전량 매도 c. 10% 수익일때 잔량의 50% 매도(2차 익절) d. 10% 이후 고점에서 5% 하락시 2차 익절후 잔량 전부 스탑트레일링 전량 매도 e. 손절 -5% 이렇게 매도식을 추가 하고 싶습니다.(%조건은 수정가능) 매도식을 현재 있는 자동매매 스팟 제일 아래 붙여넣어야 하나요? 감사합니다.
프로필 이미지
리버피닉스
2025-06-10
294
글번호 226319

골드33 님에 의해서 삭제되었습니다.

프로필 이미지
골드33
2025-06-11
2
글번호 226318
답변완료

지정가 매도 수식 부탁드립니다

Account1.SetBalance(i); if (Account1.Balance.count > 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } 위의 시장가 매도주문을 지정가(매도1호가 & 매수1호가)매도로 부탁드립니다. 감사합니다.
프로필 이미지
강자친구
2025-06-10
246
글번호 226317

골드33 님에 의해서 삭제되었습니다.

프로필 이미지
골드33
2025-06-10
13
글번호 226316
답변완료

문의드립니다.

9시10분에서20분까지 검색해서, 종목이 나오면 시장가 매수하고, 25분에 미체결이 있으면 취소하고, 30분에 잔고가 있으면 전량 시장가매도하는 건데... 잘 안됩니다... 어디가 문제일까요??? 프로그램이 문제일까...아님 뭐가 문제일까요??? 확인 부탁드립니다... 감사합니다...ㅎㅎㅎ var timer5 = 9; // 9초 간격 var OrderList = []; var MKList = []; var req; function Main_OnStart() { // 1번 타이머로 검색 시작 Main.SetTimer(1, timer5 * 1000); MKList = []; // 99번 타이머는 5초마다 09:30:00 여부 확인 Main.SetTimer(99, 5000); // 55번 타이머는 5초 간격으로 작동 Main.SetTimer(55, 5000); } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours() * 10000 + d.getMinutes() * 100 + d.getSeconds(); if (nEventID == 1 && HHMMSS >= 91000 && HHMMSS <= 92000) { Main.ReqPowerSearch("매수조건"); } if (nEventID == 2) { Main.ReqMarketData(OrderList[req]); } if (nEventID == 99 && HHMMSS >= 93000) { Main.KillTimer(99); // 한 번만 실행 var num = Account1.GetTheNumberOfBalances(); if (num > 0) { for (var i = 0; i < num; i++) { Account1.SetBalanceIndex(i); if (Account1.Balance.count > 0) { Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, 0, 1); Main.MessageList(Account1.Balance.code + " 주식을 전량 시장가로 매도합니다."); } } } } if (nEventID == 55 && HHMMSS >= 92500) { Main.KillTimer(55); Main.MessageLog("취소"); num = Account1.GetTheNumberOfUnfills(); // 미체결주문 갯수 for (var i = 0; i < num; i++) { Account1.SetUnfillIndex(i); // i순번의 미체결객체 셋팅 if (Account1.Unfill.count > 0) { // 미체결객체의 수량이 0이상이면 Account1.OrderCancel(Account1.Unfill.orderNum); // 해당주문번호 취소주문 } } } } 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, 19, 0, 1); Main.MessageList(MarketData.code + " 주식을 19주 시장가로 매수합니다."); } 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; } } return false; }
프로필 이미지
시온사랑
2025-06-09
245
글번호 226315

관리자 님에 의해서 삭제되었습니다.

프로필 이미지
오아시스3
2025-06-07
30
글번호 226314

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
노던라이트
2025-06-02
12
글번호 226310
0