Modul imej membina strategi dagangan - kemajuan

Penulis:Pencipta Kuantiti - Impian Kecil, Dicipta: 2019-07-17 10:22:20, Dikemas kini: 2023-10-24 21:40:50

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

Modul imej membina strategi perdagangan maju

Belajar membina strategi dagangan dengan modul imej adalah satu permulaan yang baik, dengan pemahaman konseptual tentang membina dan menyusun modul imej. Kemudian, mudah untuk belajar menggunakan modul lain. Fungsi yang lebih kompleks boleh digabungkan.

  • ## Modul kategori transaksi

Dalam pembelajaran dan ujian sebelum ini, kami telah menyentuh beberapa modul "kategori urus niaga". Contohnya: Modul "Bursa Dapatkan Perdagangan" Modul "Bursa Dapatkan K-Line" ...

Mereka yang telah digunakan tidak boleh digambarkan.

  • 1. Dapatkan jumlah bursa

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

    Apabila menulis strategi menggunakan perdagangan bot, lebih daripada satu objek pertukaran boleh ditambah, seperti strategi untuk lindung nilai. Mungkin anda perlu melawat objek bursa (yang bermaksud melawat secara individu) ketika anda melawat pasaran. Pada masa ini, anda perlu menggunakan modul untuk mendapatkan nombor bursa.

    Kita boleh mulakan dengan mencetak jumlah bursa yang sedang dikonfigurasikan dengan struktur yang mudah:可视化模块搭建交易策略–进阶

    Pada dasarnya, ia adalah seperti memanggil kod dasar JavaScript seperti ini:

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

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

    Anda boleh lihat bahawa kita telah menambah 3 objek pertukaran yang mewakili tiga akaun pertukaran yang berbeza, dan hasil log retest adalah 3.

  • 2. Dapatkan nama bursa

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

    Apabila anda menambah tiga objek pertukaran, kotak turun menunjukkan tiga pilihan. Mempelajari modul gelung terlebih dahulu, dalam jenis gelung.可视化模块搭建交易策略–进阶

    Di samping itu, anda juga boleh belajar satu modul penghakiman syarat terlebih dahulu:可视化模块搭建交易策略–进阶Syarat pertimbangan boleh ditulis:可视化模块搭建交易策略–进阶

    Kami menggunakan modul berputar untuk menyambung nama bursa yang ditambahkan Menggunakan modul penghakiman syarat untuk menentukan kiraan kitaran semasa, sama ada ia sepadan dengan nama bursa yang akan dicetak.

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

    Uji semula hasil:可视化模块搭建交易策略–进阶

    Sebagai contoh, kod dasar 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 dagangan semasa

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

    Satu contoh mudah adalah mengambil pasangan transaksi objek bursa pertama yang ditetapkan pada masa ini dan memberi nilai kepada pembolehubah teks (dicipta terlebih dahulu dalam kategori pembolehubah).

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

    Jika anda memanggil kod dasar JavaScript:

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

    可视化模块搭建交易策略–进阶Modul ini sangat penting untuk operasi pesanan, di mana kedudukan pertama embedded variable harga, untuk menentukan harga pesanan, atau juga boleh masukkan nombor tetap secara langsung. Kedudukan kedua () ditanamkan dalam pembolehubah kuantiti unit untuk menentukan kuantiti yang akan diurutkan.

    Sebagai contoh, kita menyusun contoh pembayaran berdasarkan harga terkini berdasarkan data transaksi tik semasa, ditambah dengan harga 10 yuan, jumlah pesanan ditetapkan kepada 0.1 sen, dan cetak ID pesanan.可视化模块搭建交易策略–进阶

    Uji semula hasil:可视化模块搭建交易策略–进阶

    Sebagai contoh, kod dasar JavaScript berikut:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
        Log(id)
    }
    
  • 5. Dapatkan modul urus niaga semasa untuk tempahan

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

    Modul ini akan mengembalikan semua pesanan yang diserahkan kepada pasangan urus niaga semasa yang berada dalam keadaan tidak selesai, yang dikembalikan adalah struktur senarai (arry) yang boleh diuruskan dengan modul jenis senarai (menjelajah operasi dan lain-lain). Sebagai contoh: kita sedikit mengubah contoh modul pesanan yang di atas, mengubah harga 10 yuan ditambah pada masa pesanan menjadi 10 yuan dikurangkan. Pesanan tidak akan segera ditangani, tetapi akan berada di dalam kedalaman jual beli (iaitu membeli satu, membeli dua, membeli N pada peringkat tertentu), sehingga pesanan berada dalam keadaan menunggu pesanan. Kami kemudian menggunakan modul "Mendapatkan urus niaga semasa untuk pesanan tempahan" untuk mendapatkan senarai pesanan yang berada dalam status PENDING. Untuk mengelakkan pemesanan pesanan dalam pasaran berikutnya yang mempengaruhi pengamatan terakhir, kami menggunakan modul "Mengambil urus niaga semasa untuk pesanan yang diamanahkan" untuk menghentikan proses dengan segera menggunakan modul "Mengeluarkan Kecualian" selepas modul ini dijalankan.

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

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

    Harga pembelian seterusnya adalah lebih rendah daripada harga terkini 10 yuan pada masa itu, jadi tidak akan dilakukan dengan segera. Kemudian, order yang sedang menunggu untuk diproses akan diambil dan dicetak. Akhirnya, buang keanehan dan hentikan program.

    Modul yang disatukan itu menyeru strategi 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 kes, anda perlu melakukan ini semasa menyusun strategi:

    Mengeluarkan semua pesanan yang sedang ditayangkan.

    Tidak syak lagi, ini pasti menggunakan "modul penarikan", dan semasa mempelajari modul penarikan, kita boleh menggunakan modul penarikan 5 untuk mendapatkan perdagangan semasa terhadap pesanan yang diamanahkan, kombinasi untuk mencapai fungsi ini.

    Pertama, untuk menguji untuk membatalkan semua pesanan, tidak jelas untuk menggantung satu pesanan, kita mula membuat pesanan dua kali, dan jumlah harga yang berbeza digunakan untuk membezakan kedua-dua pesanan.

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

    Menggunakan modul "Mengembara setiap elemen dalam senarai" dalam modul Jenis Loop untuk mengembara pada pesanan dalam senarai yang sedang diunggah.可视化模块搭建交易策略–进阶Apabila ditelusuri, setiap pesanan yang diambil diberikan kepada modul pemboleh ubah order ((dicipta dalam jenis modul pemboleh ubah, seperti gambar di bawah:)可视化模块搭建交易策略–进阶Menggunakan modul jenis alat:可视化模块搭建交易策略–进阶Mengambil ID pesanan, dihantar ke modul pembatalan pesanan di lokasi yang tidak diingini, membatalkan modul pesanan untuk melaksanakan pesanan pembatalan.

    Percubaan semula dijalankan:可视化模块搭建交易策略–进阶

    Menggunakan dasar JavaScript untuk menerangkan:

    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 butiran pesanan berdasarkan ID pesanan

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

    Modul ini mempunyai akses ke modul pembolehubah ID pesanan untuk mendapatkan maklumat butiran pesanan.

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

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

    Perbandingan antara hasil operasi dalam contoh 5 tan dan 5 tan dapat dilihat bahawa pesanan yang dicetak adalah satu maklumat pesanan yang berasingan, tidak ada[]Paket di dalam kurung. Oleh kerana contoh kerucut 5 adalah senarai yang dikembalikan, contoh ini akan mengembalikan maklumat pesanan yang berasingan (mengambil modul ID pembolehubah berdasarkan lokasi kerucut yang dihantar oleh modul ini).

    Contoh di atas adalah sama dengan menjalankan dasar JavaScript:

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

    Modul di atas kita belajar satu persatu, menguji bursa yang kita atur sebagai niaga hadapan komoditi.

    Tetapan semula:可视化模块搭建交易策略–进阶Contoh berikut adalah ujian retest berdasarkan tetapan ini.

    • Mengesan modul status sambungan pelayan CTP untuk niaga hadapan dan syarikat niaga hadapan

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

    Harta hadapan komoditi mempunyai waktu buka dan waktu cuti, ketika cuti, tidak boleh disambungkan.

    • Tetapkan modul kontrak

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

    Apabila objek bursa dikonfigurasikan sebagai bursa niaga hadapan, tanpa menetapkan kontrak, mendapatkan pasaran secara langsung, akan memberikan kesalahan:可视化模块搭建交易策略–进阶

    Kami menetapkan kontrak sebagai MA909, methanol adalah kontrak utama kami sekarang.可视化模块搭建交易策略–进阶Dengan cara ini, anda mendapat nilai harga terkini dalam akaun untuk kontrak MA909 pada saat ini.

    • Tetapkan modul satu arah di bawah dagangan niaga hadapan

    Melakukan Sub-modul可视化模块搭建交易策略–进阶
    Peruntukan ini perlu ditentukan kerana masa hadapan mempunyai: beli: banyak saham sell: Peranti kosong closebuy: banyak saham closesell: gudang kosong Empat arah (komoditi niaga hadapan ditambah dua arah: closebuy_today kedudukan kosong, closesell_today kedudukan kosong)

    Sebagai contoh, jika anda menetapkan modul pesanan bawah untuk membeli, maka anda mempunyai dua makna, yang menghasilkan dua makna. Oleh itu, anda memerlukan modul "Setting a single direction under futures trading" untuk menetapkan arah bawah yang jelas.

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

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

    Sebagai contoh, kod dasar 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 dagangan niaga hadapan mata wang digital

    Penggunaan mata wang digital pada masa hadapan adalah sama dengan penggunaan mata wang hadapan komoditi dalam 8 jenama di atas

    • Kod kontrak dalam contoh OKEX boleh menjadi:

      • this_week: minggu ini
      • next_week: minggu depan
      • quarter: suku
      • swap: kekal
    • BitMEX:

      • XBTUSD
      • ETHUSD
    • Tetapkan modul tuas

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

    Ia digunakan untuk menetapkan tumpuan mata wang digital.

      # 注意 : 回测不支持。
    

    Sebagai contoh, strategi JavaScript:

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

Strategi untuk memvisualisasikan paradigma:

Lebih banyak strategi boleh didapati di:https://www.fmz.com/square

Artikel lain dalam siri ini

Program yang membosankan, mudah dilakukan dengan cara blok, cubalah, sangat menyeronokkan!


Kandungan berkaitan

Lebih lanjut

AllinSelepas belajar programming lebih sebulan, saya masih belum dapat menulis strategi, dan sekarang saya hanya bergantung kepada batu bata!

Pencipta Kuantiti - Impian KecilTerima kasih atas sokongan anda, siri ini akan diteruskan. Sebenarnya, berdasarkan kod dasar JavaScript yang sesuai di belakang setiap paradigma, mudah untuk menguasai strategi yang ditulis dengan JS.