답변완료
엑셀 객체 사용 방법 및 챠트 데이터, 옵션 객체 사용법 등 문의
앞의 답변에 이어서 질문 드립니다.예스스팟 자체에서 만들어낸 데이터를 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(예:선물)에서 새로운 봉이 발생했을 때 해당 복수의 옵션 종목들의 데이타들을 조회하려면 어떻게 해야 하나요? 메리 크리스마스 되세요~
답변완료
익절시 지정가 주문이 가능하도록 코드 수정부탁드립니다
업무에 수고가 많으신데.....먼저 감사합니다자동을 매매를 돌리면 익절에서 시장가 매도 주문으로 처리되고 다 팔렸는데도 다시 매도 주문이 계속해서 발생하는데 익절시지정가 매도 주문이 되도록 부탁드립니다.바쁘시더라도 잘 살펴보시고 꼭 부탁드리겠습니다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
100
글번호 228995
답변완료
참조데이터 지원 여부 및 확장 챠트 기능 문의
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
129
글번호 228974