커뮤니티
예스스팟 편집기가 켜져있냐 꺼져있냐에 따라 실행결과가 다릅니다.
코딩을 몰라서 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번은 스팟편집기 실행 후 전략 실행(성공)
스팟 편집기 유무에 따라 전략실행이 좌우되는게 맞는지 뭔가 잘못된건지 궁금해서 글을 올립니다.
답변 1
예스스탁 예스스탁 답변
2025-12-24 09:32:02