Modul Visualisasi untuk Membangun Strategi Perdagangan - Kenalan Pertama

Penulis:Lydia, Dibuat: 2022-12-12 16:50:29, Diperbarui: 2023-09-20 09:44:29

img

Modul Visualisasi untuk Membangun Strategi Perdagangan - Kenalan Pertama

Pemrograman visual selalu menjadi tujuan aspirasi pengembang perangkat lunak, bahkan di bidang perdagangan kuantitatif. Karena metode "apa yang Anda lihat adalah apa yang Anda dapatkan" dalam visualisasi mengurangi ambang teknis pengembangan pemrograman sangat. Pengguna tidak lagi harus berurusan dengan tumpukan kode membosankan. mereka hanya menggunakan imajinasi dan pemikiran logis mereka untuk fokus pada bisnis itu sendiri. Kau bisa mewujudkan program yang kau inginkan.

Mari kita masuk ke bidang pemrograman visual strategi perdagangan kuantitatif bersama-sama!

Pemrograman visual FMZ Quant awal

Setelah masuk kehttps://www.fmz.com, mendaftarkan akun Anda (jika Anda sudah terdaftar, masuk langsung) dan klik: Dashboard -> Strategi -> Tambahkan Strategi.

img

Kita bisa melihat strategi visualisasi awal. Ini hanya digunakan untuk output informasi aset akun dari pertukaran yang dikonfigurasi secara default (objek pertukaran pertama yang ditambahkan pada backtest atau robot). (Lihat gambar di bawah)

img

Sebelum kita mulai belajar bagaimana menggunakan visualisasi, kita bisa memahami beberapa konsep desain visualisasi.

  1. Pengelompokan Jika Anda melihat dengan seksama, Anda dapat melihat bahwa modul memiliki tenon (kerongkong) dan mortise (kerongkong), yaitu modul dapat menghubungkan dan dihubungkan. Jika dua modul mewakili kode fungsional yang dapat dihubungkan, maka tenon dan mortise dari dua modul akan ditarik bersama ketika Anda membawa mereka dekat.

img

  1. Pengaturan dan penyesuaian modul Beberapa modul memiliki beberapa area khusus yang dapat disetel, misalnya:

img

Anda dapat menyeret modul Item di sebelah kiri ke modul Add, sehingga Anda dapat menambahkan posisi tenon (konkaf), sehingga menambahkan posisi untuk splicing teks. Dengan cara ini, klik pinion untuk menyesuaikan dan mengatur modul.

  1. Parameter input default dari modul Beberapa modul perlu memasukkan beberapa parameter, yang mungkin nilai numerik atau string. Jika Anda tidak menambahkan variabel sebagai parameter input modul, modul akan dijalankan sesuai dengan parameter input default.

img

Modul perhitungan akar kuadrat seperti ini menghasilkan hasil perhitungan dari modul ini.

img

Seperti yang Anda lihat, jika posisi parameter input default, nilai default 9 akan digunakan sebagai parameter input untuk menghitung akar kuadrat dari 9.

img

Tentu saja, jika Anda ingin menggunakan modul variabel sebagai parameter input, Anda dapat menyambung modul variabel ke posisi tenon (kerongkong) secara langsung.

img

  1. Operasi Modul dapat diklik dan diseret dengan tombol mouse kiri. Modul dapat disalin dengan ctrl + c dan ditempelkan dengan ctrl + v, sama nyamannya dengan menyalin dan menempelkan kode atau teks. Area operasi dapat diskalakan dengan roda mouse, dan semua modul akan diskalakan lebih besar atau lebih kecil. Klik dan seret posisi kosong di area operasi untuk memindahkan area operasi. Kotak sampah di sisi kanan mencatat modul yang baru saja dihapus. Hal yang paling penting adalah bahwa setelah splicing strategi modul, jangan lupa untuk mengklik Save.

Pendahuluan ke modul alat visualisasi

