커뮤니티

예스스팟 Q&A

온고지신 님에 의해서 삭제되었습니다.

프로필 이미지
온고지신
2026-01-02
43
글번호 229514
답변완료

수식 부탁드립니다.

스팟문의는 예스스팟 Q&A에 올려 주시기 바랍니다.스팟은 기본적으로 저희가 완성식을 작성해 드리지는 않습니다.질문 올리신면 가이드식으로 답변드리며 답변받으시는데 시간이 좀 걸리실 수 있습니다.안녕하세요. 이 수식어에 분할 매수 수식어가 필요합니다. 부탁드립니다.보유종목 중 마이너스에 매수하기1차매수후- 신규종목2차매수- -3%3차매수- -5%4차매수- -8%+3% 전량익절보유종목중 2.3.4차에 도달하지 않았더라도 +3% 익절시 전량 매도var timer5 = 2; // 2초var 매수금 = 500000;var OrderList = [];var MKList = [];var req;function Main_OnStart(){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 > 090300 && HHMMSS < 151500){ Main.ReqPowerSearch("test");}if (nEventID == 2){ Main.ReqMarketData(OrderList[req]);}}function Main_OnRcvItemList(altemList, nCount){Main.KillTimer(1);OrderList = [];if (nCount >= 1){ if (MKList.length == 0) { OrderList = altemList; } else { for (var a = 0; a < nCount; a++) { var Add = true; for (var b = 0; b < MKList.length; b++) { if (altemList[a] == MKList[b].code) { Add = false; } } if (Add == true && !IsStockInAccount(altemList[a])) { OrderList.push(altemList[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,2); // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1); Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(5)),MarketData.Ask(5),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; }}return false; }
프로필 이미지
치치야
2025-12-31
189
글번호 229512
답변완료

문의 드립니다

특정 종목으로 관심종목을 만들고 관심종목만으로 예스스팟으로 실시간 매매 가능한지요예를 들어 10종목으로 관심종목 만들고 파워검색으로 macd (12,26,9) 골든크로스 매수데드크로스 매도하는 파워검색식을 만들어 일정간격(10초)으로 해댱되는 관심종목(10종목)만예스스팟 매매 하고 싶은데 가능한 방법 문의 드립니다.
프로필 이미지
미래테크
2026-01-01
109
글번호 229497

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

프로필 이미지
다올
2025-12-26
1
글번호 229372
답변완료

엑셀 객체 사용 방법 및 챠트 데이터, 옵션 객체 사용법 등 문의

앞의 답변에 이어서 질문 드립니다.예스스팟 자체에서 만들어낸 데이터를 data manager를 통해(입력하여) 그것을 챠트에 같이 보거나 겹치게 한다던가 하면서 로직상으론 분석을 해서 그것으로 챠트상에는 신호가 나오도록 하고 그러고 싶었는데, 그것이 쉽지 않다면 떠오르는 대안으로는 생성한 데이터들을 엑셀로 보내서 엑셀에 저장하여 챠팅을 하고, 복잡한 분석도 하고, 그 결과값을 다시 예스스팟에서 읽어와서 주문에 활용하는 등의 흐름과 같이 우회적인 걸 생각하게 됩니다.그래서, 다음과 같은 질문 을 추가적으로 드리면,1) 예스스팟에서 엑셀 객체로 엑셀에 데이타를 양방향으로 처리 가능한 것 같은데, 예스스팟과 엑셀 파일이 연결된 상태에서 데이타메니저와 이 엑셀 파일이 DDE로 연결되서 data manager로 데이터를 입력해 줄 수 있을까요?2) chartex나 reqchartitem으로 data1 ~ dataN을 코드상에서 추가 변경 삭제가 가능할까요?3) 추가 삭제 등이 가능하다면, 개별 패널이 아니라 같은 패널에 중첩해서 볼 수 있게 설정할 수 있을까요? (예: data2, data3 등 추가시에 data1과 가격 공유하는 형태로)4) doc로 된 스팟 메뉴얼 뒷 부분에는 엑셀 객체를 사용한 참고용 코드가 없던데, 스팟에서 엑셀에 읽고 쓰는 것을 하는 예제를 얻을 수 있을까요?5) 월간옵션, 주간옵션을 선택하고자 할 경우, 스팟 코드 내에서 상품을 임의로 지정할 수 있나요? 대략 훑어본 바로는 월간, 주간(월), 주간(목)을 모두 보려면 객체를 미리 3개를 다 열어놓고 데이타에 접근해야 하는 걸까요?6) 특정 종목(예:옵션 특정 종목)의 현재 시고저종은 MarketData 객체로 받을 수 있는데, 1분이나 초단위 타임프레임으로의 과거(당일) 시세(특정 시간부터 원하는 시간까지)를 받는 것은 어떤 방법으로 할 수 있을까요? 예를 들어, 예스랭귀지에서 Close[10]과 같이 가져오려면 어떻게 가능할지, 그리고 하나씩이 아니라 아예 배열로 한꺼번에 가져올 수도 있는 지요? 7) 시세 데이타가 아니라 변수의 과거 데이타도 예스랭귀지처럼 조회하는 방법(예: tprice = (h + l + c)/3; 에서 tprice[3]을 조회하는 것처럼)이 예스스팟에서는 어떻게 해야할까요?8) 여러 옵션 종목들의 직전 봉 종가대비 현재가의 차이를 구하기 위해서 data1(예:선물)에서 새로운 봉이 발생했을 때 해당 복수의 옵션 종목들의 데이타들을 조회하려면 어떻게 해야 하나요? 메리 크리스마스 되세요~
프로필 이미지
온고지신
2025-12-24
168
글번호 229320
답변완료

