Modul Visualisasi Membangun Strategi Perdagangan - Lanjutan

Penulis:Penemu Kuantitas - Mimpi Kecil, Dibuat: 2019-07-17 10:22:20, Diperbarui: 2023-10-24 21:40:50

可视化模块搭建交易策略–进阶

Modul visualisasi membangun strategi transaksi maju

Belajar membangun strategi transaksi dengan modul visualisasi adalah hal yang sangat mudah, dan memiliki pemahaman konseptual tentang membangun, menyusun, dan mengintegrasikan modul visualisasi. Setelah itu, mudah untuk belajar menggunakan modul lain. Fungsi yang lebih kompleks dapat dikombinasikan.

  • ## Modul kategori transaksi

Dalam pembelajaran dan pengujian sebelumnya, kami telah membahas beberapa modul "kategori transaksi". Misalnya: Modul "Bursa Dapatkan Pasar" Modul "Bursa Dapatkan K-Line" "Saya tidak tahu.

Di sini, saya akan membahas beberapa hal yang telah saya lakukan.

  • 1 Mengakses jumlah bursa

    可视化模块搭建交易策略–进阶

    Ketika menulis strategi menggunakan perdagangan robot, lebih dari satu objek pertukaran dapat ditambahkan, seperti strategi untuk hedging. Jika Anda ingin melihat pasar, Anda mungkin perlu melihat objek yang ada di bursa, atau ketika Anda mengunjungi pasar. Pada saat ini, Anda perlu menggunakan modul untuk mendapatkan jumlah bursa.

    Pada awalnya, kita dapat mencetak jumlah bursa yang sedang dikonfigurasi dengan struktur sederhana:可视化模块搭建交易策略–进阶

    Pada dasarnya, ini seperti memanggil kode kebijakan JavaScript seperti ini:

    function main () {
        Log(exchanges.length)
    }
    

    Kita lihat hasil dari menjalankan modul gabungan ini:可视化模块搭建交易策略–进阶

    Anda dapat melihat bahwa kita menambahkan 3 objek bursa yang mewakili tiga akun bursa yang berbeda, dan hasil ulangan log output adalah 3.

  • 2. Dapatkan nama bursa

    可视化模块搭建交易策略–进阶

    Saat menambahkan tiga objek pertukaran, drop-down box akan menampilkan tiga opsi. Mempelajari modul loop sebelumnya, dalam tipe loop.可视化模块搭建交易策略–进阶

    Di sini Anda akan belajar modul penilaian kondisional:可视化模块搭建交易策略–进阶Kondisi penilaian dapat ditulis sebagai berikut:可视化模块搭建交易策略–进阶

    Kami menggunakan modul berputar untuk menelusuri nama bursa yang ditambahkan. Menggunakan modul penilaian kondisional untuk menentukan apakah hitungan siklus saat ini sesuai dengan nama bursa yang akan dicetak.

    可视化模块搭建交易策略–进阶

    Hasil uji coba:可视化模块搭建交易策略–进阶

    Seperti kode kebijakan JavaScript:

    function main () {
        for (var i = 1 ; i <= exchanges.length ; i++) {
            if (i == 1) {
                Log(exchanges[0].GetName())
            } else if (i == 2) {
                Log(exchanges[1].GetName())
            } else {
                Log(exchanges[2].GetName())
            }
        }
    }
    
  • 3. Dapatkan pasangan transaksi saat ini

    可视化模块搭建交易策略–进阶

    Contoh sederhana adalah mengambil pasangan transaksi dari objek bursa pertama yang saat ini ditetapkan, dan memberikan nilai pada variabel text (dibuat sebelumnya dalam kategori variabel).

    可视化模块搭建交易策略–进阶Hasil tes ulang:可视化模块搭建交易策略–进阶

    Jika Anda memanggil kode kebijakan JavaScript:

    function main () {
        var text = exchange.GetCurrency()
        Log(text)
    }
    
  • 4, modul bawah

    可视化模块搭建交易策略–进阶Modul ini sangat penting, digunakan untuk operasi ordering, posisi pertama () untuk menyematkan variabel harga, digunakan untuk menentukan harga ordering, atau juga dapat langsung memasukkan nilai tetap. Posisi kedua () ditanamkan di bawah variabel jumlah yang akan diorder.

    Sebagai contoh, kita menyusun contoh pembayaran dengan harga terbaru berdasarkan data transaksi tik saat ini, ditambah dengan harga 10 dolar AS, jumlah pesanan terakhir ditetapkan menjadi 0,1 koin, dan ID pesanan dicetak.可视化模块搭建交易策略–进阶

    Hasil uji coba:可视化模块搭建交易策略–进阶

    Seperti kode kebijakan JavaScript berikut:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
        Log(id)
    }
    
  • 5. Dapatkan modul transaksi saat ini pada pesanan yang dipasarkan

    可视化模块搭建交易策略–进阶

    Modul ini akan mengembalikan semua pesanan yang diserahkan pada pasangan transaksi saat ini yang berada dalam keadaan belum selesai, dan kembali dengan struktur daftar (Array) yang dapat ditangani dengan modul jenis daftar (Perjalanan operasi, dll.). Misalnya: kita sedikit mengubah contoh modul order di atas, mengubah harga 10 yuan yang ditambahkan pada saat pesanan menjadi 10 yuan yang dikurangi. Pesanan tidak akan segera selesai, akan tergantung di kedalaman jual beli (yaitu, membeli satu, membeli dua, membeli N pada suatu peringkat), sehingga pesanan berada di daftar tanggungan menunggu penyelesaian. Kami kemudian menggunakan modul "Mendapatkan transaksi saat ini untuk pesanan pesanan" untuk mendapatkan daftar pesanan yang berada di status PENDING. Untuk menghindari transaksi pesanan di pasar berikutnya yang mempengaruhi pengamatan terakhir, setelah modul "Mendapatkan transaksi saat ini untuk pesanan yang ditugaskan" dijalankan, kami mencetak daftar pesanan dan segera menggunakan modul "Melepaskan Keanehan" untuk menghentikan proses.

    可视化模块搭建交易策略–进阶

    Periksa kembali dan lihat:可视化模块搭建交易策略–进阶

    Harga pembelian berikutnya adalah lebih rendah dari harga terbaru 10 yuan pada saat itu, jadi tidak akan segera ditransfer. Setelah itu, Anda dapat mengambil pesanan yang sedang menunggu dan mencetaknya. Pada akhirnya, buanglah kesalahan dan hentikan program tersebut.

    Pada dasarnya, semua modul yang disatukan menyeru kebijakan JavaScript:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
        Log(id)
        Log(exchange.GetOrders())
        throw "stop"
    }
    
  • 6. Batalkan modul pesanan

    可视化模块搭建交易策略–进阶

    Modul ini digunakan untuk membatalkan pesanan.

    Dalam banyak situasi, strategi harus dilakukan dengan cara ini:

    Untuk itu, kami akan merekomendasikan kepada Anda untuk menghapus semua pesanan yang ada saat ini.

    Tidak diragukan lagi, ini pasti menggunakan "modul penarikan", dan saat mempelajari modul penarikan, kita dapat menggunakan plugin 5 untuk mendapatkan modul transaksi saat ini terhadap pesanan yang diserahkan, kombinasi yang memungkinkan fungsi ini.

    Pertama, untuk menguji untuk membatalkan semua pesanan, tidak jelas untuk menggantung satu pesanan, kita mulai memesan dua kali, dan jumlah harga yang berbeda digunakan untuk membedakan dua pesanan.

    可视化模块搭建交易策略–进阶

    Menggunakan modul "Menggali setiap elemen dalam daftar" di tipe loop, untuk menjelajahi pesanan dalam daftar yang sedang diunggah.可视化模块搭建交易策略–进阶Saat dijelajahi, setiap order yang diambil diberi nilai untuk variabel modul order ((dibuat dalam tipe modul variabel, seperti gambar di bawah ini:)可视化模块搭建交易策略–进阶Menggunakan modul jenis alat:可视化模块搭建交易策略–进阶Mengambil ID pesanan, mengirim ke lokasi yang ditandai pada modul pembatalan pesanan, dan membatalkan modul pemesanan untuk melakukan perintah pembatalan.

    Periksa ulang:可视化模块搭建交易策略–进阶

    Menggunakan kebijakan JavaScript untuk menjelaskan:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
        Log(id)
        var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
        Log(id2)
        var orders = exchange.GetOrders()
        Log(orders)
        for (var i in orders) {
            var order = orders[i]
            Log(exchange.CancelOrder(order.Id))
        }
    }
    
  • 7. Modul untuk mendapatkan detail pesanan berdasarkan ID pesanan

    可视化模块搭建交易策略–进阶

    Modul ini memiliki akses ke modul variabel Order ID yang dapat mengembalikan detail pesanan.

    可视化模块搭建交易策略–进阶

    Perhatikan pesanan yang dikembalikan setelah operasi:可视化模块搭建交易策略–进阶

    Perbandingan dari hasil yang dijalankan dalam contoh 5 ton dan 5 ton dapat ditemukan bahwa pesanan yang dicetak adalah informasi pesanan yang terpisah, tidak ada[]Paket dengan tanda kurung di tengah. Karena contoh yang dikembalikan adalah daftar di kerucut 5, contoh ini mengembalikan informasi pesanan yang terpisah (berdasarkan pengambilan variabel ID dari modul pada posisi kerucut yang ditransfer ke modul).

    Contoh di atas adalah implementasi kebijakan JavaScript:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
        Log(exchange.GetOrder(id))
    }
    
  • Modul perdagangan berjangka

    Modul di atas kita pelajari satu per satu, menguji bursa yang kita atur sebagai komoditas berjangka.

    Setel ulang:可视化模块搭建交易策略–进阶Contoh berikut adalah contoh pengujian retest berdasarkan pengaturan tersebut.

    • Mengetahui modul status koneksi server CTP untuk komoditas berjangka

    可视化模块搭建交易策略–进阶

    Komoditas berjangka memiliki waktu buka dan waktu istirahat, dan saat libur, tidak dapat dihubungkan.

    • Mengatur modul kontrak

    可视化模块搭建交易策略–进阶

    Ketika objek pertukaran dikonfigurasi sebagai bursa berjangka, tidak mengatur kontrak, langsung mengakses pasar, akan memberikan kesalahan:可视化模块搭建交易策略–进阶

    Kami menetapkan kontrak untuk MA909, methanol adalah kontrak utama saat ini.可视化模块搭建交易策略–进阶Dengan cara ini, Anda mendapatkan nilai harga terbarunya di akun untuk kontrak MA909 saat ini.

    • Mengatur modul satu arah di bawah perdagangan futures

    Melakukan Sub-Module可视化模块搭建交易策略–进阶
    Jika Anda ingin membeli saham, Anda harus menentukan arahnya, karena opsi tersebut memiliki: buy: banyak saham sell: gudang kosong closebuy: banyak saham closesell: gudang kosong Empat arah (komoditas berjangka ditambah dua arah: closebuy_today, closeesell_today, dan close-buy_today).

    Misalnya, jika Anda mengatur modul untuk membeli, maka Anda akan memiliki dua arti, yang menghasilkan dua makna. Oleh karena itu dibutuhkan modul "Setel arah perdagangan berjangka" untuk mengatur arah perdagangan yang jelas.

    可视化模块搭建交易策略–进阶

    Hasil tes menunjukkan:可视化模块搭建交易策略–进阶

    Seperti kode kebijakan JavaScript:

      function main () {
          while (true) {
              if (exchange.IO("status")) {
                  exchange.SetContractType("MA909")
                  Log(exchange.GetTicker().Last)
                  exchange.SetDirection("buy")
                  Log(exchange.Buy(1000, 1))
                  throw "stop"
              } else {
                  Log("未连接商品期货前置机")
              }
              Sleep(1000)
          }
      }
    
  • 9, Modul perdagangan futures mata uang digital

    Penggunaan mata uang digital untuk futures sama dengan penggunaan mata uang komoditas untuk futures di 8 tabel di atas

    • Kode kontrak dalam bentuk OKEX dapat:

      • this_week: minggu ini
      • next_week: minggu depan
      • Kuartal: Kuartal
      • swap: permanen
    • BitMEX:

      • XBTUSD
      • ETHUSD
    • Mengatur modul tuas

    可视化模块搭建交易策略–进阶

    Untuk mengatur leverage mata uang digital berjangka.

      # 注意 : 回测不支持。
    

    Seperti kebijakan JavaScript:

      function main () {
          exchange.SetMarginLevel(10)
      }
    

Strategi untuk memvisualisasikan contoh:

Lebih banyak strategi dapat ditemukan di:https://www.fmz.com/square

Artikel lain dalam seri ini

Programming yang membosankan, yang bisa dilakukan dengan mudah dengan cara menggunakan blok, cobalah, sangat menyenangkan!


Artikel terkait

Informasi lebih lanjut

AllinSetelah belajar lebih dari sebulan, saya masih belum bisa menulis strategi, dan sekarang saya hanya mengandalkan batu bata!

Penemu Kuantitas - Mimpi KecilTerima kasih atas dukungannya, artikel ini akan terus dilakukan. Pada kenyataannya, berdasarkan kode kebijakan JavaScript yang sesuai di belakang setiap paradigma, Anda dapat dengan mudah menguasai strategi yang ditulis dengan JS.