Anda dapat melihat bahwa ada banyak klasifikasi modul di sisi kiri area pengeditan visual, dan ada banyak modul visual yang tersedia dalam setiap proyek klasifikasi.

Ada 11 kategori.

img

Modul penggunaan:

img img img

  1. Informasi output: Modul ini biasanya digunakan bersama dengan modul kelas teks, seperti yang ditunjukkan di bawah ini:

img

Anda dapat memasukkan string di modul teks, sehingga ketika Anda menjalankan modul Output Information, isi string di modul teks akan dicetak.

img

Pengujian balik:

img img

Seperti kode bahasa JavaScript:

function main(){
    Log("Hello, Blockly!")
}
  1. Push WeChat: Modul ini memiliki tampilan yang sama dengan output information, yang berbeda dari yang mendorong informasi ke WeChat yang terikat ke akun saat ini pada saat yang sama.

img

Seperti kode bahasa JavaScript:

function main () {
Log("WeChat Push!@")
}
  1. Membuang pengecualian Membuang modul pengecualian menyebabkan program untuk mengeluarkan kesalahan, dan kemudian program menghentikan eksekusi (tanpa menulis kode penanganan pengecualian).

img

Demikian pula, dalam strategi JavaScript, fungsi utama mengeksekusi fungsi throw string to output secara langsung.

function main () {
    throw "The first sentence throws an exception to stop the program!"
}

Hasil tes balik:

img img

Secara umum, ini lebih banyak digunakan saat debugging. Misalnya, jika Anda ingin program berhenti dalam kondisi tertentu dan mencetak beberapa data pada saat itu untuk pengamatan. Atau Anda dapat menempatkan modul pengecualian dalam aliran kode di mana masalah mungkin terjadi, biarkan program melaporkan kesalahan, dan menemukan beberapa kesalahan.

  1. Tidur Modul tidur

img

Seperti dalam strategi JavaScript:

function main () {
    Sleep(1000 * 5)
}

Uji modul tidur:

img

Hasil tes balik:

img

  1. Hasil cetak

img

Modul ini, seperti fungsi API LogProfit di FMZ Quant Trading Platform, yang mencetak log pengembalian dan menggambar kurva pengembalian sesuai dengan parameter input secara otomatis.

Misalnya:imgPelaksanaan backtesting ditunjukkan pada gambar di bawah ini:

img

Kode strategi 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)
}

Hal ini dapat digabungkan di posisi mana pun di mana Anda ingin output informasi kembali.

  1. LompatanimgModul loop dapat membungkus serangkaian kombinasi modul yang dilampirkan, memungkinkan kombinasi modul untuk menjalankan loop.

Tes:imgHasil tes balik:

img

Kita dapat melihat bahwa kombinasi modul yang terdiri dari print returns dan sleep akan dijalankan terus menerus setelah modul loop dibungkus.

  1. Eksekusi loop setiap N detikimgPenggunaan modul ini pada dasarnya sama dengan modul loop. Satu-satunya perbedaan adalah modul memiliki tidur sendiri.img

  2. Pengolahan presisiimgModul ini dapat digunakan ketika modul variabel atau nilai numerik perlu untuk mengontrol presisi. Nilai numerik dari bagian parameter input akan output sebagai nilai numerik dari tempat desimal yang ditentukan sesuai dengan pengaturan.

Misalnya, pemrosesan presisi dilakukan pada nilai 3.1415926535897.

img

Tampilan backtesting:

img

  1. Hapus logimg

Ini digunakan untuk membersihkan log. Beberapa log dapat disimpan sesuai dengan parameter input. Seperti dalam dokumen API:

LogReset()
  1. Hapus log kembaliimg

Ini digunakan untuk menghapus log kembali. Beberapa log dapat disimpan sesuai dengan parameter input. Seperti dalam dokumen API:

LogProfitReset()