조건검색 문의

조건검색식에서 환기종목 거를 수 있는 시스템은 없을까요?
프로필 이미지
사공하늘
2025-12-22
132
글번호 229270
답변완료

[미처리 주문 조회 및 처리] 예스스팟 코드 작성 부탁드립니다.

감사합니다.
프로필 이미지
머신트레이더
2025-12-22
158
글번호 229241
답변완료

예스스팟에서 외부 exe화일 실행시 파라메터까지 전달해서 실행 가능할까요?

예스랭귀지쪽에선 신호 하나당 매수 매도 신호 하나당 하나의 사운드 화일 맵핑이 한계이다보니, 예스스팟으로 일괄적으로 TTS를 호출해서 모니터링해주는 기능을 구현해보고 싶은데, 기본적으로 외부 exe를 호출할 수 있는 지 궁금합니다. 만약 불가능하다면, 예스챠트 상에서의 지표값을 예스스팟이 인식을 할 수는 있을까요? 예스스팟으로 사용자 지표를 다시 구현하지 않고 챠트에 적용된 지표의 값이 변하는 순간에 인식하고 처리할 수 있는 지 궁금합니다.
프로필 이미지
온고지신
2025-12-22
136
글번호 229240
답변완료

예스스팟 편집기가 켜져있냐 꺼져있냐에 따라 실행결과가 다릅니다.

코딩을 몰라서 AI와 대화해서 겨우겨우 코드를 다 짰는데 프로그램이 될 때도 있고 안될때도 있어서 의아했습니다.코드는 아래와 같습니다.// =========================================================// [텍스트 버전] 연결 실패 경고 기능 추가// =========================================================var CHECK_INTERVAL = 1000;var last_count = -1; function Main_OnStart(){ Main.MessageList("시스템 시작 (DB 연결 시도중...)"); // 1. 초기 데이터 개수 파악 var sql = "COUNT(*) FROM trade_signals"; var cond = DataBase1.Select(sql, "TradingDB"); if (cond == true) { try { DataBase1.MoveFirst(); var cnt = DataBase1.GetFieldValue(0); if (!isNaN(cnt)) { last_count = Number(cnt); Main.MessageList("DB 연결 성공. 현재 데이터: " + last_count + "개"); Main.MessageList("실시간 감시를 시작합니다."); } } catch (e) { Main.MessageList("초기 데이터 읽기 오류 (0개로 설정)"); last_count = 0; } // 연결 성공 시에만 타이머 시작 Main.SetTimer(1, CHECK_INTERVAL); } else { // ★ 여기가 문제입니다. 이 메시지가 뜨면 ODBC 연결 설정 확인이 필요합니다. Main.MessageList("[오류] DB 연결 실패. DSN 이름(tradingdb)을 확인하세요."); Main.MessageList("타이머가 시작되지 않았습니다."); }}1번은 스팟편집기 실행 -> 전략 실행(성공) -> 편집기 종료 -> 연결 끊김(실패)2번은 스팟편집기 종료된 채로 전략 실행(실패)3번은 스팟편집기 실행 후 전략 실행(성공)스팟 편집기 유무에 따라 전략실행이 좌우되는게 맞는지 뭔가 잘못된건지 궁금해서 글을 올립니다.
프로필 이미지
오전만트레이딩
2025-12-20
147
글번호 229231

오전만트레이딩 님에 의해서 삭제되었습니다.

프로필 이미지
오전만트레이딩
2025-12-16
23
글번호 229081