커뮤니티

예스스팟 Q&A

답변완료

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

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

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

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

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

프로필 이미지
오전만트레이딩
2025-12-16
21
글번호 229081
답변완료

익절시 지정가 주문이 가능하도록 코드 수정부탁드립니다

업무에 수고가 많으신데.....먼저 감사합니다자동을 매매를 돌리면 익절에서 시장가 매도 주문으로 처리되고 다 팔렸는데도 다시 매도 주문이 계속해서 발생하는데 익절시지정가 매도 주문이 되도록 부탁드립니다.바쁘시더라도 잘 살펴보시고 꼭 부탁드리겠습니다if (nEventID == 1) { var num = Account1.GetTheNumberOfBalances(); // 장중 09:00 ~ 09:02 if (HHMMSS >= 090000 && HHMMSS < 090300) { if (num >= 1) { // 계좌 전체 +5% 수익 시 전량 매도 if (Account1.GetBalanceETCinfo(100) >= V1 * 1.05) { Main.KillTimer(1); for (var i = 0; i < num; i++) { Account1.SetBalance(i); if (Account1.Balance.count > 0) { // 시장가 매도 Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, 0, 1); } } } else { // 개별 종목 익절/손절 for (var i = 0; i < num; i++) { Account1.SetBalance(i); if (Account1.Balance.count > 0) { // 손절 조건 (손해일 때): 무조건 시장가 매도 if (Account1.Balance.current <= Account1.Balance.avgUnitCost * 손절) { Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, 0, 1); } // 익절 조건 (수익일 때): 시장가 또는 지정가 매도 가능 else if (Account1.Balance.current >= Account1.Balance.avgUnitCost * 익절) { // 시장가 매도 예시 //Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, 0, 1); // 지정가 매도 예시 (주석 해제 시 지정가 매도됨) Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, Account1.Balance.current, 1); } } } } } }
프로필 이미지
강자친구
2025-12-15
82
글번호 228995
답변완료

화면꺼짐

예스스팟 스튜디오 화면에서기존 4개파일이 있는 중 한 파일을 작성 후 검증하면 화면이 꺼져버립니다.그래서 먼저 저장해보니 전략 밑부분에 저장은 되어 있읍니다.다시 화면 켜서 저장된 걸 불러서 검증해봐도 화면이 또 꺼집니다.원인과 해결책 부탁합니다.
프로필 이미지
ksks
2025-12-14
75
글번호 228990
답변완료

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

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
112
글번호 228974

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

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

GetBalanceETCinfo 관련 질문

안녕하세요,Spot의 GetBalanceETCinfo로 '익일예탁자산'을 return하려고 하는데 GetBalanceETCinfo 뒤에 붙는 번호가 어떻게 되나요?NH선물, 한투가 다른가요?
프로필 이미지
민현종
2025-12-12
62
글번호 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
96
글번호 228742