Modul imej membina strategi dagangan - kemajuan

Penulis:Mimpi kecil, Dicipta: 2019-07-17 10:22:20, Dikemas kini: 2023-10-24 21:40:50

img

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 urus niaga

    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

      img

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

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

      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

      img

      Apabila anda menambah tiga objek pertukaran, kotak turun menunjukkan tiga pilihan. Mempelajari modul gelung terlebih dahulu, dalam jenis gelung.img

      Di samping itu, anda juga boleh belajar satu modul penghakiman syarat terlebih dahulu:imgSyarat pertimbangan boleh ditulis:img

      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.

      img

      Uji semula hasil:img

      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

      img

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

      imgHasil ujian semula:img

      Jika anda memanggil kod dasar JavaScript:

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

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

      Uji semula hasil:img

      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

      img

      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.

      img

      Periksa semula dan lihat:img

      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

      img

      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.

      img

      Menggunakan modul "Mengembara setiap elemen dalam senarai" dalam modul Jenis Loop untuk mengembara pada pesanan dalam senarai yang sedang diunggah.imgApabila ditelusuri, setiap pesanan yang diambil diberikan kepada modul pemboleh ubah order ((dicipta dalam jenis modul pemboleh ubah, seperti gambar di bawah:)imgMenggunakan modul jenis alat:imgMengambil ID pesanan, dihantar ke modul pembatalan pesanan di lokasi yang tidak diingini, membatalkan modul pesanan untuk melaksanakan pesanan pembatalan.

      Percubaan semula dijalankan:img

      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

      img

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

      img

      Perhatikan pesanan yang dikembalikan selepas menjalankan:img

      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:imgContoh berikut adalah ujian retest berdasarkan tetapan ini.

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

        img

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

      • Tetapkan modul kontrak

        img

        Apabila objek bursa dikonfigurasikan sebagai bursa niaga hadapan, tanpa menetapkan kontrak, mendapatkan pasaran secara langsung, akan memberikan kesalahan:img

        Kami menetapkan kontrak sebagai MA909, methanol adalah kontrak utama kami sekarang.imgDengan 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-modulimg
        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.

        img

        Ujian semula menunjukkan:img

        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

        img

        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!


Berkaitan

Lebih lanjut

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

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