커뮤니티

예스스팟 Q&A

답변완료

참조데이터 지원 여부 및 확장 챠트 기능 문의

1. 전략실행챠트에서 참조종목으로 볼 수 있는 데이타를 예스스팟에서도 모두 다 조회 가능한 지 궁금합니다. 참조데이터 객체에서 nCategory 입력에 이것 저것 입력해 보면서 뽑아보면 될까요? 기존의 YesSpotHelp.doc에 있는 내용이랑 챠트에서의 메뉴랑 조금 차이가 있어서 어떤 값을 넣었을 때 원하는 값을 얻어올 수 있을 지 정확히 모르겠네요.2. 참조데이터들 중에 데이터 업데이트 기간이 10초 짜리도 있고 1분30초 짜리도 있고 다양하고 각각이 실제로 들어오는 시차도 몇 초 차이도 발생하기도 해서, 수동으로 1초 간격으로 조회하는게 아니라 이 데이터가 들어올 때 즉시 수신해서 변수나 데이타베이스 객체나 엑셀 객체를 통해 저장했다가 참조데이타 수신들이 모두 다 들어왔다고 판단될 때에 그들을 갖고 계산한 값들을 가상의 심볼 처럼 처리하는 개념으로 확장챠트 같은 거에 일정 시간에 한번씩 데이타를 넣어서 (또는 데이타 베이스에 넣어서 그것을 챠트가 읽게 하든가) 시각화 시키는 것을 하였으면 합니다. 일전에 종목 챠트들을 스팟에서 내부적으로 만들어서 전체 보기 눌러서 보았다가 숨겼다가 했던 적은 있었는데 기존에 있는 종목이 아닌 제가 계산한 값을 챠트화 시키고 그것을 원할 때 시각적으로 볼 수 있는 방법이 있을 지, 있다면 어떤 방법으로 할 수 있을 지 문의 드립니다. 3. 위 2번과 같이 자체 생성한 값을 스팟의 기능으로 궁극적으로 챠트에 표시가 가능하다면(data1에 해당되는 걸 만들 수 있다면 best이겠지만, 그게 안된다면 지표화 한 것처럼 표시가 되도 됩니다. 즉, 변수에서 직접이든 데이타베이스나 엑셀을 통해 저장했다가 그 값들을 조회해서 지표화 시키고 그 값들을 data1에서 지정된 타임프레임마다 조회만 되어도 좋습니다.) 그것을 통해서 시스템이 동작되도록 하거나, 아니면 수동 거래용으로 참조할 수 있게 챠팅만 되어도 좋겠습니다. 가능할까요? 예를 들어 스팟에서 엑셀이나 데이타베이스에 접근해서 불러온 데이타를 어떻게든 표시할 수 있는 방법만 있다면 가장 좋을 것 같습니다.4. 그리고, 참조데이타가 주기적으로 새로 들어올때 해당 데이타의 타임스탬프가 같이 들어올까요? 예를 들어 9시03분 데이터인데 실제 도착은 9시03분03초에 도착했지만 9시03분00초에 발생한 데이타라는 정보가 함께 조회가 가능한지 여쭤봅니다.5. GetInvestorInfoDate를 실행하면 결과값이 날짜만 나오나요? nIndex에 0을 넣으면 현재 조회한 데이터가 언제(분초 단위) 발생한 것인지 알 수 있을까요?6. GetInvestorInfoCount()를 실행하면 어떤 것에 대한 수신 개수 일까요? 7. datamanager라는 걸 통해서 사용자 종목을 만들어서 챠팅이 가능한 거 같던데, 데이타 입력부터 (데이타 포맷, 방법 등) 실시간 업데이트 방법(DDE로만 되는지, 예스스팟 로직에서도 데이타메니저에 바로 데이터 추가가 가능한지) 등 구체적인 내용에 대해 설명된 자료가 있을까요? 예스스탁 홈페이지의 주요기능에서는 소개 내용만 있어서 자세한 내용을 몰라 모든걸 맨땅에 헤딩으로 알아내기 보다는 도움말이나 메뉴얼 같은게 있으면 합니다. 그리고, 1분 타임프레임만 지원하는거 같던데 틱 이라고 종목 추가시 선택하고 분, 일 체크박스에 체크하면 초단위 챠트도 나올 수 있은 것인지, 아니면 틱이라고 해서 디테일한 데이터를 넣으면 분과 일 타임프레임도 자동으로 만들어 주신다는 건지 등도 궁금합니다. 물론 초챠트가 있으면 정말 좋겠습니다. 8. datamanager를 통해 만드는 사용자 종목을 data1에 적용할때, 매 정각(예:매 1분 마다)이 아니라, 예를 들어, 9시 1분 3초, 2분 3초 등으로 봉 완성 시점을 정각이 아닌 몇초 뒤로 완성이 되게 할 수는 있을까요? 예를 들어 실제 시각은 현재 9시 2분 03초지만 데이타 메니저에 시각 데이터를 9시 01분 59초 라고해서 계속 업데이트 하다가 원하는 시점에 9시 02분 00초라고 해서 넣으면 그떄가 봉의 종가 완성되는 시점으로 해서 그때서야 다음 봉 생성이 되도록 하게 할 수 있는 지와 같은 내용입니다.언제나 노고에 감사드립니다.
프로필 이미지
온고지신
2025-12-13
241
글번호 228974

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

