Sumber daya yang dimuat... Pemuatan...

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

img

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

      img

      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:img

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

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

      Kita lihat hasil dari menjalankan modul gabungan ini:img

      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

      img

      Saat menambahkan tiga objek pertukaran, drop-down box akan menampilkan tiga opsi. Mempelajari modul loop sebelumnya, dalam tipe loop.img

      Di sini Anda akan belajar modul penilaian kondisional:imgKondisi penilaian dapat ditulis sebagai berikut:img

      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.

      img

      Hasil uji coba:img

      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

      img

      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).

      imgHasil tes ulang:img

      Jika Anda memanggil kode kebijakan JavaScript:

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

      imgModul 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.img

      Hasil uji coba:img

      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

      img

      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.

      img

      Periksa kembali dan lihat:img

      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

      img

      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.

      img

      Menggunakan modul "Menggali setiap elemen dalam daftar" di tipe loop, untuk menjelajahi pesanan dalam daftar yang sedang diunggah.imgSaat dijelajahi, setiap order yang diambil diberi nilai untuk variabel modul order ((dibuat dalam tipe modul variabel, seperti gambar di bawah ini:)imgMenggunakan modul jenis alat:imgMengambil ID pesanan, mengirim ke lokasi yang ditandai pada modul pembatalan pesanan, dan membatalkan modul pemesanan untuk melakukan perintah pembatalan.

      Periksa ulang:img

      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

      img

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

      img

      Perhatikan pesanan yang dikembalikan setelah operasi:img

      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:imgContoh berikut adalah contoh pengujian retest berdasarkan pengaturan tersebut.

      • Mengetahui modul status koneksi server CTP untuk komoditas berjangka

        img

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

      • Mengatur modul kontrak

        img

        Ketika objek pertukaran dikonfigurasi sebagai bursa berjangka, tidak mengatur kontrak, langsung mengakses pasar, akan memberikan kesalahan:img

        Kami menetapkan kontrak untuk MA909, methanol adalah kontrak utama saat ini.imgDengan cara ini, Anda mendapatkan nilai harga terbarunya di akun untuk kontrak MA909 saat ini.

      • Mengatur modul satu arah di bawah perdagangan futures

        Melakukan Sub-Moduleimg
        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.

        img

        Hasil tes menunjukkan:img

        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

        img

        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!


Berkaitan

Lebih banyak

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.