Bagi perdagangan kuantitatif dan perdagangan programatik pemula, apakah kesukaran terbesar dalam pembelajaran?
Dengan perkembangan teknologi AI, penyelesaian kepada masalah ini boleh dijumpai sejauh mana.ChatGPTDengan platform FMZ
Walaupun keupayaan ChatGPT kini sudah sangat kuat, dan ia boleh memahami soalan manusia dengan sangat baik, jawapan yang ia berikan masih sangat sensitif kepada faktor-faktor sepertiKeseluruhan dan ketepatan penerangan soalan. Jika senario atau kandungan soalan yang diterangkan tidak tepat, ChatGPT mungkin tidak dapat memberikan jawapan yang sempurna. Oleh itu, apabila menggunakannya untuk menyelesaikan beberapa masalah, adalah perlu untuk mencuba untuk menyatakan mereka dengan betul dan lengkap.
Seterusnya, kita akan menggunakan fungsi ChatGPT editor strategi platform FMZ untuk menyelesaikan masalah reka bentuk kod. Log masuk ke platform FMZ dan pergi ke halaman penyuntingan strategi.
Klik kanan pada ruang kosong, pilih pilihan ChatGPT dan klik untuk memanggilChatGPT
, ataumenggunakan Ctrl+K untuk memanggil ChatGPT.
Jika saya seorang pemula perdagangan kuantitatif sekarang, saya mempunyai keperluan:
Gunakan satu minit K-garis untuk menghimpun mana-mana data K-garis tempoh.
Sebagai seorang pemula, kemampuan pengaturcaraan saya adalah lemah, dan saya benar-benar tidak tahu bagaimana untuk menulis algoritma seperti itu. Pada masa lalu, saya hanya boleh mencari maklumat dan meminta bantuan pakar. Sekarang, dengan ChatGPT, saya boleh meminta jawapan secara langsung. Sudah tentu, seperti yang disebutkan di atas, menerangkan keperluan secara langsung:
Jadi mari kita buat penerangan keperluan ini sedikit lebih lengkap:
> 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.
Selepas memanggil ChatGPT, anda boleh mengisi kandungan soalan yang dioptimumkan yang disebutkan di atas.
ChatGPT mula berfungsi.
Tunggu sehingga ia selesai menulis.
Kadang-kadangChatGPT
menambahsimbol untuk membungkus kod, yang dalam markdown menunjukkan bahawa kandungan yang dibungkus adalah kod. jadi kita hanya perlu membuang baris pertama dan terakhir.$.PlotRecords(KLineData, "name")
untuk menggambar, strategi perlu merujuk perpustakaan gambar untuk menggambar. Tujuan menggambar adalah untuk mengesahkan sama ada data K-garis yang disintesis oleh kod Chat GPT
Kod yang disediakan olehChatGPT
Saya menetapkan tempoh garis K lalai sistem backtesting sebagai 5 minit, yang digunakan untuk membandingkan dengan carta garis K yang diambil dari data garis K yang dikira oleh algoritma Chat GPT
Secara awal, nampaknya algoritma yang diberikan oleh ChatGPT untuk mensintesis K-line 5 minit dari K-line 1 minit adalah betul.
/*
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
fungsi dalam kod yang baru ditulis oleh ChatGPT, klik kanan untuk menunjukkan menu:
Malah ChatGPT boleh memberikan cadangan pengoptimuman dan kod yang dioptimumkan.
Pembaruan editor FMZ, selain menambah fungsi ChatGPT. Ia juga mengoptimumkan dan meningkatkan pengalaman pengaturcaraan dalam talian, menambah banyak fungsi yang mudah.
Klik kanan pada ruang kosong atau apabila memilih kod untuk menunjukkan menu.
Ia memaparkan pelbagai kombinasi kekunci pintasan.
Nama semula Simbol untuk mengubah nama pembolehubah tempatan.
Ia hanya menukar nama pembolehubahrecords
dalammain
fungsi gambar di atas.
Ubah Semua Kejadian, pilih nama pembolehubah, perkataan, dan mengedit semua kandungan yang sama dalam teks secara serentak.
Format Pilihan, format kod yang dipilih.
Format dokumen, format semua kod.
Pergi ke definisi: Pergi ke definisi. Pergi ke Referensi: Pergi ke Referensi. Pergi ke Simbol...: Pergi ke nama pembolehubah, nama fungsi, dan lain-lain.
Peek Definition: Preview definisi, melihat definisi kod yang dipilih tanpa meninggalkan baris kod semasa. Lihat Rujukan: pratonton kutipan, melihat rujukan kepada baris kod semasa dalam baris kod lain tanpa meninggalkan baris kod semasa, ia boleh pergi dengan cepat, untuk memahami logik kod dan struktur yang lebih baik.