프로필 이미지
빨간벽돌
2025-12-12
10
글번호 228925
0
답변완료

GetBalanceETCinfo 관련 질문

안녕하세요,Spot의 GetBalanceETCinfo로 '익일예탁자산'을 return하려고 하는데 GetBalanceETCinfo 뒤에 붙는 번호가 어떻게 되나요?NH선물, 한투가 다른가요?
프로필 이미지
민현종
2025-12-12
191
글번호 228914
답변완료

관심종목(선정종목) 자동매수

다음은 예스랭귀지 시스템(식) 입니다. 예스스팟으로 자동매수하도록 부탁 합니다.계좌잔고의 1/3 매수하도록 수고 바랍니다^^// ============================================================// 삼성전자 자동매수 로직 (예스랭귀지 완성본)// - 전일 종가 신호 발생 시 다음날 갭/비갭 조건에 따라 매수// ============================================================Inputs: BuyDelayGapUp(0910), // 갭업 대기시간 BuyDelayGapDown(0920), // 갭다운 대기시간 NoGapBuyStart(0900), // 비갭 매수 시작 시간 NoGapBuyEnd(0915); // 비갭 매수 종료 시간Vars: BuySignal(false), BuySignalDate(0), DelayTime(0), IsGap(false), GapSize(0);//--------------------------------------------// ① 삼성전자 종목이 아니면 종료Var: Symbol(0);If Symbol <> 005930 Then Begin//--------------------------------------------// ② 전일 종가에서 매수 신호 발생 (PhantomTrend 등 자가 지표 기반)If CrossUp(Close, Ema(C, 20)) ThenBegin BuySignal = True; BuySignalDate = Date;End;//--------------------------------------------// ③ 다음날 매수 준비If BuySignal and (Date > BuySignalDate) ThenBegin // -------------------------------------------------------- // ?? 갭 정의: GapSize = 오늘 시가 - 전일 종가 // 갭업: GapSize > 0 // 갭다운: GapSize < 0 // 비갭: Abs(GapSize) < 전일종가 * 0.001 (예: ±0.1% 이내) // -------------------------------------------------------- GapSize = Open - Close[1]; If AbsValue(GapSize) >= Close[1] * 0.001 Then IsGap = True; // 갭 발생 Else IsGap = False; // 비갭 // -------------------------------------------------------- // ========== [A] 갭일 경우 ========== If IsGap = True Then Begin // 갭업 / 갭다운 판단 If Open > Close[1] Then DelayTime = BuyDelayGapUp; // 09:10 Else DelayTime = BuyDelayGapDown; // 09:20 // 대기시간 이후 If Time >= DelayTime Then Begin // 가격 재확인 3조건 If (High >= High[1]) OR (Close >= Close[1]) OR (Low > Low[1]) Then Begin Buy("AutoBuy_Gap", AtMarket, Def, 0); BuySignal = False; BuySignalDate = 0; End; End; End; // ========== [B] 비갭일 경우 ========== If IsGap = False Then Begin // 지정된 시간 구간에서만 진입 허용 If Time >= NoGapBuyStart and Time <= NoGapBuyEnd Then Begin // 1) 최소 09:10 이후 조건 If Time >= 0910 Then Begin // 2) 오늘 양봉(현재가 > 시가)일 때만 매수 If Close > Open Then Begin Buy("AutoBuy_NoGap", AtMarket, Def, 0); BuySignal = False; BuySignalDate = 0; End; End; End; End;End; // End of BuySignal sectionEnd; // End of Symbol <> "005930"
프로필 이미지
dedoyes
2025-12-07
342
글번호 228742

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

프로필 이미지
조지1
2025-12-06
34
글번호 228737
0
답변완료

14시 0.12체결(저점 0.09 이상) , 개장후 0.12체결(시가 0.12 이상)

문의 1)데이트레이딩이며, 옵션 매수거래 용도입니다.140000 이후부터행사가 중 옵션가격 0.12 체결이 발생하면 그 행사가의 당일 저점을 확인합니다.당일저점이 0.09 이상이였을 경우에만 매수주문 합니다( 그 행사가의 당일 저점이 0.08 이하면 주문실행하지 않습니다). - 거래횟수 : 1회 - buy 주문 : 지정가 0.12 // 상대매도+5호가도 수식 요청드립니다. - 수량 : 5개 - 익절 : 1.99 - 손절 : 0.08 - end of day : 151800문의 2)데이트레이딩이며, 옵션 매수거래 용도입니다.084500 이후부터행사가 중 옵션가격 0.12 체결이 발생하면그 행사가의 시가를 확인합니다.당일시가가 0.12 이상이였을 경우에만 매수주문 합니다( 그 행사가의 당일 시가가 0.11 이하면 주문실행하지 않습니다). - 거래횟수 : 1회 - buy 주문 : 지정가 0.12 // 상대매도+5호가도 수식 요청드립니다. - 수량 : 5개 - 익절 : 1.00 - 손절 : 0.02 - end of day : 151800
프로필 이미지
좌오비우오비
2025-12-05
231
글번호 228693

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

