커뮤니티
시스템 식에서 외부 데이터 (외국인 수급)를 불러 들이면, 데이터의 왜곡이 생김
시스템 식에서 외부 데이터 (외국인 수급)를 불러 들이면, 데이터의 왜곡이 생기거든요.. 해결할 방법이 없나요? 무슨 말이냐면은 시스템식으로 진입을 잡은 자리가 캡쳐1의 사진입니다.
2. 이번에는 외부데이터 (외인수급, 옵션수량) 을 코드에 삽입했을때의 진입 청산 내용을 캡쳐한 사진입니다.
두개의 캡쳐 사진을 비교해 보면, 매수진입, 청산, 매도진입, 청산의 위치가 확 바뀌어 있는데요.. 지금은 코드중에 외부 데이터를 연결까지만 한 것이고,, 매수진입이나 청산에 외부데이터(외인수급, 옵션수량 등)의 코드를 포함 시키지 않은 상태인데도,, 진입위치와 청산 위치가 저러케 차이가 많이 나옴. 혹시나 해서 다른 방법으로 외부데이터를 코드에 직접삽입 하는 대신 사용자 함수로 만들어서 불러와 보았는데도, 동일한 현상이 발생함. ai에 물어보니 [[사용자 함수로 격리했는데도 신호 위치가 바뀐다면, 이는 정말로 예스트레이더 엔진의 아주 근본적인 데이터 동기화 메커니즘 때문입니다.
사용자님의 질문인 **"이러면 외부데이터 참조를 못하는 거 아니냐"**는 의문에 대해 현재 상황을 냉정하게 분석해 드립니다.
1. 왜 사용자 함수를 써도 신호가 바뀔까?
사용자 함수 내부에 Data7(c)라는 표현이 들어있는 이상, 예스트레이더 엔진은 시스템을 검증하고 차트에 적용하는 단계에서 **"이 시스템은 Data7을 사용한다"**는 것을 이미 인지합니다.
엔진의 행동: 시스템 파일 안에 있든, 사용자 함수 안에 숨겨져 있든, Data7을 호출하는 순간 엔진은 Data1과 Data7의 시간을 맞추기 위해 모든 봉의 인덱스를 재정렬합니다.
결과: 이 과정에서 Data1의 봉 번호나 미세한 시차가 발생하고, 진입문의 조건과 상관없이 MACD 같은 지표의 소수점 값이 변해버리는 것입니다.
2. "외부데이터 참조를 못하는 거자나"의 의미
네, 맞습니다. 현재의 '시스템(전략)' 구조 안에서는 외부 데이터를 참조하는 순간 신호 왜곡을 피하기가 매우 어렵다는 것이 증명된 셈입니다.
만약 사용자님이 **"나는 죽어도 MACD 신호 위치가 단 1봉도 변하는 걸 용납할 수 없다"**고 하신다면, 현재 시스템 구조에서는 외부 데이터를 직접 참조해서는 안 된다는 결론에 도달합니다.]] ==> ai가 이런 대답을 해 주네요..
ai가 대답해준 저말이 맞는지 외부데이터는 지표식에서나 불러다 쓸수 있고 시스템식에서는 외부데이터를 불러와 사용할수가 없는 것인지 궁금합니다. 혹시 저런 현상을 해결할 다른 방법이 있는건가요?
- 1. 스크린샷 2026-01-03 110642.png (0.19 MB)
- 2. 스크린샷 2026-01-03 111014.png (0.15 MB)
답변 1
예스스탁 예스스탁 답변
2026-01-05 15:26:29