반응형
✅ 왜 GUI + 전략 설정 + 알림 연동이 중요한가요?
- CLI 기반 자동매매는 불편하고 직관성이 떨어집니다.
- 전략을 빠르게 바꾸고 결과를 눈으로 보고, 알림을 받을 수 있다면
실전에서 훨씬 유용합니다.
🧩 STEP 1. GUI 기본 레이아웃 구성 (Windows Forms)
🔸 포함 요소
구성 | 설명 |
ComboBox | 전략 선택 (ex. MA, RSI 등) |
DatePicker | 시작일 설정 |
Button | 전략 실행 |
ZedGraphControl | 수익률 차트 시각화 |
ListBox | 실시간 알림 로그 |
📷 GUI 레이아웃 예시
[전략 선택] (MA, RSI 등) [시작일] (2024-01-01) [실행 버튼]
──────────────────────────────
[📊 수익률 그래프 영역 - ZedGraph]
──────────────────────────────
[📋 로그 / 결과 알림 ListBox]
🧠 STEP 2. 전략 설정 UI 코드 예제
C#
string selectedStrategy = comboBoxStrategy.SelectedItem.ToString();
DateTime startDate = dateTimePickerStart.Value;
- 선택된 전략에 따라 다른 계산 방식 실행
- 입력된 날짜부터 데이터 불러와 백테스트
📈 STEP 3. 수익률 자동 시각화 (ZedGraph 연동)
C#
GraphPane pane = zedGraphControl1.GraphPane;
pane.Title.Text = "전략 수익률 추이";
pane.XAxis.Title.Text = "일자";
pane.YAxis.Title.Text = "자산";
PointPairList points = new PointPairList();
for (int i = 0; i < equityCurve.Count; i++)
{
points.Add(i, equityCurve[i]);
}
LineItem curve = pane.AddCurve("누적 수익률", points, Color.Green, SymbolType.Circle);
zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();
📷 수익률 차트 자동 출력
📬 STEP 4. 알림 연동 (Discord Webhook 예시)
🔹 Discord Webhook 설정
- 디스코드 서버 > 설정 > Webhooks → 새 Webhook 생성
- Webhook URL 복사
🔹 C# 코드로 메시지 전송
C#
private void SendDiscordAlert(string message)
{
using (WebClient wc = new WebClient())
{
var data = new System.Collections.Specialized.NameValueCollection();
data["content"] = message;
wc.UploadValues("https://discord.com/api/webhooks/XXX", "POST", data);
}
}
📤 자동 알림 실행 예시
C#
SendDiscordAlert($"✅ 전략 실행 완료!\n전략: {selectedStrategy}\n최종 수익률: {returnRate:F2}%");
🔁 STEP 5. 전략 실행 전체 흐름 요약
[전략 선택 + 날짜 설정]
↓
[실행 버튼 클릭]
↓
[백테스트 수행 → 수익률 계산]
↓
[수익률 차트 시각화 + 알림 전송]
📷 전략 실행 → 수익률 표시 → 알림 전송 전체 다이어그램
✅ 고급 기능 확장 아이디어
기능 | 설명 |
🟢 실시간 조건검색 UI 연동 | 실시간 조건 종목을 화면에서 직접 실행 가능 |
📈 로그 자동 저장 | 전략별 실행 로그를 CSV로 저장 |
🕒 실행 시간 기록 | 전략 실행 시간, 수익률, 종목 등 히스토리 저장 |
🔔 Telegram 연동 | Discord 대신 텔레그램도 쉽게 연동 가능 |
반응형