프로필 이미지
너른
2025-12-03
39
글번호 228647
답변완료

상품선물 종목에 대한 호가 정보 조회 방법 문의

각 호가별 잔량, 건수 및 총 잔량, 총 건수를 조회하는게 가능한 지, 가능하다면 어떻게 하면 되는 지 문의 드립니다.아직 해보진 않았는데 askTotalAmount, bidTotalCount, BidAmount(nLevel) 등으로 조회하면 될까요?그리고 함수나 변수만 제공되고 값은 사실상 제공이 잘 되는 지 여부도 궁금합니다.언제나 많은 수고 해주시는 노고에 미리 감사드립니다.
프로필 이미지
온고지신
2025-12-03
174
글번호 228613

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

프로필 이미지
2ba2
2025-11-28
2
글번호 228475
답변완료

챗 GPT로 짠 코드인데 한번만 체크 부탁드립니다.

// =============================================// DailyPL_Logger : 계좌 일별 손익 로그 전략// - Account1 전체 평가금액 기준// - 일별 손익 <= MaxLossToday 이면 로그 1회 기록// =============================================// ---- 전역 변수 ----var StartEquity = 0; // 오늘 시작 기준 계좌 평가금액var StartDate = 0; // YYYYMMDD 형태 정수var AlertLogged = false; // 오늘 경고 로그 남겼는지 여부// ---- 외부변수 기본값 (외부변수 안 쓰면 이 값 사용) ----// MaxLossToday : 오늘 허용 손실 한도 (음수 값)// LogFileName : 로그 파일 이름 또는 전체 경로if (typeof MaxLossToday === "undefined") { MaxLossToday = -3000000; // 예: -3,000,000원}if (typeof LogFileName === "undefined") { // 파일명만 쓰면 Spot\\Export 폴더에 생성됨 (예스스팟 매뉴얼 설명) LogFileName = "DailyLossAlert.log";}// ---- 날짜 정수(YYYYMMDD) 만들기 ----function getTodayInt() { var now = new Date(); var y = now.getFullYear(); var m = now.getMonth() + 1; var d = now.getDate(); return y * 10000 + m * 100 + d;}// ---- 로그에 찍을 타임스탬프 문자열 만들기 ----function getTimestampString() { var now = new Date(); var y = now.getFullYear(); var m = now.getMonth() + 1; var d = now.getDate(); var hh = now.getHours(); var mm = now.getMinutes(); var ss = now.getSeconds(); function pad(n) { return (n < 10 ? "0" : "") + n; } return y + "-" + pad(m) + "-" + pad(d) + " " + pad(hh) + ":" + pad(mm) + ":" + pad(ss);}// ---- 하루 시작 기준값 초기화 ----function initDailyEquity() { // Account1 전체 잔고 평가금액 합 (0,0 = 전체/전체) // 예스스팟 매뉴얼: Account.GetTotalAmount(nCategory, nTradeKind) :contentReference[oaicite:1]{index=1} StartEquity = Account1.GetTotalAmount(0, 0); StartDate = getTodayInt(); AlertLogged = false; Main.MessageLog("DailyPL_Logger init : StartEquity=" + StartEquity + ", StartDate=" + StartDate);}// ---- 예스스팟 시작 이벤트 ----function OnStart() { // 하루 기준값 세팅 initDailyEquity(); // 1초(1000ms)마다 OnTimer(1) 호출 Main.SetTimer(1, 1000);}// ---- 타이머 이벤트 ----function OnTimer(nEventID) { if (nEventID != 1) { return; } // 날짜 바뀌었으면 새로 하루 시작으로 보고 기준값 재설정 var today = getTodayInt(); if (today != StartDate) { initDailyEquity(); } // 현재 계좌 전체 평가금액 var currentEquity = Account1.GetTotalAmount(0, 0); var dailyPL = currentEquity - StartEquity; // 조건: 일별 손익 <= MaxLossToday 이고, 아직 로그 안 남겼을 때 if (!AlertLogged && dailyPL <= MaxLossToday) { var msg = getTimestampString() + " DailyPL=" + dailyPL + " (StartEquity=" + StartEquity + ", CurrentEquity=" + currentEquity + ")"; // 파일에 한 줄 출력 // 예스스팟 문서: Main.PrintOnFile(파일, 메시지...) :contentReference[oaicite:2]{index=2} Main.PrintOnFile(LogFileName, msg); // 디버깅창에도 출력 (테스트용) Main.MessageLog("DailyPL_Logger ALERT : " + msg); AlertLogged = true; // 오늘은 한 번만 알림 }}
프로필 이미지
한걸음씩
2025-11-27
302
글번호 228457