- 프론트엔드 UI 업데이트 (backtest.html, backtest.js) 엔진 라디오 버튼 통합 관련 반영 - Rust 플러그인(kis_rust_core) 및 컴파일 소스코드 추가 - CLI 백테스트 스크립트 수정 및 최신화 - 기타 스크래치 테스트 스크립트, 로그 요약 마크다운(.md) 등 누락 파일 일괄 반영 - 추가적으로 아직 발견되지 않은 엣지 케이스나 렌더링 오류가 포함되어 있을 가능성이 있음
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
import re
|
|
|
|
with open('templates/backtest.html', 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
# "<th>매수가</th><th>매도가</th><th>수량</th>" 가 있는 줄 끝에 "<th>목표가</th><th>슬리피지%</th>" 추가
|
|
content = content.replace(
|
|
"<th>매수가</th><th>매도가</th><th>수량</th>\n",
|
|
"<th>매수가</th><th>매도가</th><th>수량</th>\n <th>목표가</th><th>슬리피지%</th>\n"
|
|
)
|
|
# 혹시 같은 줄에 <th>손익... 이 이어져있을 수도 있으니 확인
|
|
content = re.sub(
|
|
r'(<th>매수가</th><th>매도가</th><th>수량</th>)',
|
|
r'\1<th>목표가</th><th>슬리피지%</th>',
|
|
content
|
|
)
|
|
|
|
# 중복 교체(위 두 번 적용) 시 방지 위해 원래대로 복구 후 정규식만 쓰기
|
|
with open('templates/backtest.html', 'r', encoding='utf-8') as f:
|
|
original = f.read()
|
|
|
|
new_content = re.sub(
|
|
r'(<th>매수가</th><th>매도가</th><th>수량</th>)',
|
|
r'\1<th>목표가</th><th>슬리피지%</th>',
|
|
original
|
|
)
|
|
# 만약 이미 들어간 곳(실거래 탭)이 있다면 중복될 수 있으므로
|
|
new_content = new_content.replace('<th>목표가</th><th>슬리피지%</th><th>목표가</th><th>슬리피지%</th>', '<th>목표가</th><th>슬리피지%</th>')
|
|
|
|
with open('templates/backtest.html', 'w', encoding='utf-8') as f:
|
|
f.write(new_content)
|
|
|
|
print("done")
|