
Pemrograman visual selalu menjadi tujuan yang diinginkan oleh pengembang perangkat lunak, bahkan di bidang perdagangan kuantitatif. Karena pendekatan visualisasi “apa yang Anda lihat adalah apa yang Anda dapatkan” sangat mengurangi ambang batas teknis untuk pengembangan pemrograman. Pengguna tidak perlu lagi berurusan dengan sekumpulan kode yang membosankan. Mereka hanya perlu menggunakan otak, imajinasi, dan pemikiran logis, serta fokus pada bisnis itu sendiri. Anda dapat mewujudkan program yang Anda inginkan, bukankah itu menakjubkan!
Kalau begitu, mari kita masuk ke bidang pemrograman visual strategi perdagangan kuantitatif bersama-sama!
Setelah masuk ke https://www.fmz.com, daftarkan akun (jika Anda sudah terdaftar, langsung masuk), dan klik: Pusat Kontrol->Perpustakaan Kebijakan->Kebijakan Baru.

Kita dapat melihat strategi visualisasi awal. Ia hanya mengeluarkan informasi aset akun dari bursa yang dikonfigurasikan secara default (objek bursa pertama yang ditambahkan dalam pengujian ulang atau robot). (Seperti yang ditunjukkan di bawah)

## Sebelum kita mulai mempelajari cara menggunakan visualisasi, pertama-tama kita dapat memahami beberapa konsep desain visualisasi.
Pengamatan yang cermat mengungkapkan bahwa semua modul memiliki tenon (cekung) dan mortis (cembung), yang berarti bahwa modul dapat “dihubungkan” dan “disambung”. Jika kode fungsional yang diwakili oleh dua modul dapat dihubungkan, maka keduanya akan saling menempel ketika Anda mendekatkan pasak dan pasak kedua modul tersebut.

Beberapa modul memiliki beberapa pengaturan khusus, misalnya:

Anda dapat menyeret modul “Proyek” di sebelah kiri ke modul “Gabung”, sehingga Anda dapat menambahkan posisi mortise dan tenon, sehingga menambahkan posisi untuk menyambung teks. Dengan cara ini, Anda dapat membuat beberapa penyesuaian dan pengaturan untuk modul dengan mengklik roda gigi kecil.
Beberapa modul memerlukan parameter input, yang dapat berupa nilai, string, dll. Jika Anda tidak menambahkan variabel sebagai parameter input modul, modul akan dieksekusi sesuai dengan parameter input default.
Modul perhitungan seperti ini untuk menemukan akar kuadrat mengeluarkan hasil perhitungan modul ini.
Seperti yang Anda lihat, jika parameter input tidak ada, nilai default 9 digunakan sebagai parameter input untuk menghitung akar kuadrat 9.

Tentu saja, jika Anda ingin menggunakan modul variabel sebagai parameter input, Anda dapat langsung menghubungkan modul variabel ke posisi mortise dan tenon (ceruk).

Modul dapat diklik dan diseret dengan tombol kiri mouse. Modul dapat disalin menggunakan ctrl + c dan ditempel menggunakan ctrl + v, sama mudahnya dengan menyalin dan menempel kode atau teks. Area operasi dapat ditingkatkan atau dikurangi menggunakan roda mouse, dan semua modul akan ditingkatkan atau dikurangi. Klik dan tahan area kosong di area operasi dan seret untuk memindahkan area operasi. Tempat sampah di sebelah kanan mencatat modul yang baru saja dihapus. Yang terpenting, setelah menyusun strategi modul, jangan lupa klik “Simpan”.
Anda dapat melihat bahwa ada banyak kategori modul di sisi kiri area pengeditan visual, dan ada banyak modul visual yang tersedia di setiap kategori.
Total ada 11 kategori.

Modul ini biasanya digunakan dalam kombinasi dengan modul teks, seperti yang ditunjukkan di bawah ini:
Anda dapat memasukkan string dalam modul kelas teks, sehingga saat Anda menjalankan modul “informasi keluaran”, konten string dalam modul teks akan dicetak.
Pengujian ulang:

Seperti kode bahasa JavaScript:
function main(){
Log("你好,可视化编程!")
}
Modul ini tampak sama dengan “Informasi Keluaran”, kecuali ia mengeluarkan informasi dan mengirimkannya ke akun WeChat yang terikat dengan akun saat ini.

Seperti kode bahasa JavaScript:
function main () {
Log("微信推送!@")
}
Modul pengecualian throw memungkinkan program untuk menimbulkan kesalahan dan kemudian menghentikan eksekusi program (tanpa menulis kode penanganan pengecualian).

Hal ini serupa dengan strategi JavaScript di mana fungsi throw “string yang akan dikeluarkan” langsung dieksekusi dalam fungsi utama.
function main () {
throw "第一句就抛出异常,让程序停止!"
}
Hasil pengujian ulang:
Biasanya lebih sering digunakan selama debugging, misalnya, ketika Anda ingin program berhenti dalam kondisi tertentu dan mencetak beberapa data pada saat itu untuk memudahkan pengamatan.
Atau Anda dapat menempatkan modul pelempar pengecualian dalam alur kode tempat masalah mungkin terjadi, sehingga program dapat melaporkan kesalahan dan menemukan beberapa kesalahan.
Modul hibernasi
Seperti dalam strategi JavaScript:
function main () {
Sleep(1000 * 5)
}
Uji modul hibernasi:
Hasil pengujian ulang:


