Đồ thị Nến Nhật Tài chính (Candlestick Chart) từ Con số 0
Viết hàm plot_candlestick_chart(dates: list[str], opens: list[float], highs: list[float], lows: list[float], closes: list[float]) -> matplotlib.figure.Figure:
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: patches rectangle, vlines.
Nội dung đề bài
Mục tiêu kiến thức
- Hiểu cấu trúc giá nến Nhật: Mở cửa (Open), Cao nhất (High), Thấp nhất (Low), Đóng cửa (Close).
- Tự dựng thân nến (Real Body) bằng hình chữ nhật matplotlib.patches.Rectangle và râu nến (Shadows/Wicks) bằng ax.vlines().
Mô tả bài toán
Viết hàm plot_candlestick_chart(dates: list[str], opens: list[float], highs: list[float], lows: list[float], closes: list[float]) -> matplotlib.figure.Figure:
- Tạo fig, ax = plt.subplots(figsize=(9, 5)).
- Với mỗi phiên i ∈ [0, N-1]:
- Màu nến: nếu closes[i] >= opens[i]: xanh lá "green" (phiên tăng); ngược lại: đỏ "red" (phiên giảm).
- Vẽ râu nến (High - Low): ax.vlines(i, lows[i], highs[i], color=color, linewidth=1.5).
- Vẽ thân nến (Open - Close): hình chữ nhật có đáy tại min(open, close) và chiều cao |close - open|:
rect = plt.Rectangle((i - 0.3, min(opens[i], closes[i])), 0.6, abs(closes[i] - opens[i]), facecolor=color, edgecolor=color). Thêm vào ax.add_patch(rect).
- Đặt giới hạn trục: ax.set_xlim(-0.5, N - 0.5).
- Đặt nhãn trục X: ax.set_xticks(range(N)), ax.set_xticklabels(dates).
- Đặt tiêu đề: "OHLC Candlestick Chart".
- Trả về fig.
Input
- Các tham số truyền vào hàm/lớp plot_candlestick_chart hoặc dữ liệu đầu vào theo định dạng mô tả.
Output
- Kết quả trả về của hàm/lớp plot_candlestick_chart hoặc dữ liệu in ra màn hình theo đúng đặc tả.
Ràng buộc
- Thời gian chạy tối đa: 1000ms.
- Giới hạn bộ nhớ: 256MB.
- Dữ liệu đầu vào tuân thủ đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
plot_candlestick_chart(dates=['Day 1', 'Day 2', 'Day 3'], opens=[100.0, 105.0, 102.0], highs=[108.0, 107.0, 106.0], lows=[98.0, 101.0, 95.0], closes=[105.0, 102.0, 96.0])
Output
True
Giải thích
Hàm được gọi với các tham số mẫu trên và trả về kết quả chính xác theo yêu cầu.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
