
아주 요상한 문제에 걸려 고생중인데, 봇이 가동하면서 봇 설정중 전략파일만 못읽어 주구장창 'SampleStrategy'만 찍어댄다. uvicorn 콘솔에는 설정읽는 함수가 지정한 전략을 정상적으로 로드하는 게 확인된다. 근데, 이넘의 도커 로그에는 그넘의 샘플샘플샘플.
일단 이 문제를 나중으로 미루고 다른 기능을 추가하려고 한다.
이 문제는 아직 미해결이니 나중으로 미루고, Freqtrade에는 trade말고 webserver모드도 있는데, 홈페이지에서 사용자가 이를 선택하여 사용할 수 있도록 하는 건 어떤가?
이런 제안에 재민이가
좋은 제안입니다! Freqtrade의 webserver 모드를 홈페이지에서 선택할 수 있게 하는 것은 기술적으로 충분히 가능하며, "관전 모드" 또는 "분석 모드"라는 이름으로 제공하면 사용자에게 유용한 기능이 될 수 있습니다. 하지만 trade 모드와 무엇이 다른지 명확히 이해하고 구현해야 사용자의 혼란(예: "왜 봇이 매수를 안 하죠?")을 막을 수 있습니다. 장단점과 구현 방법을 정리해 드립니다.
1. 모드 vs 모드 차이점
| 특징 | Trade Mode (기본) | Webserver Mode (제안) |
|---|---|---|
| 실행 명령어 | freqtrade trade ... |
freqtrade webserver ... |
| 자동 매매 | O (작동함) | X (작동 안 함) |
| 전략 계산 | O (계속 계산함) | X (계산 안 함) |
| WebUI 접속 | O (가능) | O (가능) |
| CPU 사용량 | 높음 (전략 연산 때문) | 매우 낮음 (단순 서버 역할) |
| 주 용도 | 실전/모의 투자 | 데이터 분석, 로그 확인, 백테스팅 |
핵심:
webserver모드를 선택하면 봇은 절대 스스로 매수/매도를 하지 않습니다. 오직 사용자가 WebUI에 접속해서 차트를 보거나 수동으로 조작하기 위해 켜두는 상태입니다.
2. 홈페이지에 적용 시 기획 가이드
사용자에게 "Webserver 모드"라고 그대로 보여주면 어렵습니다. 대신 "실행 모드 선택" 기능을 아래와 같이 UX적으로 풀어내는 것을 추천합니다.
- 옵션 A: 자동매매 모드 (Trade Mode)
- 설명: "전략에 따라 자동으로 코인을 사고 팝니다."
- 옵션 B: 관전/대기 모드 (Webserver Mode)
- 설명: "매매는 하지 않고 차트와 지난 기록만 확인합니다. (자원 절약)"
3. 구현 방법 (Backend & DB)
기존 구조에서 크게 바꿀 것은 없으며, 컨테이너 실행 명령어(command)만 분기 처리하면 됩니다.
1단계: DB 스키마 추가 ()
사용자가 모드를 선택해서 저장해야 하므로, Instance 테이블에 mode 컬럼이 필요합니다.
# domain/instance/instance_schema.py
class InstanceCreate(BaseModel):
# ... 기존 필드 ...
mode: str = "trade" # 'trade' 또는 'webserver' (기본값: trade)
2단계: 백엔드 실행 로직 수정 ()
create_instance 또는 start_instance 함수에서 mode 값에 따라 명령어를 다르게 만듭니다.
# instance_router.py
# ...
# 사용자 선택에 따라 명령어 결정
freq_command = "trade" if instance.mode == "trade" else "webserver"
container = client.containers.run(
image="my-freqtrade-image:latest",
# [핵심] command 부분에 변수 적용
command=f"{freq_command} --logfile ... (나머지 옵션 동일) ...",
# ...
)
# ...
4. 추천: 굳이 모드를 나누지 않는 방법 (더 나은 UX)
사실 trade 모드로 켜놓고도 webserver 모드처럼 쓸 수 있는 방법이 있습니다. Freqtrade 설정(config.json)에는 "initial_state": "stopped" 라는 옵션이 있거나, 실행 시 봇을 정지 상태로 시작할 수 있습니다.
제안하는 SaaS UX (MVP 단계 추천):
- 무조건
trade모드로 실행합니다. (그래야 사용자가 원할 때 바로 시작 버튼을 눌러 매매할 수 있음) - 대신, 봇이 처음 켜질 때 "일시 정지(Stopped)" 상태로 켜지게 합니다.
- 이렇게 하면
webserver모드처럼 자원을 적게 먹으면서 WebUI는 접속 가능합니다. - 사용자가 "이제 돈 벌어봐!" 하고 싶을 때 WebUI나 대시보드에서 [Start]만 누르면 즉시 매매가 시작됩니다.
webserver모드는 나중에 "백테스팅 전용 인스턴스"를 만들 때 사용하는 것이 더 적합합니다.
✅ 결론
- 구현 가능 여부: 예, 아주 쉽습니다. 명령어 한 단어만 바꾸면 됩니다.
- 추천 여부: 비추천합니다.
- 이유 1: 사용자가 "Webserver 모드"로 켜놓고 "왜 매매 안 해?"라고 클레임 걸 확률이 높습니다.
- 이유 2:
trade모드로 켜고 [Stop] 상태로 두는 것이 기능적으로webserver모드와 거의 같으면서, 언제든 매매로 전환할 수 있어 더 유연합니다.
현재 미해결된 문제(설정 파일 로드 등)를 먼저 해결하시고, 이 기능은 나중에 "백테스팅 서비스"를 런칭할 때 도입하시는 것을 권장합니다!
해결못한 거나 마저 해결하고 넘어가라고 한다. 니가 사장해라 사장해~
'Freqtrade' 카테고리의 다른 글
| 바나나가 영어로 뭐지? (0) | 2026.01.13 |
|---|---|
| 2인분 같은 1인분 봇 추가요~ (0) | 2026.01.13 |
| 26년 새해에도 진행중인 프로젝트 (0) | 2026.01.01 |
| Freqtrade 병아리반 (0) | 2025.12.24 |
| Docker로 빠르게 시작해보는 Freqtrade (0) | 2025.12.19 |