Modul visualisasi untuk membangun strategi perdagangan - tampilan pertama
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!
-
Penemu awal pemrograman visual terkuantisasi
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.
-
1. Penyambungan
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. -
2. Pengaturan dan penyesuaian modul
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. -
3. Parameter input default modul
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).

-
4. Operasi
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”.
-
-
Pengenalan Modul Alat Visualisasi
Anda dapat melihat bahwa ada banyak kategori modul di sisi kiri area pengeditan visual, dan ada banyak modul visual yang tersedia di setiap kategori.
-
Modul Alat:
-
1. Informasi keluaran:
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("你好,可视化编程!") }
-
2. Dorongan WeChat:
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("微信推送!@") }
-
3. Melempar pengecualian
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.
-
4. Hibernasi
Modul hibernasi

Seperti dalam strategi JavaScript:function main () { Sleep(1000 * 5) }Uji modul hibernasi:

Hasil pengujian ulang:

-
5. Mencetak pendapatan
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.
-
6. Putaran

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.
-
7. Eksekusi loop setiap N detik

Penggunaan modul ini pada dasarnya sama dengan modul loop, satu-satunya perbedaan adalah modul ini memiliki fungsi sleep bawaan.

-
8. Pemrosesan presisi

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.

-
9. Hapus log
Digunakan untuk menghapus log. Bergantung pada parameter input, beberapa log dapat disimpan.
Seperti dalam dokumentasi API:LogReset()
-
10. Hapus log pendapatan
Digunakan untuk menghapus log pendapatan. Bergantung pada parameter input, sebagian log dapat disimpan.
Seperti dalam dokumentasi API:LogProfitReset()
Berikut ini adalah beberapa modul alat yang sering digunakan
-
11. Modul fungsional untuk mendapatkan atribut pasar tertentu
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:

Seperti kode strategi JavaScript:
function main () { Log(exchange.GetTicker().Last) } -
12. Modul untuk memperoleh atribut Bar tertentu dari data K-line
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.

-
13. Modul untuk mendapatkan data pesanan di buku pesanan
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]) } -
14. Modul untuk mendapatkan atribut tertentu dalam informasi aset

Modul ini perlu digunakan bersama dengan modul Dapatkan Informasi Aset.

Misalnya: cetak jumlah koin yang tersedia di rekening giro

Seperti dalam strategi JavaScript:
function main () { Log(exchange.GetAccount().Stocks) } -
15. Modul untuk mendapatkan atribut tertentu dalam data pesanan
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).
-
16. Modul untuk memperoleh atribut posisi tertentu dalam informasi posisi
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.
-
-
Contoh Strategi Visualisasi:
- https://www.fmz.com/strategy/121404
- https://www.fmz.com/strategy/129895
- https://www.fmz.com/strategy/123904
- https://www.fmz.com/strategy/122318
Lebih banyak strategi tersedia di: https://www.fmz.com/square
Artikel lain dalam seri ini
- Modul visualisasi untuk membangun strategi perdagangan - mendalam
- Modul visualisasi untuk membangun strategi perdagangan - Lanjutan
Pemrograman yang membosankan dapat diselesaikan dengan mudah menggunakan blok penyusun. Cobalah, ini sangat menarik!
- 1






















