import os import sys sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) from kis_trader.engine.tail_engine import init_rust_session, clear_rust_session import kis_rust_core def run_test(): session_id = "test_session_123" # 가상의 양봉 데이터 mock_candles = { "005930": [ {"candle_time": "20260901093000", "open": 60000, "high": 60500, "low": 59500, "close": 59800, "rsi": 50.0}, {"candle_time": "20260901093100", "open": 59800, "high": 61000, "low": 59000, "close": 60800, "rsi": 65.0}, {"candle_time": "20260901093200", "open": 60800, "high": 61500, "low": 60500, "close": 61200, "rsi": 70.0}, {"candle_time": "20260901093300", "open": 61200, "high": 62000, "low": 61000, "close": 61500, "rsi": 75.0}, ] } print("1. init_rust_session 호출") init_rust_session(session_id, mock_candles, None) print("2. 파라미터 생성") tp = kis_rust_core.TailParams( 930, 1500, 15.0, 3, 1000.0, 78.0, 0.01, 0.5, 0.003, True, 0.03, 0.05, 0.0, 0.0, 0.0, 0.0, 0, 200000.0, 0.015 ) print("3. run_engine_trial_tail 호출") try: trades = kis_rust_core.run_engine_trial_tail(session_id, tp) print(f"반환된 trades 수: {len(trades)}") for t in trades: print(f" - [{t.code}] {t.buy_time} ~ {t.sell_time} | pnl: {t.pnl_pct:.2f}% | reason: {t.reason}") except Exception as e: print(f"에러 발생: {e}") print("4. clear_rust_session 호출") clear_rust_session(session_id) if __name__ == "__main__": run_test()