[TOC]

Khó khăn lớn nhất đối với người mới bắt đầu giao dịch định lượng và giao dịch theo chương trình là gì? Nói chung thì có một số.
Với sự phát triển của công nghệ AI, các giải pháp cho những vấn đề trên có thể được tìm ra ở một mức độ nhất định. Gần đây phổ biếnChat GPTNó có thể được sử dụng như một công cụ để học tập, nghiên cứu và tạo ra giao dịch định lượng. Với bản nâng cấp mới của trình biên tập chiến lược trên nền tảng FMZ, Chat GPT cũng đã được kết nối, giúp cải thiện đáng kể năng suất định lượng. Chúng ta hãy cùng nhau khám phá.Các tính năng mới của FMZ Strategy Editor!
Mặc dù các chức năng của Chat GPT đã rất mạnh mẽ và mức độ hiểu biết của nó về các câu hỏi do con người đưa ra đã rất cao. Nhưng câu trả lời nó đưa ra vẫn làTính đầy đủ của mô tả vấn đề、Độ chính xác của mô tảCác yếu tố như đầu vào và đầu ra của người dùng rất nhạy cảm. Nếu kịch bản được mô tả hoặc nội dung câu hỏi không chính xác, Chat GPT vẫn không thể đưa ra câu trả lời hoàn hảo. Vì vậy, khi sử dụng nó để giải quyết một số bài toán, bạn cần cố gắng diễn đạt nó một cách chính xác và đầy đủ.
Tiếp theo, chúng ta sẽ sử dụng chức năng Chat GPT của trình soạn thảo chiến lược nền tảng FMZ để giải quyết vấn đề thiết kế mã. Đăng nhập vào nền tảng FMZ và đi đến trang soạn thảo chiến lược.

Sử dụng menu chuột phải trong một khoảng trống, chọn tùy chọn ChatGPT và nhấp để gọi lênChat GPT,hoặcSử dụng ⌘K để gọi ChatGPT。
Nếu tôi là người mới bắt đầu tham gia giao dịch định lượng, tôi có một yêu cầu: “Sử dụng K-line một phút để tổng hợp dữ liệu K-line của bất kỳ giai đoạn nào”. Là người mới bắt đầu, kỹ năng lập trình của tôi còn yếu và tôi thực sự không thể viết một thuật toán như vậy. Trước đây, tôi chỉ có thể tìm kiếm thông tin và nhờ chuyên gia giúp đỡ. Bây giờ với Chat GPT, tôi có thể trực tiếp yêu cầu giải đáp. Tất nhiên, như đã đề cập ở trên, hãy mô tả trực tiếp yêu cầu này:“Sử dụng K-line một phút để tổng hợp dữ liệu K-line của bất kỳ giai đoạn nào”. Rất có thể GPT sẽ không cung cấp cho bạn câu trả lời hữu ích 100% và bạn cần phải mô tả vấn đề một cách đầy đủ nhất có thể. Lấy yêu cầu này làm ví dụ, tôi đã liên tục điều chỉnh câu hỏi của mình và hỏi nhiều lần trước khi nhận được câu trả lời hữu ích mà tôi mong muốn. Sau đây chúng ta hãy mô tả yêu cầu này một cách đầy đủ hơn:
在FMZ平台上调用exchange.GetRecords(60)函数可以获取一分钟K线数据,数据结构是:
[{
Time : 毫秒时间戳, // 周期的起始时间
Open : 1000,
High : 1500,
Low : 900,
Close : 1200,
Volume : 1000000
}, ...]
请设计一个算法,使用一分钟K线数据合成任意分钟的K线数据,对于可以整除60分钟的周期,需要从整点的0分开始统计,使用Javascript语言实现,
这个算法单独写成一个函数,测试在function main()函数中测试,使用$.PlotRecords(KLineData, "name")画图。
Sau khi gọi ChatGPT, bạn có thể điền nội dung câu hỏi đã tối ưu hóa ở trên.

ChatGPT bắt đầu hoạt động.

Chờ cho đến khi hoàn tất.

Thỉnh thoảngChat GPTBọc mã”Biểu tượng cho biết trong markdown rằng nội dung kèm theo là mã. Vì vậy, chúng ta chỉ cần xóa dòng đầu tiên và dòng cuối cùng. Bởi vì câu hỏi tôi yêu cầu nó sử dụng$.PlotRecords(KLineData, “name”)`Vẽ, vì vậy chiến lược phải tham chiếu đến thư viện vẽ đường để vẽ. Vẽ là để xác minh xem dữ liệu K-line được tổng hợp bởi mã do Chat GPT cung cấp có chính xác không.
Về thư viện mẫu là gì, tôi sẽ không đi sâu vào chi tiết ở đây. Bạn có thể kiểm tra tài liệu API của FMZ.Địa chỉ thư viện bản vẽ đường nét
Chat GPTMã được cung cấp có thể được kiểm tra ngược trực tiếp. Tôi đặt thời gian K-line mặc định của hệ thống kiểm tra ngược thành 5 phút để so sánh biểu đồ K-line được vẽ bởi dữ liệu K-line được tính toán bằng thuật toán do Chat GPT cung cấp.


Thoạt nhìn, thuật toán do ChatGPT đưa ra để sử dụng dòng K 1 phút để tổng hợp dòng K 5 phút là chính xác.
/*
合成任意分钟的K线数据
@param {Array} records - 一分钟K线数据
@param {Number} period - 合成的周期,单位为分钟
@return {Array} - 合成后的K线数据
*/
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); // 合成5分钟K线数据
$.PlotRecords(kLineData, "KLineData");
}
ChatGPT tích hợp trên FMZ không chỉ giúp bạn viết code mà còn giúp bạn giải thích code. Chọn mã mà ChatGPT vừa viết.composeKLineDataChức năng, nhấp chuột phải để bật lên menu:


ChatGPT thậm chí có thể đưa ra các gợi ý tối ưu hóa và mã được tối ưu hóa.

Bản cập nhật trình soạn thảo FMZ này bổ sung tính năng ChatGPT. Nó còn tối ưu hóa và cải thiện trải nghiệm của người dùng khi viết chương trình trực tuyến và bổ sung 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 mã được chọn để bật lên một menu.

Hiển thị tổ hợp phím tắt cho nhiều chức năng khác nhau.

Đổi tên Symbol, sửa đổi tên biến cục bộ.


Chỉ có hình ảnh ở trên sẽ được sửa đổimainTên biến trong hàmrecords。
Thay đổi tất cả các lần xuất hiện, chọn tên biến hoặc từ và chỉnh sửa tất cả nội dung giống nhau trong văn bản cùng một lúc.


Định dạng lựa chọn, định dạng mã đã chọn.
Định dạng tài liệu, định dạng tất cả mã.

Vào Định nghĩa, nhảy tới định nghĩa. Vào mục Tài liệu tham khảo, chuyển đến mục tài liệu tham khảo. Đi tới Biểu tượng…, nhảy tới tên biến, tên hàm, v.v.

Xem trước định nghĩa, xem trước định nghĩa. Xem định nghĩa của mã đã chọn mà không cần rời khỏi dòng mã hiện tại. Xem trước tham chiếu, xem trước tham chiếu, 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 cần rời khỏi dòng mã hiện tại và chuyển nhanh đến để hiểu rõ hơn về logic và cấu trúc mã.