Modul ini mirip dengan fungsi LogProfit pada API Platform Perdagangan Kuantitatif Inventor, mencetak log laba dan secara otomatis menggambar kurva laba berdasarkan parameter input.
Misalnya:
Eksekusi backtest ditunjukkan di bawah ini:
Kode kebijakan JavaScript yang sesuai adalah sebagai berikut:
function main () {
LogProfit(1)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(3)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(5)
}
Dapat disambung di lokasi mana saja di mana Anda ingin mengeluarkan informasi pendapatan.
Modul loop dapat membungkus serangkaian kombinasi modul yang disambung dan membiarkan kombinasi modul ini dieksekusi dalam satu loop.
tes:
Hasil pengujian ulang:
Dapat dilihat bahwa setelah modul loop membungkus kombinasi modul yang terdiri dari print revenue dan sleep, maka kombinasi modul tersebut akan dieksekusi secara berkesinambungan.
Penggunaan modul ini pada dasarnya sama dengan modul loop, satu-satunya perbedaan adalah modul ini memiliki fungsi sleep bawaan.

Modul ini dapat digunakan saat modul variabel atau nilai numerik perlu mengontrol presisi. Nilai numerik dari bagian parameter input akan dikeluarkan sebagai nilai numerik dari tempat desimal yang ditentukan sesuai dengan pengaturan.
Misalnya, angka 3.1415926535897 diproses dengan presisi.

Pengujian ulang menunjukkan:


Digunakan untuk menghapus log. Bergantung pada parameter input, beberapa log dapat disimpan. Seperti dalam dokumentasi API:
LogReset()

Digunakan untuk menghapus log pendapatan. Bergantung pada parameter input, sebagian log dapat disimpan. Seperti dalam dokumentasi API:
LogProfitReset()

Modul alat ini perlu digunakan bersama dengan modul pasar dalam “Jenis modul perdagangan”, seperti yang ditunjukkan pada gambar:

Gunakan modul informasi keluaran untuk mengeluarkan harga transaksi terkini dari pasar ticker terkini:

Pengujian ulang menunjukkan:

Seperti kode strategi JavaScript:
function main () {
Log(exchange.GetTicker().Last)
}

Modul ini juga perlu digunakan bersama dengan modul akuisisi data K-line dalam “Jenis modul perdagangan”.
Pertama buat modul variabel dan beri nama: K-line.
Kemudian dapatkan data K-line, gunakan modul data K-line untuk mendapatkannya, dan tetapkan ke modul variabel: “K-line”.
Kemudian gunakan modul panjang daftar dalam “Jenis modul daftar” untuk memperoleh panjang modul variabel K-line, yang digunakan untuk menentukan Bar mana dari K-line tempat data akan diperoleh.
Jahit bersama-sama, seperti yang ditunjukkan:
Ketika pengujian ulang dijalankan, stempel waktu batang K-line terakhir dicetak.


Ini juga perlu digunakan bersama dengan modul Dapatkan Data Kedalaman dalam “Jenis Modul Transaksi”.

Tetapkan indeks ke 0, tetapkan perintah jual, dan dapatkan informasi tentang satu perintah jual.

Seperti kode strategi JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0])
}
Modul ini perlu digunakan bersama dengan modul Dapatkan Informasi Aset.

Misalnya: cetak jumlah koin yang tersedia di rekening giro

Pengujian ulang menunjukkan:

Seperti dalam strategi JavaScript:
function main () {
Log(exchange.GetAccount().Stocks)
}

Modul ini digunakan untuk memperoleh nilai atribut tertentu dalam data pesanan, seperti harga atau kuantitas penjualan pertama dalam buku pesanan (contoh nomor 13).

Hasil pengujian ulang:
Seperti dalam strategi JavaScript:
function main () {
Log(exchange.GetDepth().Asks[0].Price)
}
Ini juga dapat digunakan untuk memperoleh atribut tertentu dalam informasi pesanan yang dikembalikan oleh “Modul Query Order Details” (yang akan dijelaskan di bagian lanjutan).

Demikian pula, ini harus digunakan bersama dengan “Modul Dapatkan Posisi Berjangka”. Perlu dicatat bahwa data posisi yang dikembalikan oleh Modul Dapatkan Posisi Berjangka adalah array (daftar), yang merupakan struktur data yang berisi posisi kontrak dan arah yang berbeda. . Oleh karena itu, Anda harus menentukan indeks saat menggunakannya.
Setelah mempelajari banyak hal, mari kita gabungkan operasi lindung nilai, yaitu melakukan lindung nilai baik kontrak jangka pendek maupun kontrak berjangka secara bersamaan. Kami membuat lindung nilai arbitrase positif, yaitu membuka kontrak forward pendek, 1 kontrak, dan membuka kontrak panjang dalam waktu dekat.

Hasil pengujian ulang:

Contoh Strategi Visualisasi:
Lebih banyak strategi tersedia di: https://www.fmz.com/square
Artikel lain dalam seri ini