Modul Visualisasi untuk Membina Strategi Dagangan - Kenalan Pertama

Penulis:Lydia, Dicipta: 2022-12-12 16:50:29, Dikemas kini: 2023-09-20 09:44:29

img

Modul Visualisasi untuk Membina Strategi Dagangan - Kenalan Pertama

Pengaturcaraan visual sentiasa menjadi matlamat aspirasi pembangun perisian, walaupun dalam bidang perdagangan kuantitatif. Kerana kaedah "apa yang anda lihat adalah apa yang anda dapatkan" dalam visualisasi mengurangkan ambang teknikal pembangunan pengaturcaraan dengan besar. Pengguna tidak perlu lagi berurusan dengan setumpuk kod yang membosankan. Mereka hanya menggunakan imaginasi dan pemikiran logik mereka untuk memberi tumpuan kepada perniagaan itu sendiri. Anda boleh mewujudkan program yang anda mahu.

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

Pengaturcaraan visual FMZ Quant awal

Selepas log masuk kehttps://www.fmz.com, mendaftar akaun anda (jika anda sudah berdaftar, log masuk terus) dan klik: Dasbor -> Strategi -> Tambah Strategi.

img

Kita boleh lihat strategi visualisasi awal. Ia hanya digunakan untuk mengeluarkan maklumat aset akaun pertukaran yang dikonfigurasikan secara lalai (objek pertukaran pertama yang ditambah pada backtest atau robot). (Lihat gambar di bawah)

img

Sebelum kita mula belajar bagaimana menggunakan visualisasi, kita boleh memahami beberapa konsep reka bentuk visualisasi.

  1. Penggambaran Jika anda melihat dengan teliti, anda boleh melihat bahawa modul mempunyai tenon (berkulit) dan mortise (berkulit), iaitu modul boleh menyambung dan dikatakan. Jika dua modul mewakili kod fungsional yang boleh disambungkan, maka tenon dan mortises kedua-dua modul akan tertarik bersama-sama apabila anda membawa mereka dekat.

img

  1. Tetapan dan penyesuaian modul Sesetengah modul mempunyai beberapa kawasan khusus yang boleh diatur, contohnya:

img

Anda boleh menyeret modul Item di sebelah kiri ke modul Add, supaya anda boleh menambah kedudukan tenon (konkaf), dengan itu menambah kedudukan untuk menyambung teks. Dengan cara ini, klik pinion untuk menyesuaikan dan menetapkan modul.

  1. Parameter input lalai modul Sesetengah modul perlu memasukkan beberapa parameter, yang mungkin nilai nombor atau rentetan. Jika anda tidak menambah pembolehubah sebagai parameter input modul, modul akan dijalankan mengikut parameter input lalai.

img

Modul pengiraan akar kuadrat seperti ini mengeluarkan hasil pengiraan dari modul ini.

img

Seperti yang anda lihat, jika kedudukan parameter input lalai, nilai lalai 9 akan digunakan sebagai parameter input untuk mengira akar kuadrat 9.

img

Sudah tentu, jika anda ingin menggunakan modul pembolehubah sebagai parameter input, anda boleh menyambungkan modul pembolehubah ke kedudukan tenon (konkaf) secara langsung.

img

  1. Operasi Modul boleh diklik dan diseret dengan butang tetikus kiri. Modul boleh disalin dengan ctrl + c dan ditampal dengan ctrl + v, sama mudahnya dengan menyalin dan menampal kod atau teks. Kawasan operasi boleh ditingkatkan dengan roda tetikus, dan semua modul akan ditingkatkan lebih besar atau lebih kecil. Klik dan seret kedudukan kosong di kawasan operasi untuk memindahkan kawasan operasi. Bak sampah di sebelah kanan merakam modul yang baru-baru ini dipadamkan. Perkara yang paling penting adalah bahawa selepas menyambungkan strategi modul, jangan lupa untuk klik Save.

Pengenalan kepada modul alat visualisasi

Anda boleh melihat bahawa terdapat banyak klasifikasi modul di sebelah kiri kawasan penyuntingan visual, dan terdapat banyak modul visual yang tersedia dalam setiap projek klasifikasi.

Terdapat 11 kategori.

img

Modul kegunaan:

img img img

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

img

Anda boleh memasukkan rentetan dalam modul teks, supaya apabila anda menjalankan modul Output Information, kandungan rentetan dalam modul teks akan dicetak.

img

Ujian semula:

img img

Seperti kod bahasa JavaScript:

function main(){
    Log("Hello, Blockly!")
}
  1. Push WeChat: Modul ini mempunyai penampilan yang sama dengan output information, yang berbeza dengan yang mendorong maklumat ke WeChat yang terikat dengan akaun semasa pada masa yang sama.

img

Seperti kod bahasa JavaScript:

function main () {
Log("WeChat Push!@")
}
  1. Lemparkan pengecualian Membuang modul pengecualian menyebabkan program mengeluarkan ralat, dan kemudian program berhenti pelaksanaan (tanpa menulis kod pengendalian pengecualian).

img

Begitu juga, dalam strategi JavaScript, fungsi utama melaksanakan fungsi membuang string ke output secara langsung.

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

Hasil ujian belakang:

img img

Secara amnya, ia lebih banyak digunakan semasa debugging. Sebagai contoh, jika anda mahu program berhenti di bawah keadaan tertentu dan mencetak beberapa data pada masa itu untuk pemerhatian. Atau anda boleh meletakkan modul pengecualian dalam aliran kod di mana masalah mungkin berlaku, biarkan program melaporkan kesilapan, dan mencari beberapa kesilapan.

  1. Tidur Modul tidur

img

Seperti dalam strategi JavaScript:

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

Uji modul tidur:

img

