커뮤니티
프로그램 다운 문의 2
약간 다른 방식의 실행파일입니다. 마찬가지로 3개 정도는 잘 다운이 안되는데 4개부터는 30분정도 되면 다운됩니다.
방식 : 워밍업이 끝나면 최대 208개 차트객체를 세션 내내 동시 보유하고, Main_OnBarAppended로 실시간 봉을 받는 구조입니다. 여기에 3종목을 동시에 돌리면 최대 624개 객체가 동시에 떠 있게 됩니다. 뭐가 문제가 있는건지 확인 부탁드립니다.
// [2안 진단본 - 예스스팟 문의용 최소 구조]
function Main_OnStart()
{
// 타임프레임 목록(분봉110+틱봉98=208개) 순서대로 워밍업 요청 시작
processNext();
}
function processNext()
{
var ChartSet = new ReqChartItem(MARKET_DATA_CODE);
ChartSet.code = MARKET_DATA_CODE;
ChartSet.period = CHART_PERIOD_MINUTE; // 또는 CHART_PERIOD_TICK
ChartSet.cycle = 현재타임프레임;
ChartSet.count = 워밍업봉수; // 큰 창(최대 4000)
Main.ReqChartEx(ChartSet);
}
function Main_OnRcvChartEx(ChartEx)
{
// [1안과의 핵심 차이] 여기서 삭제하지 않고 계속 들고 있음
chartObjs[현재타임프레임라벨] = ChartEx;
processNext(); // 다음 타임프레임 워밍업으로. 208개 끝나면 워밍업 종료.
}
function Main_OnBarAppended(ChartEx, nData)
{
// [2안 핵심] 보유중인 208개 차트객체 중 하나에서 새 봉이 완성될 때마다
// 예스스팟이 자동으로 호출 - 별도 재요청/폴링 없이 실시간 감지
var 라벨 = ChartEx에 매칭되는 타임프레임 찾기;
var high = ChartEx.GetHigh(nData, 1);
var low = ChartEx.GetLow(nData, 1);
// (신호계산 없이 수신만 확인)
}
// [부가기능] 30분마다 "임시" 차트객체를 하나 더 받아서(원본은 안 건드림)
// 최신 데이터로 대조하고, 그 임시객체만 지연삭제 - 온/오프 가능
function attemptRefresh()
{
var TempChartSet = new ReqChartItem(MARKET_DATA_CODE);
TempChartSet.code = MARKET_DATA_CODE; TempChartSet.cycle = 대상타임프레임;
Main.ReqChartEx(TempChartSet); // 응답 오면 대조 후 임시객체만 RemoveObject
}