[TOC]

Apa kesulitan terbesar bagi pemula dalam perdagangan kuantitatif dan perdagangan terprogram? Secara umum, ada beberapa.
Dengan berkembangnya teknologi AI, solusi untuk masalah di atas dapat ditemukan sampai batas tertentu. Baru-baru ini populerChat GPTDapat digunakan sebagai alat untuk mempelajari, meneliti dan menciptakan perdagangan kuantitatif. Dengan peningkatan baru editor strategi pada platform FMZ, Chat GPT juga telah terhubung, yang telah meningkatkan produktivitas kuantitatif secara signifikan. Mari kita bahas bersama.Fitur baru Editor Strategi FMZ!
Meskipun fungsi Chat GPT sudah sangat kuat dan tingkat pemahamannya terhadap pertanyaan yang diajukan manusia sudah sangat tinggi. Tapi jawaban yang diberikannya masihKelengkapan deskripsi masalah、Akurasi deskripsiFaktor-faktor seperti input dan output pengguna sangatlah sensitif. Jika skenario yang dijelaskan atau konten pertanyaan tidak akurat, Chat GPT tetap tidak dapat memberikan jawaban yang sempurna. Oleh karena itu, ketika menggunakannya untuk memecahkan beberapa masalah, Anda perlu mencoba mengungkapkannya dengan benar dan lengkap.
Selanjutnya, kita akan menggunakan fungsi Chat GPT dari editor strategi platform FMZ untuk memecahkan masalah desain kode. Masuk ke platform FMZ dan buka halaman penyuntingan strategi.

Gunakan menu klik kanan di ruang kosong, pilih opsi ChatGPT dan klik untuk memanggilChat GPT,atauGunakan ⌘K untuk memanggil ChatGPT。
Jika saya sekarang seorang pemula dalam perdagangan kuantitatif, saya punya persyaratan: “Gunakan K-line satu menit untuk mensintesiskan data K-line dari periode apa pun”. Sebagai seorang pemula, kemampuan pemrograman saya lemah dan saya benar-benar tidak bisa menulis algoritma seperti itu. Dulu, saya hanya bisa mencari informasi dan meminta bantuan dari para ahli. Sekarang dengan Chat GPT, saya bisa langsung menanyakan jawabannya. Tentu saja, seperti yang disebutkan di atas, jelaskan secara langsung persyaratan ini:“Gunakan K-line satu menit untuk mensintesis data K-line dari periode apa pun”. Kemungkinan besar GPT tidak akan memberi Anda jawaban yang 100% dapat digunakan, dan Anda perlu menjelaskan masalahnya selengkap mungkin. Mengambil persyaratan ini sebagai contoh, saya terus menyesuaikan pertanyaan saya dan bertanya berkali-kali sebelum saya mendapatkan jawaban yang dapat digunakan yang saya inginkan. Kalau begitu, mari kita uraikan persyaratan ini sedikit lebih lengkap:
在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")画图。
Setelah memanggil ChatGPT, Anda dapat mengisi konten pertanyaan yang dioptimalkan di atas.

ChatGPT mulai berfungsi.

Tunggu sampai selesai.

Kadang-kadangChat GPTBungkus kodenya”Simbol yang menunjukkan dalam markdown bahwa konten terlampir adalah kode. Jadi, kita hapus saja baris pertama dan terakhir. Karena pertanyaan yang saya ajukan adalah untuk digunakan$.PlotRecords(KLineData, “name”)`Menggambar, jadi strateginya harus merujuk ke pustaka gambar garis untuk menggambar. Menggambar adalah untuk memverifikasi apakah data garis K yang disintesis oleh kode yang diberikan oleh Chat GPT sudah benar.
Mengenai pustaka templat, saya tidak akan membahasnya secara rinci di sini. Anda dapat memeriksa dokumentasi API FMZ.Alamat perpustakaan gambar garis
Chat GPTKode yang diberikan dapat langsung diuji ulang. Saya menetapkan periode K-line default dari sistem pengujian ulang menjadi 5 menit untuk membandingkan grafik K-line yang digambar dengan data K-line yang dihitung oleh algoritma yang diberikan oleh Chat GPT.


Sekilas, algoritma yang diberikan oleh ChatGPT untuk menggunakan garis K 1 menit guna mensintesis garis K 5 menit sudah benar.
/*
合成任意分钟的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 yang terintegrasi pada FMZ tidak hanya akan membantu Anda menulis kode, tetapi juga membantu Anda menjelaskan kode tersebut. Pilih kode yang baru saja ditulis ChatGPT.composeKLineDataFungsi, klik kanan untuk memunculkan menu:


ChatGPT bahkan dapat memberikan saran pengoptimalan dan kode yang dioptimalkan.

Pembaruan editor FMZ ini menambahkan fitur ChatGPT. Ia lebih mengoptimalkan dan meningkatkan pengalaman pengguna dalam penulisan program daring dan menambahkan banyak fungsi yang nyaman.
Klik kanan di ruang kosong atau saat kode dipilih untuk memunculkan menu.

Menampilkan kombinasi tombol pintas untuk berbagai fungsi.

Ubah Nama Simbol, ubah nama variabel lokal.


Hanya gambar di atas yang akan dimodifikasimainNama variabel dalam fungsirecords。
Ubah Semua Kemunculan, pilih nama variabel atau kata, dan edit semua konten yang sama dalam teks secara bersamaan.


Format Pemilihan, memformat kode yang dipilih.
Format Dokumen, format semua kode.

Buka Definisi, lompat ke definisi. Buka Referensi, lompat ke referensi. Buka Simbol…, lompat ke nama variabel, nama fungsi, dst.

Definisi Intip, pratinjau definisi. Lihat definisi kode yang dipilih tanpa meninggalkan baris kode saat ini. Intip Referensi, pratinjau referensi, lihat referensi ke baris kode saat ini di baris kode lain tanpa meninggalkan baris kode saat ini, dan lompat cepat untuk lebih memahami logika dan struktur kode.