Berikut adalah beberapa modul alat yang sering digunakan

  1. Modul fungsi untuk memperoleh atribut pasar tertentuimgModul alat ini perlu digunakan bersama dengan modul penawaran dalam Tipe Modul Transaksi, seperti yang ditunjukkan pada gambar:imgGunakan modul informasi output untuk output harga transaksi terbaru dari pasar ticker terbaru:imgTampilan backtesting:img

Seperti kode strategi JavaScript:

function main () {
    Log(exchange.GetTicker().Last)
}
  1. Modul yang memperoleh atribut bar data K-lineimgModul ini juga perlu digunakan bersama dengan modul akuisisi data K-line dalam Tipe Modul Transaksi.

Pertama, kita membuat modul variabel bernama K-line.imgKemudian kita mendapatkan data K-line, menggunakan modul data K-line untuk mendapatkannya, dan menetapkan nilai untuk modul variabel: K-line.imgKemudian kita menggunakan modul panjang daftar dalam List Module Type untuk mendapatkan panjang modul variabel K-line, yang digunakan untuk menentukan bar mana pada K-line untuk mendapatkan data.imgGabungkan mereka bersama-sama, seperti yang ditunjukkan pada gambar:img

Stempel waktu garis K terakhir dicetak saat backtest berjalan.img

  1. Modul yang memperoleh data pesanan di buku pesananimgIni juga perlu digunakan bersama dengan Get Depth Data module di Transaction Module Type.imgIndeks ditetapkan menjadi 0 dan pesanan jual ditetapkan untuk mendapatkan informasi satu pesanan jual.

img

Seperti kode strategi JavaScript:

function main () {
    Log(exchange.GetDepth().Asks[0])
}
  1. Modul untuk memperoleh atribut dalam informasi asetimgModul ini perlu digunakan bersama dengan modul untuk memperoleh informasi aset.imgMisalnya: cetak mata uang yang tersedia dari rekening arusimgTampilan backtesting:img

Seperti kode strategi JavaScript:

function main () {
    Log(exchange.GetAccount().Stocks)
}
  1. Modul untuk mendapatkan atribut dalam data urutanimgModul ini digunakan untuk memperoleh nilai atribut dalam data pesanan, seperti harga atau jumlah penjualan dalam buku pesanan (contoh dari No.13).img

Hasil tes balik:img

Seperti kode strategi JavaScript:

function main () {
    Log(exchange.GetDepth().Asks[0].Price)
}

Ini juga dapat digunakan untuk mendapatkan atribut dalam informasi pesanan yang dikembalikan oleh Query Order Details Module (akan dijelaskan dalam bab lanjutan).

  1. Modul untuk mendapatkan atribut posisi dalam informasi posisiimgDemikian pula, harus digunakan bersama dengan Get Futures Position Module. Perhatikan bahwa data posisi yang dikembalikan oleh Get Futures Position Module adalah array (daftar) yang berisi posisi dalam kontrak dan arah yang berbeda. Oleh karena itu, indeks harus ditentukan saat digunakan.

Setelah belajar begitu banyak, mari kita menggabungkan operasi lindung nilai, yaitu lindung nilai kontrak jangka pendek dan jangka panjang.

Kami membuat lindung nilai arbitrage positif, yaitu, membuka kontrak posisi pendek untuk kontrak berjangka, dan membuka kontrak posisi panjang untuk kontrak terbaru.

img

Hasil tes balik:

img

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/122318Untuk lebih banyak strategi, silakan lihat:https://www.fmz.com/square

Artikel lain dalam seri ini

- Modul Visualisasi untuk Membangun Strategi Trading - mendalam (https://www.fmz.com/digest-topic/9509) Modul Visualisasi untuk Membangun Strategi Perdagangan - Pengertian Lanjutan (https://www.fmz.com/bbs-topic/9815)

Pemrograman yang membosankan dapat dengan mudah diselesaikan dengan blok bangunan.


Berkaitan

Lebih banyak