namespace PineScriptV6 { /// /// Pine Script의 var 선언 변수 및 := 재할당 변수를 저장합니다. /// 봉 간에 상태가 유지됩니다 (inLong, inShort 등). /// public static class PineStateVars { private static readonly Dictionary _vars = new(); /// /// var 선언 전용 — 최초 1회만 초기화 (이미 존재하면 무시) /// public static void Declare(string name, object? initialValue) { if (!_vars.ContainsKey(name)) _vars[name] = initialValue; } /// 일반 대입 / := 재할당 모두 사용 public static void Set(string name, object? value) => _vars[name] = value; public static object? Get(string name) => _vars.TryGetValue(name, out var v) ? v : null; public static bool Has(string name) => _vars.ContainsKey(name); /// 단일 딕셔너리 조회 — Has+Get 이중 조회 대신 사용 public static bool TryGet(string name, out object? value) => _vars.TryGetValue(name, out value); /// 전체 초기화 (재실행 시) public static void Clear() => _vars.Clear(); } }