Cách tạo cBot bằng ChatGPT
Trí tuệ nhân tạo tạo sinh đang phát triển mạnh mẽ và việc tạo ra một cBot mà không cần viết một dòng code nào không còn là giấc mơ nữa, mà đã trở thành hiện thực. Trong bài viết này và video tương ứng, chúng tôi sẽ hướng dẫn bạn cách tạo một cBot bằng ChatGPT. Chúng tôi cũng sẽ hướng dẫn cách đánh giá mã cBot từ ChatGPT và đảm bảo bot được tạo bởi AI có thể vận hành chỉ trong vài phút.
Tạo câu nhắc chính xác
Cho mục đích của video này, chúng tôi sẽ sử dụng mô hình GPT-3.5. Nó miễn phí cho tất cả mọi người và mặc dù thiếu một số tính năng so với các mô hình GPT mới hơn, nó vẫn cho kết quả rất tốt.
Phần đầu tiên của việc tạo một cBot tuyệt vời với ChatGPT là nhập câu nhắc chính xác. Dưới đây là một vài quy tắc để tạo ra một câu nhắc tốt:
1. Khuyến khích ChatGPT cố gắng đóng vai một nhà phát triển cBot chuyên nghiệp.
Bạn có thể làm điều này bằng cách nhập một câu nhắc ban đầu với những từ như "Hãy chơi một trò chơi trong đó bạn là một nhà phát triển thuật toán có trình độ cho cTrader..." hoặc đại loại như "Hãy giả vờ là một nhà phát triển chuyên nghiệp về cBot cho cTrader..."
2. Hãy cụ thể.
Bạn cung cấp càng nhiều chi tiết cho ChatGPT, kết quả càng tốt. Những câu nhắc như "Tạo cho tôi một cBot có lợi nhuận..." sẽ dẫn đến nhiều sự nhầm lẫn từ phía AI.
Chúng tôi khuyên bạn nên chỉ định từng phần của cBot của bạn càng chính xác càng tốt. Hãy cân nhắc những tham số nó nên có, những điều kiện nó nên phản ứng, và những hoạt động giao dịch nó nên thực hiện. Nếu bạn đang tạo một bảng giao dịch tùy chỉnh, hãy cân nhắc những phần tử UI nó nên có và nơi chúng nên được đặt.
3. Hãy lịch sự và tôn trọng.
Điều này có thể nghe có vẻ ngạc nhiên nhưng nghiên cứu đã chỉ ra rằng việc lịch sự với ChatGPT thực sự cải thiện chất lượng đầu ra. Bao gồm những cụm từ như "Tôi sẽ rất cảm kích nếu...", "Sẽ rất tốt nếu..." hoặc những câu tương tự.
Tạo một cBot giao dịch dựa trên màu sắc
Để bắt đầu, chúng ta chỉ muốn tạo một cBot đơn giản đặt một lệnh thị trường mới vào mỗi lần mở nến. Hướng của lệnh phụ thuộc vào việc nến trước đó là xanh hay đỏ. Nếu nến là đỏ, chúng ta muốn đặt lệnh bán và nếu nó là xanh, chúng ta muốn đặt lệnh mua.
Đây là cách chúng ta có thể làm điều đó bằng cách cung cấp các câu nhắc chính xác.
- Câu mở đầu: "Hãy giả vờ là một nhà phát triển chuyên nghiệp về cBot cho cTrader, viết mã rất đơn giản và dễ hiểu."
- Yêu cầu cụ thể: "Tạo một cBot. Trên mỗi nến, nó nên đặt một lệnh thị trường mới mà không có cơ chế bảo vệ. Khối lượng lệnh (tính bằng đơn vị) nên là một tham số có thể tùy chỉnh. Một lệnh mua nên được đặt nếu nến trước đó là xanh. Một lệnh bán nên được đặt nếu nến trước đó là đỏ."
- Lịch sự: "Tôi sẽ rất cảm kích nếu bạn thực hiện nhiệm vụ này, cảm ơn bạn!"
Mã chính xác mà ChatGPT đưa ra có thể khác nhau nhưng trong mọi trường hợp, chúng ta có thể đơn giản sao chép và dán nó vào cửa sổ trình soạn thảo mã để xem liệu nó có chính xác và để xem liệu nó có thực hiện logic mong muốn của chúng ta hay không.
Thông thường, chỉ có một vài lỗi không quan trọng cần sửa. Trong trường hợp của chúng ta, điều duy nhất cần sửa là thay đổi đối tượng Symbol trong phương thức ExecuteMarketOrder thành chuỗi SymbolName. Đây là mã cuối cùng chúng ta có được sau khi thực hiện tất cả điều này.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
Như thường lệ, chúng ta lưu và xây dựng bot. Trong ứng dụng Trade, chúng ta gắn phiên bản của bot vào biểu đồ và xem liệu nó có hoạt động như dự định không. Bot hoạt động hoàn hảo và phản ứng với màu sắc của các nến trước đó bằng cách đặt các lệnh mới. Khối lượng lệnh cũng là một tham số có thể tùy chỉnh.
Ghi chú
Lưu ý rằng chúng ta thậm chí không cần phải đọc mã được xuất ra bởi ChatGPT. Chúng ta chỉ cần sửa mọi cảnh báo hiển thị trong trình soạn thảo mã và sau đó khởi chạy bot.
Tạo một cBot giao dịch theo xu hướng
Mặc dù cBot trước đó hoạt động rất tốt, nó sử dụng logic đơn giản và không chú ý đến xu hướng thị trường. Chúng ta sẽ thử tạo ra một thứ phức tạp hơn bằng cách sử dụng cùng một cách tiếp cận để nhắc như trước đây.
- Câu mở đầu:
"Hãy tưởng tượng bạn là một nhà phát triển cBot có kỹ năng cho cTrader. Tôi sẽ là khách hàng của bạn." - Yêu cầu cụ thể: "Tạo một cBot. Trên mỗi nến, nó nên kiểm tra xem đường trung bình động 50 ngày có ở trên hay dưới đường trung bình động 200 ngày. Nếu nó ở trên, bot nên đặt lệnh mua. Nếu nó ở dưới, bot nên đặt lệnh bán. Bot không nên đặt lệnh nếu đã có một vị thế mở theo cùng hướng. Khối lượng lệnh nên là một tham số có thể tùy chỉnh."
- Lịch sự: "Cảm ơn bạn vì sự giúp đỡ!"
Một lần nữa, chúng ta sẽ đơn giản sao chép và dán mã được ChatGPT cung cấp vào cửa sổ trình soạn thảo mã và thử xây dựng bot. Đây là tất cả các lỗi xây dựng chúng ta nhận được:
- Mã đang sử dụng thành viên API
MarketSeriesđã lỗi thời. Chúng ta có thể thay thế nó bằng bộ sưu tậpBars.ClosePrices. - Chúng ta một lần nữa phải thay thế đối số
SymbolbằngSymbolName. - Chúng ta cũng nên xóa một số đối số không cần thiết từ các phương thức
ExecuteMarketOrdervì chúng không phù hợp với bất kỳ phương thức nạp chồng nào có sẵn.
Chúng ta cũng có thể xem xét cách logic của chúng ta được thực hiện. Trong phương thức OnStart(), chúng ta khởi tạo các đường trung bình động của mình. ChatGPT đã tạo các khoảng thời gian trung bình động như các tham số có thể tùy chỉnh mặc dù chúng ta không yêu cầu nó làm vậy. Chúng ta có thể để nguyên như vậy mà không ảnh hưởng đến logic cốt lõi.
Tuy nhiên, trong phương thức OnBar(), chúng ta có thể thấy rằng bot chỉ đặt các lệnh mới khi không có vị thế mở (Positions.Count ==0). Đây không phải là điều chúng ta muốn vì chúng ta cũng muốn kiểm tra hướng vị thế. Chúng ta có thể sửa đổi nhẹ mã để cuối cùng có được bot sau đây.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
Chúng ta đã sử dụng phương thức Positions.FindAll(string label) để lấy tất cả các vị thế với một nhãn nhất định và tính toán số lượng của chúng.
Khi chúng ta xây dựng bot, chúng ta có thể thêm nó vào biểu đồ. Chúng ta cũng sẽ thêm các đường trung bình động 50 và 200 ngày để có thể đánh giá hành vi của cBot. Sau khi chúng ta chờ một chút, chúng ta có thể thấy rằng bot hoạt động như mong đợi. Các lệnh mới được đặt khi cần thiết nhưng không có nhiều hơn một vị thế mở theo một hướng nhất định.
Tạo cBot bằng AI khác
Tổng quan
ChatGPT có thể là một công cụ hữu ích khi bạn cần nhanh chóng tạo một cBot với logic được xác định chính xác. Mặc dù ChatGPT tạo ra một số lỗi, nhưng chúng thường không đáng kể và có thể được sửa nhanh chóng.