Hasil ujian belakang:

img

  1. Pulangan cetak

img

Modul ini, sama seperti fungsi API LogProfit di FMZ Quant Trading Platform, yang mencetak log pulangan dan menarik lengkung pulangan mengikut parameter input secara automatik.

Contohnya:imgPelaksanaan backtesting ditunjukkan dalam gambar di bawah:

img

Kod strategi JavaScript yang sepadan adalah seperti 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)
}

Ia boleh dilampirkan di mana-mana kedudukan di mana anda mahu output maklumat balik.

  1. LemparanimgModul gelung boleh membungkus satu siri kombinasi modul yang dilampirkan, yang membolehkan kombinasi modul untuk melaksanakan gelung.

Ujian:imgHasil ujian belakang:

img

Kita dapat melihat bahawa kombinasi modul yang terdiri daripada print returns dan sleep akan dijalankan secara berterusan selepas modul gelung dibungkus.

  1. Pelaksanaan gelung setiap N saatimgPenggunaan modul ini pada dasarnya sama dengan modul gelung. Satu-satunya perbezaan adalah bahawa modul mempunyai tidur sendiri.img

  2. Pemprosesan ketepatanimgModul ini boleh digunakan apabila modul pembolehubah atau nilai nombor perlu mengawal ketepatan. Nilai nombor bahagian parameter input akan output sebagai nilai nombor tempat perpuluhan yang ditentukan mengikut tetapan.

Sebagai contoh, pemprosesan ketepatan dilakukan pada nilai 3.1415926535897.

img

Paparan ujian belakang:

img

  1. Hapus logimg

Ia digunakan untuk membersihkan log. Sesetengah log boleh disimpan mengikut parameter input. Seperti dalam dokumen API:

LogReset()
  1. Hapus log pulanganimg

Ia digunakan untuk membersihkan log pulangan. Sesetengah log boleh dikekalkan mengikut parameter input. Seperti dalam dokumen API:

LogProfitReset()

Berikut adalah beberapa modul alat yang sering digunakan

  1. Modul fungsi untuk mendapatkan atribut pasaran tertentuimgModul alat ini perlu digunakan bersama-sama dengan modul sebut harga dalam Tipe Modul Transaksi, seperti yang ditunjukkan dalam gambar:imgMenggunakan modul maklumat output untuk mengeluarkan harga urus niaga terkini pasaran ticker terkini:imgPaparan ujian belakang:img

Seperti kod strategi JavaScript:

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

Pertama, kita mencipta modul pembolehubah yang dinamakan K-line.imgKemudian kita mendapatkan data K-garis, menggunakan modul data K-garis untuk mendapatkannya, dan menetapkan nilai kepada modul pembolehubah: K-garis.imgKemudian kita menggunakan modul panjang senarai dalam List Module Type untuk mendapatkan panjang modul pembolehubah K-garis, yang digunakan untuk menentukan bar mana pada K-garis untuk mendapatkan data.imgGabungkan mereka bersama-sama, seperti yang ditunjukkan dalam gambar:img

Stempel masa bar K-line terakhir dicetak apabila backtest dijalankan.img

  1. Modul yang mendapatkan data pesanan dalam buku pesananimgIa juga perlu digunakan bersama-sama dengan Get Depth Data module dalam Transaction Module Type.imgIndeks ditetapkan kepada 0 dan pesanan jualan ditetapkan untuk mendapatkan maklumat satu pesanan jualan.

img

Seperti kod strategi JavaScript:

function main () {
    Log(exchange.GetDepth().Asks[0])
}
  1. Modul untuk mendapatkan atribut dalam maklumat asetimgModul ini perlu digunakan bersama-sama dengan modul mendapatkan maklumat aset.imgSebagai contoh: cetak mata wang yang tersedia akaun semasaimgPaparan ujian belakang:img

Seperti kod strategi JavaScript:

function main () {
    Log(exchange.GetAccount().Stocks)
}
  1. Modul untuk mendapatkan atribut dalam data pesananimgModul ini digunakan untuk mendapatkan nilai atribut dalam data pesanan, seperti harga atau kuantiti menjual satu dalam buku pesanan (contoh No.13).img

Hasil ujian belakang:img

Seperti kod strategi JavaScript:

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

Ia juga boleh digunakan untuk mendapatkan atribut dalam maklumat pesanan yang dikembalikan oleh Query Order Details Module (dijelaskan dalam bab lanjutan).

  1. Modul untuk mendapatkan atribut kedudukan dalam maklumat kedudukanimgBegitu juga, ia harus digunakan bersama-sama dengan Get Futures Position Module. Perhatikan bahawa data kedudukan yang dikembalikan oleh Get Futures Position Module adalah array (daftar) yang mengandungi kedudukan dalam kontrak dan arah yang berbeza. Oleh itu, indeks harus ditentukan semasa digunakan.

Setelah belajar banyak, mari kita menggabungkan operasi lindung nilai, iaitu lindung nilai kedua-dua kontrak jangka pendek dan hadapan.

Kami membuat lindung nilai arbitraj positif, iaitu, membuka kontrak kedudukan pendek untuk kontrak hadapan, dan membuka kontrak kedudukan panjang untuk kontrak baru-baru ini.

img

Hasil ujian belakang:

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, sila rujuk:https://www.fmz.com/square

Artikel lain dalam siri ini

- Modul Visualisasi untuk Membina Strategi Dagangan - mendalam (https://www.fmz.com/digest-topic/9509) - Modul Visualisasi untuk Membina Strategi Dagangan - Pemahaman Lanjutan (https://www.fmz.com/bbs-topic/9815)

Pemrograman membosankan boleh dengan mudah diselesaikan dengan blok bangunan.


Berkaitan

Lebih lanjut