Đối với những người mới bắt đầu giao dịch định lượng và giao dịch theo chương trình, những khó khăn lớn nhất trong việc học là gì? nói chung, có một số lý do:
Với sự phát triển của công nghệ AI, các giải pháp cho những vấn đề này có thể được tìm thấy ở một mức độ nào đó.ChatGPTcó thể được sử dụng như một công cụ để học tập thương mại định lượng, nghiên cứu và tạo ra. với nền tảng FMZ
Mặc dù khả năng hiện tại của ChatGPT đã rất mạnh mẽ, và nó có thể hiểu được câu hỏi của con người rất tốt, câu trả lời nó cung cấp vẫn rất nhạy cảm với các yếu tố nhưtính đầy đủ và chính xác của mô tả câu hỏi. Nếu kịch bản hoặc nội dung câu hỏi được mô tả không chính xác, ChatGPT có thể không thể cung cấp câu trả lời hoàn hảo. Do đó, khi sử dụng nó để giải quyết một số vấn đề, cần phải cố gắng thể hiện chúng một cách chính xác và hoàn chỉnh.
Tiếp theo, chúng ta sẽ sử dụng chức năng ChatGPT của trình soạn thảo chiến lược nền tảng FMZ để giải quyết một vấn đề thiết kế mã.
Nhấp chuột phải vào không gian trống, chọn tùy chọn ChatGPT và nhấp để gọi raChatGPT
, hoặcsử dụng Ctrl+K để gọi ChatGPT.
Nếu tôi là một người mới bắt đầu giao dịch định lượng, tôi có một yêu cầu:
Sử dụng đường K 1 phút để tổng hợp bất kỳ dữ liệu đường K thời gian nào.
Là một người mới bắt đầu, khả năng lập trình của tôi kém, và tôi thực sự không biết làm thế nào để viết một thuật toán như vậy. Trong quá khứ, tôi chỉ có thể tìm kiếm thông tin và yêu cầu các chuyên gia giúp đỡ. Bây giờ, với ChatGPT, tôi có thể hỏi nó câu trả lời trực tiếp. Tất nhiên, như đã đề cập ở trên, mô tả yêu cầu trực tiếp:
Vì vậy, hãy làm cho mô tả yêu cầu này một chút đầy đủ hơn:
> On the FMZ platform, calling the exchange.GetRecords(60) function can obtain one-minute K-line data, and the data structure is: [{
> Time : Millisecond timestamp, // Start time of the period
> Open : 1000,
> High : 1500,
> Low : 900,
> Close : 1200,
> Volume : 1000000
> }, ...]
> Please design an algorithm that uses one-minute K-line data to synthesize any minute's K-line data. For periods that can be divided by 60 minutes, start counting from the whole point of 0 minutes. Implement it in Javascript language, write this algorithm as a separate function, test it in the function main() and use $.PlotRecords(KLineData, "name") for drawing.
Sau khi gọi ChatGPT, bạn có thể điền vào nội dung câu hỏi tối ưu được đề cập ở trên.
ChatGPT bắt đầu hoạt động
Chờ nó viết xong.
Đôi khiChatGPT
thêmchúng ta chỉ cần loại bỏ dòng đầu tiên và cuối cùng. vì tôi đã yêu cầu nó sử dụng$.PlotRecords(KLineData, "name")
Mục đích của việc vẽ là để xác minh liệu dữ liệu đường K được tổng hợp bởi mã Chat GPT
Mã được cung cấp bởiChatGPT
Tôi đặt thời gian K-line mặc định của hệ thống backtesting là 5 phút, được sử dụng để so sánh với biểu đồ K-line được rút ra từ dữ liệu K-line được tính toán bởi thuật toán Chat GPT
Trước tiên, có vẻ như thuật toán được đưa ra bởi ChatGPT để tổng hợp K-line 5 phút từ K-line 1 phút là chính xác.
/*
Synthesize arbitrary minute K-line data
@param {Array} records - One-minute K-line data
@param {Number} period - Synthetic period, unit in minutes
@return {Array} - Synthesized K-line data
*/
function composeKLineData(records, period) {
var result = [];
var index = 0;
var open = records[0].Open;
var high = records[0].High;
var low = records[0].Low;
var close = records[0].Close;
var volume = records[0].Volume;
var time = records[0].Time - records[0].Time % (period * 60 * 1000);
for (var i = 1; i < records.length; i++) {
var record = records[i];
if (record.Time < time + period * 60 * 1000) {
high = Math.max(high, record.High);
low = Math.min(low, record.Low);
close = record.Close;
volume += record.Volume;
} else {
result[index] = {
Time: time,
Open: open,
High: high,
Low: low,
Close: close,
Volume: volume
};
index++;
open = record.Open;
high = record.High;
low = record.Low;
close = record.Close;
volume = record.Volume;
time = record.Time - record.Time % (period * 60 * 1000);
}
}
result[index] = {
Time: time,
Open: open,
High: high,
Low: low,
Close: close,
Volume: volume
};
return result;
}
function main() {
var records = exchange.GetRecords(60);
var kLineData = composeKLineData(records, 5); // Synthesize 5-minute K-line data
$.PlotRecords(kLineData, "KLineData");
}
FMZcomposeKLineData
chức năng trong mã chỉ được viết bởi ChatGPT, nhấp chuột phải để hiển thị menu:
Ngay cả ChatGPT cũng có thể cung cấp các đề xuất tối ưu hóa và mã tối ưu hóa.
Bản cập nhật trình soạn thảo FMZ, ngoài việc thêm chức năng ChatGPT. Nó cũng tối ưu hóa và nâng cao trải nghiệm lập trình trực tuyến, thêm nhiều chức năng tiện lợi.
Nhấp chuột phải vào khoảng trống hoặc khi chọn mã để hiển thị menu.
Nó hiển thị các kết hợp phím tắt khác nhau.
Đổi tên Symbol để sửa đổi tên biến địa phương.
Nó chỉ thay đổi tên biếnrecords
trongmain
chức năng của hình trên.
Thay đổi tất cả sự xuất hiện, chọn tên biến, từ, và chỉnh sửa tất cả nội dung tương tự trong văn bản cùng một lúc.
Định dạng chọn, định dạng mã được chọn.
Định dạng tài liệu, định dạng tất cả mã.
Đi đến định nghĩa: Đi đến định nghĩa. Đi đến tài liệu tham khảo: Đi đến tài liệu tham khảo. Đi đến Symbol...: Đi đến tên biến, tên hàm, v.v.
Peek Definition: Xem trước định nghĩa, xem định nghĩa của mã được chọn mà không rời khỏi dòng mã hiện tại. Peek References: Quá trình xem trước, xem các tham chiếu đến dòng mã hiện tại trong các dòng mã khác mà không rời khỏi dòng mã hiện tại, nó có thể đi nhanh chóng, để hiểu logic và cấu trúc mã tốt hơn.