Sumber dimuat naik... memuat...

Ringkasan Soalan Lazim (Pembaruan...)

Penulis:FMZ~Lydia, Dicipta: 2023-07-13 14:44:41, Dikemas kini: 2024-02-05 20:04:06

[TOC]

img

Ringkasan Soalan Lazim (Pengemas kini...)

  • Cari FAQ untuk mudah dilihat. Bagaimana untuk mencari kata kunci di jawatan? PenggunaanCtrl + funtuk membuka halaman dan mencari; masukkan kata kunci, contohnya: docker. Kemudian lokasi di halaman dengan perkataan docker akan dicari.

  • Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • Weixin:

    img

Antara muka API

  • Kenapa?Beli satu hargadanjual satu hargadiperolehi denganGetTickerdan yang diperolehi denganGetDepthBerbeza?

    Data daripadaGetTickerdanGetDepthmungkin tidak dapat diperoleh pada masa yang sama. terdapat kelewatan masa cetrain, jadi data akan berubah.GetTickerakan sedikit lebih cepat, untuk data adalah kurang daripada data yang diperoleh olehGetDepth.

  • exchang.GetOrdersmendapat perintah yang belum selesai, jadi di mana untuk mendapatkan perintah yang dilaksanakan?

    Terdapat satu lagi API untuk pertanyaan perintah, iaitu,exchange.GetOrder. Ia menyoal semua jenis pesanan, mengikutIDMasukkan urutanIDOleh itu, untuk mendapatkan perintah yang dilaksanakan, anda perlu melihat sama ada platform menyediakan jenis antara muka; antara muka yang disediakan oleh setiap platform agak berbeza.

  • DalamJavaScriptStrategi, hasil string masa menukar kepada timestamp adalah salah.

    Anda perlu mengambil kira zon waktu dalam tetapan masa sistem.

    img

  • Kenapa harga buka dan harga tutup yang saya cetak adalah sama?

    1.Mungkin pada masa anda mencetak, memang tidak ada perdagangan di platform, jadi harga buka, tutup, tertinggi dan terendah BAR adalah sama sepanjang masa. 2.Anda perlu memeriksa sama ada BAR yang anda amati adalah BAR terakhir, kerana harga buka, tutup, tertinggi dan terendah BAR terakhir adalah sama.

  • Kesalahan mengesahkan masa dengan pelayan, sepertiSignature not valid:Invalid submission time or incorrect time format

    Kesilapan ini adalah masalah sistem operasi lama sepertiwindows2000/2003/XP, sila rujuk:

https://support.microsoft.com/en-us/help/821893/the-system-clock-may-run-fast-when-you-use-the-acpi-power-management-t

Kami mencadangkan anda menggunakanLinuxpelayan, atau anda boleh memasang perisian penyegerakan masa dalam iniwindowssistem di mana kesilapan berlaku, untuk menyegerakkan masa pada frekuensi tinggi dan mencegah kesilapan pengesahan masa berlaku.

  • Mengapa terdapat perbezaan antara nilai yang dikira olehATR (TR) daripada Mylanguage dan yang dikira olehTA/talibPerpustakaan?

Sebabnya adalah bahawa kaedah pengiraan penunjuk Mylanguage tidak konsisten dengan algoritma asasTA/talibPerpustakaan. kedua-duanya betul, tetapi algoritma yang berbeza.MACD, ada yang menggunakan satuDIF-DEA, dan beberapa menggunakan dua kaliDIF-DEA, yang kedua-duanya betul.

  • Apa yang ia mewakili, jika nama platform adalahFutures_Esunny?

    Ia mewakili objek pertukaranProtokol Esunny, yang boleh dikembalikan oleh fungsiexchange.GetName(). Pada masa ini, stesen antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

    • Mylanguage merujuk kepada data dalam beberapa tempoh, selepas#EXPORTTEST...#ENDmenyatakan pembolehubah dalam rujukan blok kod pelbagai tempoh. ApabilaREFdigunakan apabila merujuk dalam strategi, data akan dirujuk mengikut tempoh semasa, yang berbeza dari apa yang anda jangkakan.

    Data pelbagai tempoh yang anda perlukan akan diproses di#EXPORTTEST...#END, jadi anda boleh menggunakannya secara langsung di luar.

  • Saya tidak dapat mencari dokumentasi FMZ API.

    Anda boleh masukkan alamat halaman secara langsung:https://www.fmz.com/api, atau klik pautan seperti gambar berikut:

    img

  • Kenapa?MACDyang dikira oleh FMZ berbeza dengan yang dikira oleh platform?

    Apabila membandingkan, adalah perlu untuk memberi perhatian kepada sama ada tempoh K-garis adalah sama, sama adaMACDparameter penunjuk adalah sama, tempoh masa adalah sama, dan simbol adalah sama.MACD; ada yangDIF-DEA, dan ada juga yang2*(DIF-DEA); DIFdanDEAharus konsisten.

  • Apa yang berkaitan dengan nombor K-line yang diperoleh, apabila data K-line sejarah diperoleh?

    Apabila mengaksesexchange.GetRecordsAntara muka untuk mendapatkan data K-line, bilangan K-line yang dikembalikan oleh antara muka tertentu ditentukan oleh platform. Mungkin bilangan K-line yang dikembalikan oleh setiap platform tidak konsisten (walaupun beberapa platform tidak menyediakan antara muka K-line. Dalam kes ini, docker akan memanggil antara muka untuk mendapatkan data sejarah perdagangan platform apabila strategi memanggilexchange.GetRecords. Antara muka data menyintesis K-garis mengikut sejarah dagangan). K-garis yang diterima oleh docker akan terus terkumpul bersama-sama, dan ia adalah perlu untuk mengaksesexchange.GetRecordsantara muka dengan frekuensi tertentu, jika tidak, kesinambungan data mungkin terjejas.

  • Saya mendapati bahawa memanggil fungsiexchange.BuyHanya pulanganIDdalam dokumentasi API, tetapi mengapa ia mengembalikan begitu banyak maklumat apabila saya beroperasi?

    Fungsi yang boleh menjana eksport log dalam fungsi FMZ API, sepertiLog, exchange.Buy, exchange.CancelOrder, dan lain-lain, semua boleh diikuti oleh beberapa parameter tambahan selepas parameter yang diperlukan.exchange.CancelOrder(orders[i].Id, orders[j])tambahan mengeksport maklumat pesanan apabila membatalkanorders[j].

  • Bagaimana untuk melakukan mesej WeChat Push dalam bot?

    WeChat push hanya sah pada bot; tambah'@'pada akhirLogfungsi, dan kemudian maklumat cetakLogboleh didorong; anda boleh mencari butiran dalam dokumen API di:https://www.fmz.com/api#LogPada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn. Push WeChat hanya disokong di stesen domestik FMZ.

  • Bolehkah komoditi niaga hadapan menggunakan kontrak utama berterusan dan kontrak indeks?

    Ia menyokong kontrak berterusan utama dan kontrak indeks niaga hadapan komoditi. Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • var records = exchange.GetRecords(PERIOD_D1)adalah untuk mendapatkan K-garis harian, jadi jika saya beroperasi niaga hadapan dalam bot, apa K-garis harian kontrak yang diperoleh? apa yang harus saya tulis jika saya mahu mendapatkan kontrak tertentu harian K-garis data, seperti data K-garis RB atau saya?

    Anda harus menetapkanKod kontraksebelum mendapatkan TAQ (sekurang-kurangnya menetapkan kod kontrak sekali sejak program bermula).SetContractType("rb1805"), Tetapkan kontrak yang dikendalikan semasa untukrb1805Hubungi lagi API yang mendapatkan TAQ, anda boleh mendapatkan data TAQ kontrak rb1805. Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • Bagaimana untuk menulis kod kontrak niaga hadapan komoditi?

    Anda boleh merujuk kepada dokumentasi FMZ API. Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • Will.exchange.GetAccountgagal mendapatkan maklumat kerana masalah rangkaian dan lain-lain, dan adakah lapisan bawah sistem FMZ sudah memproses kegagalan? atau pengguna perlu menangani kegagalan permintaan itu sendiri? Mengapa pegawai FMZ tidak mengendalikannya?

    Terdapat kegagalan yang memerlukan pengguna untuk melakukan toleransi ralat. Lapisan bawah FMZ tidak memproses data, dan data yang dikembalikan kepada pengguna adalah data yang tidak diproses. Kaedah toleransi ralat atau logik tertentu dirumuskan oleh strategi tertentu. Kerana jika diproses, ia mungkin mempengaruhi keputusan pengguna, dan keputusan akan diproses oleh strategi, yang secara khusus merujuk kepadamaklumat ralat penapisanataucuba lagidan kaedah pemprosesan lain.

  • Apakah unit jumlah pesanan kontrak OKEX? Adakah jumlah syiling atau jumlah kontrak?

    Jumlah pesanan kontrak OKEX dikira dengan jumlah kontrak; contohnya,exchange.Buy(1000,1)bermaksud meletakkan pesanan pada harga 1000, dengan jumlah kontrak 1.

  • Adakah ia bermakna untuk membuat perintah had apabila saya memanggilexchange.Selldanexchange.Buydi FMZ?

    Untuk butiran, anda perlu melihat parameter pertama yang dihantar (parameter pertama adalah harga pesanan).-1untuk meletakkan pesanan pasaran. makna jumlah beli dan jualan jumlah adalah entah bagaimana berbeza (parameter kedua), dan jika harga tidak-1Dalam kebanyakan antara muka pesanan platform spot, jumlah pesanan pesanan beli pasaran adalahJumlah asetTidakJumlah syiling. Dalam antara muka pesanan platform niaga hadapan cryptocurrency, jumlah pesanan biasanya bilangan bulat jumlah kontrak.

    Periksa antara muka perintah:https://www.fmz.com/api#exchange.buyprice-amount https://www.fmz.com/api#exchange.sellprice-amount

  • Fungsi Mail

    Mail("smtp.qq.com", "xxxx@qq.com", "xxx", "xxx@qq.com", "test title", "test body")
    

    Akses kepada QQs smtp203.205.232.7Pada masa ini, kebanyakan pelayan awan dilindungi dari port 25, kecuali untuk pelayan fizikal, pengendali tidak akan melindungi port 25. Kebanyakan pelayan awan juga boleh memohon untuk membuka port 25.

  • Parameter templat untuk Pine language, Mylanguage: bilangan tempoh maksimum pembolehubah mempengaruhi pengiraan penunjuk

Secara lalai, bilangan maksimum tempoh adalah 600, jika parameter penunjuk ditetapkan terlalu besar, contohnya, mengira MA ((1000). maka nilai purata 1000 data tidak boleh dikira, kerana sistem hanya menyimpan 600 data.

Pelaporan Kesalahan

  • Mesej ralat popup: SyntaxError: nama pembolehubah dijangkakan.

Periksa kawasan penyuntingan kod strategi untuk sebarang isyarat ralat. Semak sama ada terdapat nama pembolehubah yang hilang semasa mengisytiharkan pembolehubah, seperti lupa menulis nama dalam var name = a. Juga, periksa sama ada kata kunci bahasa pengaturcaraan digunakan semasa menetapkan parameter antara muka strategi. Tidak disyorkan untuk menggunakan kata kunci bahasa pengaturcaraan yang biasa digunakan sebagai nama pembolehubah, kerana ia boleh menyebabkan konflik, walaupun bahasa pengaturcaraan semasa tidak mempunyai kata kunci tertentu itu.

  • BITMEX429 kesilapan,{"error":{"message":"Rate limit exceeded retry in 1seconds……"}}

    Apabila anda melihat ralat 429, itu bermakna kekerapan mengakses platform terlalu tinggi.

  • Only support CTPKesilapan

    Itu bermakna awak memanggilCTP niaga hadapan komoditiantara muka atau perpustakaan dalamStrategi mata wang kripto. Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • BittrexKesilapan dalam bot:{"success":false,"message":"NOT_ALLOWED","result":null}

    Ia menunjukkan platform had keistimewaan.Bittrex, dan lihat sama ada perlu memeriksa maklumat, seperti perjanjian pengguna.

  • Kesalahan operasi bot:TypeError:value has no property at

    img

    Kerana kesilapan yang dilaporkan dalam backtest dan bot adalah berbeza, kesilapan ini tidak dapat dikesan semasa backtest.

  • unable to open databaseKesilapan

    imgJika sistem adalahMac OSSistem, perhatikan untuk memeriksa sama ada ia adalah masalah izin. Atau, ia boleh menjadi kesilapan yang disebabkan oleh ruang penuh cakera keras peranti, yang melumpuhkan penciptaan fail pangkalan data bot.

  • Kesalahan:do not support the function

    Ia merujuk kepada keadaan bahawa objek pertukaran yang ditambahkan semasa backtest adalah platform spot cryptocurrency, tetapi fungsi API niaga hadapan dipanggil dalam kod.

  • Kesalahan:in SetCurrency OSError: exception: access violation reading 0x000000FCF25F0000

    Dalam niaga hadapan cryptocurrencyPythonstrategi, sistem backtest menggunakan docker peribadi, dan pasangan dagangan ditukar dalam kod, yang menyebabkan ralat dilaporkan. Sebabnya adalah bahawa sistem backtest tidak menyokong backtest niaga hadapan cryptocurrency untuk menukar pasangan perdagangan.

  • Kesilapan decrypt [Gambar]imgOleh kerana kata laluan akaun FMZ telah diubah, yang membuat KEY API yang dikonfigurasikan tidak sah, dan menimbulkan ralat. Penyelesaian: mengkonfigurasi platform API KEY lagi, berhenti dan mulakan semula docker, dan kemudian cuba memulakan semula bot.

  • PythonLaporan ujian semula enjin tempatanEOFerror.

    EOFCatch pengecualian adalah cukup dan anda boleh memanggilnya di mana sahajaPythondisokong.

 # encoding: utf-8  

 '''backtest
 start: 2021-08-30 00:00:00
 end: 2022-09-05 00:00:00
 period: 1d
 basePeriod: 1h
 exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
 '''

 from fmz import *
 task = VCtx(__doc__)             # initialize backtest engine from __doc__  

 def main():  

     while not exchange.IO("status"):
         Sleep(1000)
     exchange.SetContractType("swap")
     
     while True:
         bars_1min = _C(exchange.GetRecords, PERIOD_M1)    # Get 1min K-line              
         print(len(bars_1min))
         _CDelay(2000)      

 # Calling the main function  

 try:
     main()
 except:
     print(task.Join(False))
  • Mylanguage melibatkan kesilapan yang sangat tersembunyi dalam pengiraan tempoh, dan nilai yang dikira mungkin N / A, seperti contoh berikut:

    img

    Sebabnya ialah parameter tempoh pengiraan melebihi julat data, mengakibatkan pengiraan nilai N/A. Kaedah pemprosesan:

    img

  • Kesilapan berlaku di Mylanguage: kesilapan parsing, dan strategi hanya mempunyai kod mudah, bilangan baris ralat sangat panjang, dan punca ralat tidak dapat dijumpai.

    Ia mungkin adalah kesilapan yang disebabkan oleh masalah templat awal Mylanguage. Penyelesaian: 1. Ekspor strategi sebagai fail xml. 2. Buat strategi Mylanguage kosong baru. 3. Import fail xml ke dalam strategi kosong yang baru dicipta. 4. Tambah bot untuk menguji.

  • Kesalahan:fatal error:unexpected signal during runtime execution...go routine 11[syscall,locked to thread]

    Periksa sama ada strategi yang ditulis dalamC++menggunakan penunjuk sifar, dan mencadangkan anda menggunakan mode kesalahan toleransi backtest untuk mengesan.

    img

  • Kesalahan panggilanexchange.SetMarginLevel(10): Futures_OP 0:403:{"error":{"message":"Access Denied","name":"HTTPError"}}

    Periksa sama ada keistimewaan yang berkaitanAPI KEYyang digunakan oleh platform dihidupkan.

  • Kesalahan Ujian Balik:symbol not set

    Ia adalah kerana anda tidak menetapkan kontrak dalam kod semasa backtest platform niaga hadapan; anda boleh merujuk kepadaexchange.SetContractTypefungsi dalam dokumentasi API.

  • KesilapanERR_INVALID_POSITION

    Jika sistem backtest melaporkan ralat, biasanya ia adalah ralat yang disebabkan oleh kesilapan menulis strategi. Jika anda cuba meletakkan pesanan untuk menutup kedudukan apabila tidak ada kedudukan atau jumlah kedudukan tidak mencukupi, ralat akan dilaporkan. Periksa sama ada terdapat pembekuan kedudukan yang disebabkan oleh pesanan yang tidak selesai.

  • KesilapanERR_INVALID_ORDERJika sistem backtest melaporkan ralat, biasanya ia adalah ralat yang disebabkan oleh kesilapan menulis strategi. Anda harus memperhatikan untuk memeriksa harga pesanan (masa hadapan cryptocurrency dalam sistem backtest sementara tidak menyokong pesanan pasaran), sama ada jumlah pesanan adalah 0, nombor negatif atau pecahan perpuluhan (volume pesanan kontrak niaga hadapan dikira dengan jumlah kontrak, yang adalah bilangan bulat).

  • KesilapanERR_INSUFFICIENT_ASSET

    Jika backtest melaporkan ralat, ia biasanya menunjukkan jumlah aset yang tersedia sudah tidak mencukupi untuk meletakkan pesanan semasa.

  • Binding Error:Cannot passnon-string to std::stringMaklumat ralat

    Dalam kod strategi, ralat biasanya disebabkan oleh panggilan yang salah dari nama atribut (menggunakan atribut yang tidak ditakrifkan).

  • Kesilapan{"status":6004,"msg":"timestamp is out of range"}

    Kesilapan ini bermakna timestamp pelayan adalah di luar julat, dan anda perlu mengemas kini tiem pelayan, tanpa penyimpangan yang besar.

  • Kesilapantimeout

    Kesalahan ini adalah kesalahan masa lapang, yang menunjukkan kesalahan yang dilaporkan kerana tidak mendapatkan data tindak balas dari antara muka platform untuk tempoh masa tertentu selepas mengakses antara muka platform. Secara amnya, ia adalah masalah akses rangkaian sistem di mana docker terletak (banyak masalah disebabkan oleh dinding), atau masalah antara muka platform. Penyelesaian umum: gunakan pelayan luar negara untuk menjalankan docker.

  • Kesilapan dalam bot yang berjalan selepas menulis strategi:syntax error invalid label

    Sumber ralat:

    function main(){
        if(1){
            continue
        }
    }
    //That will cause the error during operation 
    

    continuePernyataan mesti digunakan dalam gelung!

  • Kesalahan:(CTP_T@9999)Error:140CTP:change the password when first log in, and please log in again after changingKata laluan yang diubah?

    Di sini ia menunjukkan untuk mengubah suaisimnowkata laluan akaun; apabila anda menggunakan akaun syarikat niaga hadapan tertentu untuk log masuk, anda juga perlu mengubah kata laluan untuk log masuk pertama (satu akaun baru mempunyai kata laluan awal, dan anda tidak boleh menggunakan akaun tanpa mengubah kata laluan awal). Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • Kesalahan:400:{"error":{"message":"Nonce is not increasing.This nonce:1523891993165,last nonce:1523891993165","name":"HTTPError"}}

    Ia adalahnoncekesalahan pengesahan, dan maklumat kesilapan yang berkaitan dengannonceAnda boleh cuba untuk menyegerakkan masa sistem di mana bot docker terletak.

  • KesilapanSecretkey decrypt failed

    img

    Kesalahan menunjukkan kegagalan untuk menyahsulitAPI KEY. Periksa jika anda mengubah suai laluan akaun FMZ selepas anda mengkonfigurasiAPI KEYCuba untuk mengkonfigurasiAPI KEYpada halaman Tambah platform FMZ, mulakan semula docker, dan jalankan bot lagi untuk menguji.

  • Posisi berjangka komoditi terbuka Kesilapan:CTP: only close position

    Terdapat banyak sebab mengapa laporan menunjukkan statuscan only close position. Ia mungkin bahawa akaun telah dibekukan (ia tidak digunakan untuk masa yang lama, lebih daripada 1 tahun), atau ia mungkin log masuk ke saluran yang salah (CTP mempunyai banyak tempat duduk). Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • Apa sebabnya jika silapannya:GetOrder(455284455):Error:invalid order id or order canceled.sentiasa meningkat apabila saya memanggilexchange.Getorder?

    Arti harfiah: pesanan telah dibatalkan atau ID pesanan tidak sah. Sebab: dalam beberapa platform, jika anda membatalkan pesanan, maklumat pesanan tidak akan dikekalkan, dan ia akan dihapuskan. Oleh itu, apabila anda menanyakan pesanan diexchange.GetOrder, kesilapan akan dilaporkan, atau ID pesanan yang anda tanyakan pada asalnya salah.

  • Kesilapan: had kadar, 429 Terlalu banyak permintaan

    img

    rate limit, 429 Too Many Requestsmenunjukkan kekerapan mengakses antara muka platform terlalu tinggi, jadi anda perlu mengurangkan kekerapan mengakses antara muka platform.

  • Sentiasa menaikkanInvalid order price/amountdalam bot dan backtest

    Kesilapan jenis ini disebabkan oleh harga yang salah dan jumlah pesanan dihantar dalam apabila memanggil fungsi pesananexchange.Buyatauexchange.SellUntukjumlah pesanan negatif, 0dan kaedah pengesanan ralat yang lain: anda boleh menghubungiLoguntuk mengeksport parameter harga atau parameter jumlah yang akan diteruskan sebelum meletakkan pesanan olehexchange.Buyatauexchange.Sell, untuk menentukan masalah.

  • Apa jenis kesilapanGetOrders:400:{"code":-1121,"msg":"Invalid symbol."}?

    Kesilapan itu bermaksud:Pasangan dagangan yang tidak sahAnda perlu memeriksa jika tetapan pasangan dagangan adalah salah.

  • Apa maksudnya jika terdapat beberapa kod ralat apabila log bot melaporkan ralat?

    Anda boleh melihat penjelasan untuk kod ralat yang dikembalikan oleh antara muka platform yang berbeza dalam dokumentasi API platform tersebut.

Bot

  • Masa cetak kurva hasil pasaran sebenar bahasa Pine dan Mylanguage Mencetak secara berkala mengikut tetapan pada parameter templat bahasa Pine/Mylanguage, dan cetak apabila strategi ditutup sepenuhnya.

  • Bot Mylanguage mencetak bilangan garis pemicu isyarat, tetapi tidak ada operasi perintah.

    Mungkin tetapan parameter templat Mylanguage tidak sesuai, seperti ketepatan, jumlah pesanan minimum dan parameter lain. Sebabnya adalah bahawa lapisan pemicu isyarat dinilai berjaya, dan pada lapisan pelaksanaan perdagangan, dinilai bahawa pesanan tidak dapat diletakkan kerana beberapa masalah dengan parameter, dan tidak ada pesanan yang sebenarnya diletakkan. Anda boleh merujuk kepada catatan berkaitan Mylanaguage:https://www.fmz.com/bbs-topic/9788 https://www.fmz.com/bbs-topic/9791

  • Kenapa bot tidak boleh menerima isyarat permintaan apabila saya sudah menetapkan webhook url amaran di Tradingview?

    Periksa sama ada API KEY adalah betul dalam alamat url webhook. API KEY di sini merujuk kepada API KEY diperluaskan FMZ, yang ditetapkan dalam tetapan akaun di sudut kanan atas FMZ. Periksa sama ada ID bot dalam url webhook diisi dengan betul. Periksa sama ada hak istimewa API KEY diperluaskan FMZ diberikan dengan betul. Hak istimewa dipisahkan dengan koma dalam bahasa Inggeris. lalai adalah *, yang bermaksud semua hak istimewa. Jangan menulis nama fungsi dengan hak istimewa terus selepas *.

  • Mengapa simbol pasangan mata wang terhad dalam konfigurasi pasangan platform perdagangan apabila menambah bot? sejauh yang saya tahu, sebenarnya platform menyokong beberapa pasangan perdagangan.

    Anda boleh menetapkan kawalan tersuai pasangan dagangan (ia hanya boleh ditetapkan dalam bot; untuk simbol di pusat data backtest terhad, ia tidak boleh ditetapkan dalam backtest), seperti berikut:

    img

  • Mengapa ticker tidak boleh diperoleh apabila saya menjalankan FutuOpenD pada pelayan, dan boleh ticker diperoleh pada peranti tempatan?

    Anda perlu memeriksa sama ada alamat IP pelayan berada di luar negara, kerana FutuOpenD mempunyai had pada alamat IP luar negara. Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • Tiada tindakan apabila strategi Mylanguage beroperasi, dan ia hanya mengemas kini TAQ pada mulanya.

    Periksa sama ada anda menggunakan model harga dekat, yang boleh diperiksa oleh parameter templat strategi Mylanguage.

  • Komoditi niaga hadapan tutup kedudukan semalam masalah

    Dalam CTP, hanya Bursa niaga hadapan Shanghai yang boleh digunakan untuk menutup kedudukan hari ini dan kedudukan semalam.
    Ujian belakang tidak membezakankedudukan hari inidaripadaPosisi semalam, jadi ia tidak boleh menentukan untuk menutup kedudukan hari ini atau posisi semalam. Beberapa simbol dalam bot, sepertiIF, mempunyai lalai bahawa jika terdapat hari ini kedudukan, ia akan menutup hari ini kedudukan pertama. pada kesempatan ini, anda tidak boleh menentukan, dan anda hanya boleh menutup hari ini kedudukan pertama. oleh itu, maklumat kedudukan hari ini dan semalam kedudukan digabungkan menjadi satu. Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

  • Kenapa cap masa Bar diBITMEXData K-line mempunyai satu tempoh lebih daripada lokasi yang sama dalam data K-line platform lain?

    Sebabnya ialahBITMEXmengambil masa akhir Bar semasa sebagai timestamp K-garis (beberapa tempoh K-garis tidak disokong olehBITMEXantara muka, jadi cap masa tempoh itu dihasilkan oleh masa permulaan Bar).

    img

  • Dalam strategi niaga hadapan komoditi,Profitdalam data yang dikembalikan oleh fungsiexchange.GetPositionBerbeza dengan keuntungan dan kerugian berubah yang dikira?

    Sila rujuk dokumentasi API:https://www.fmz.com/api#exchange.getposition. ProfitdalamCTP protocoldidefinisikan sebagaiKeuntungan dan kerugian mengikut nilai pasaran, yang mewakili keuntungan dan kerugian kedudukan semasa anda berbanding harga penyelesaian hari dagangan sebelumnya. Pada masa ini Stesen Antarabangsa FMZ hanya menyokong perniagaan cryptocurrency. Masa hadapan komoditi, sekuriti saham dan perniagaan lain disokong oleh stesen domestik FMZ, anda boleh log masuk:https://www.fmz.cn.

Sistem Ujian Belakang

  • Kesilapan yang dilaporkan oleh sistem backtesting: Kesilapan yang dilaporkan oleh sistem backtesting:
Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.

Periksa sama ada ciri Custom Data Source digunakan dan sama ada data yang disediakan oleh perkhidmatan sumber data tersuai adalah betul.

  • Bagaimana untuk mengambil ujian / pembuat yuran? Skenario ujian untuk bayaran pengambil/pembuat.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-02-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var t = exchange.GetTicker()
    exchange.Buy(t.Last - 10, 100/(t.Last - 10))
  
    while(1){
        t = exchange.GetTicker()
        Sleep(1000)
    }
}
  • Dalam backtest niaga hadapan Binance danBITMEXApakah kadar pembiayaan dikira dalam keluk keuntungan & kerugian yang dihasilkan oleh sistem backtest?

    Kadar pembiayaan dikira dalam lengkung keuntungan & kerugian yang dihasilkan oleh sistem backtest.

  • Tombol Backtest tidak boleh diklik.

    Anda perlu memeriksa jika proksi diaktifkan, yang akan mempengaruhi penyelesaian memuatkan fail di halaman Backtest; periksa jika terdapat sebarang maklumat ralat di konsol halaman.

  • DalamTick sebenarbacktest, kenapa ada had 50MB?

    Ujian belakang tahap pasaran sebenar menunjukkan dalam Tick sebenar, TAQ sebenarnya direkodkan detik demi detik. Di samping itu, terdapat gambaran pasaran dan data aliran pesanan, yang bervolume besar, jadi hanya 50MB jumlah data yang disokong.

  • Kenapa ia tidak berfungsi apabila saya mengubah suai parameter yuran dalam sistem backtest?

    img

    Dalam sistem backtest, apabila anda menetapkan semula parameter yuran, ia akan sah selepas anda memadamkan pasangan platform-dagang lama dan menambah pasangan platform-dagang lagi; pasangan platform-dagang yang telah ditambah sebelumnya tidak boleh diubah oleh kawalan di halaman.

  • Bagaimana untuk membuat gambar tersuai backtest memaparkan lebih banyak data?

    Apabila anda melukis carta tersuai (olehChartfungsi), jumlah data lukisan yang dipaparkan dalam backtest adalah berkaitan dengancartaparameter dalam tetapan backtest, dan parameter mengawal bilangan bar maksimum carta.chart.resetfungsi digunakan untuk membersihkan sebahagian daripada data lama.

  • C++backtest tidak memaparkan apa-apa, tidak ada kesalahan dilaporkan dan tiada log, dan tiada apa-apa pada halaman berubah selepas saya mengklik butang.

    Beberapa kesilapanC++contohnya: dalam pengiraan penunjuk, bilangan K-line yang tidak mencukupi membawa kepada perbandingan dan penghakimanNANdan jenis nombor selepasNANadalah dikira, yang akan menyebabkan kerosakan program.

  • pythonUjian belakang tersumbat!

    Anda tidak boleh menulis fungsiSleepdalamtrypengesanan ralat, dan tulisan dalam imej akan menyebabkan jem.

    img

  • Dalam backtest, mengapa hanya terdapat beberapa pilihan untuk platform, dan simbol untuk pasangan perdagangan juga terhad?

    Terdapat terlalu banyak pasangan dagangan di platform, jadi hanya beberapa pasangan dagangan perwakilan dipilih untuk ujian dalam sistem backtest.kawalan adatuntuk menetapkan pasangan dagangan yang disokong oleh platform tersebut dalam bot.

  • Kenapa backtest tidak menyokong lebih banyak pasangan perdagangan?

    Sistem backtest, buat masa ini, hanya menyokong mata wang arus perdana beberapa platform yang agak besar, dan beberapa mata wang belum disokong. Jika anda perlu menguji strategi, anda boleh mengganti mata wang dengan mata wang lain yang serupa dalam backtest. Sebenarnya, kecuali kutipan pasaran mungkin terjejas, menggunakan mata wang kripto lain yang serupa untuk backtest strategi adalah baik. Secara ringkasnya, sistem backtest cuba menyokong pasangan perdagangan arus perdana, dan backtest tidak harus sepadan dengan simbol tertentu. Maksudnya, jika strategi itu berkesan, walaupun ia adalah satu siri perubahan kutipan pasaran yang dijana secara rawak dengan peraturan perdagangan, atau kutipan pasaran mata wang lain, pada dasarnya harus ada keuntungan positif. Ini adalah universaliti strategi. Jika ia hanya dapat sepadan dengan tempoh sejarah atau berfungsi dengan baik pada simbol tertentu, maka strategi ini sebenarnya mempunyai risiko atau kelemahan yang berpotensi.

  • Dalam sistem backtest:P&L penutupan, P&L Holding, Margin, Harapan pulangan, USDT yang sedia ada

    Penutupan P&L: Ia adalah keuntungan dan kerugian terkumpul daripada semua transaksi yang dibuka dan ditutup sebelum kedudukan semasa. Holding P&L: Ia adalah keuntungan dan kerugian kedudukan semasa, jika kedudukan semasa tidak dipegang, ia adalah 0, Margin: Jumlah margin yang diduduki oleh kedudukan semasa. Hasil yang dianggarkan: Keuntungan dan kerugian yang dihasilkan dengan menutup kedudukan semasa pada harga semasa (hipotetik) kemudian ditambahkan kepada keuntungan dan kerugian kumulatif kedudukan tertutup untuk mengira pulangan yang dianggarkan. USDT yang sedia ada: Jumlah USDT yang sedia ada untuk membuka kedudukan.

  • Pengiraan kadar kemenangan dalam sistem backtest

    for (var i = 0; i < profits.length; i++) {
        if (i == 0) {
            if (profits[i][1] > 0) {
                winningResult++
            }
        } else {
            if (profits[i][1] > profits[i - 1][1]) {
                winningResult++
            }
        }
        if ((profits[i][1] + totalAssets) > maxAssets) {
            maxAssets = profits[i][1] + totalAssets
            maxAssetsTime = profits[i][0]
        }
        if (maxAssets > 0) {
            var drawDown = 1 - (profits[i][1] + totalAssets) / maxAssets
            if (drawDown > maxDrawdown) {
                maxDrawdown = drawDown
                maxDrawdownTime = profits[i][0]
                maxDrawdownStartTime = maxAssetsTime
            }
        }
    }
    

    Di atas adalah algoritma kadar kemenangan, yang dikira seperti berikut: Selepas sistem backtest secara berkala mengira keuntungan dan kerugian terapung, kurva keuntungan dan kerugian terapung dikira. Mula dari titik pertama untuk membandingkan dengan titik seterusnya. Jika lebih tinggi, ia akan direkodkan sebagai kemenangan, dan jika lebih rendah, ia akan direkodkan sebagai kerugian, dan kemudian meneruskan perbandingan dengan titik seterusnya.

Docker

  • Di mana video pengajaran penggunaanLinuxDocker?

    Bilibili:https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web

  • Adakah perlu untuk menghentikan yang lama apabila saya mengemas kini docker, dan memadamkanrobotprogram, dan jalankan lagi?

    Anda boleh terus memadamkan lamarobotfail program tanpa menghentikan docker, kemudian memuat turun pakej yang dikompres baru, dekompres barurobotPada masa ini, docker dikemas kini, tetapi bot yang sedang berjalan masih menggunakan versi lama dalam memori, dan versi terbaru hanya akan digunakan apabila bot dimulakan semula.

  • Pengerahan DockerLinuxpelayan

    Langkah-langkah untuk memasang docker padaLinux: https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web

  • Apabila digunakanscreenuntuk menjalankan program dockerrobot, -bash:screen:command not foundberlaku, dan docker tidak boleh berjalan.

    LinuxSistem tidak memasangscreenPerisian, dan pemasangan umum sudah cukup.CentOSperintah pemasangan sistem:yum install screen.

    Docker semasa sudah menyokongSSHuntuk mematikan suis untuk berjalan di latar belakang.screen, anda boleh terus menggunakan perintah dalamrobotdirektori program docker:./robot -s node.fmz.com/xxxxxxx, dan masukkan kata laluan akaun FMZ; apabilaLogin OKDilihat pada gambar di atas, ia bermakna penyebaran berjaya../robot -s node.fmz.com/xxxxxxxadalah kod pengenalan unik setiap akaun FMZ, dan hanya memasukkan anda sendiri (selepas akaun masuk, melompat ke halaman docker, klik Add docker ke halaman Add docker untuk melihat); notis di sini tidak hanya untuk memasukkanxxxxxxx.

  • Di mana log bot apabila pelabuhan menjalankan bot?

    DalamDB3fail pangkalan data dalamlogsdirektori di mana program docker terletak, nama fail pangkalan data adalahidbot, dan sambungan adalahdb3.

  • DalamLinuxsistem, penggunaan./robot -luntuk melihat nama-nama platform yang disokong oleh docker, platform mana yangexchangeAntara nama-nama?

    Objek pertukaran yangnamaadalahexchangemerujuk kepada platform yangProtokol ambutiran protokol umum:https://www.fmz.com/api#通用协议

  • Halaman dok tidak memaparkan dok dalam format senarai.

    Jika lebih daripada 5 pelabuhan ditambahkan, kawalan untuk memaparkan dalam format senarai akan muncul.

    img

  • Adakah ia adalah normal terdapat docker tidak digunakan oleh saya dalam kotak combo parameter docker apabila membuat bot?

    Docker awam yang disediakan oleh FMZ adalah alat permulaan cepat tambahan untuk pemula, jadi pengguna tidak perlu menggunakan docker semasa belajar, dan mudah bagi pemula untuk memulakan. Walau bagaimanapun, disyorkan untuk menggunakan docker peribadi untuk ujian bot sebenar. Lagipun, sumber perkakasan dan rangkaian docker awam dikongsi; platform akan mengekalkan docker awam ini dari semasa ke semasa.

  • Adakah rentetan alamat (./robot -s node.fmz.com/1234567) eksklusif untuk saya atau orang lain, apabila menggunakan doker?

    Alamat ini adalah pengenalan alamat setiap pengguna sendiri, dan nilai/1234567Apabila menggunakan docker, klik butang Tambah docker padaDasbor-> klikTambah Docker->Tambah halaman docker, dan kemudian anda boleh melihat alamat ini; salin dan tampal terus dan anda boleh menggunakannya.

  • Variabel persekitaran sistem di mana doker terletak telah ditambahpython2.7, tetapi mengapa ia masih diminta bahawa pembolehubah persekitaran tidak dapat dijumpai?

    img

    Bilakahwindowssistem pertama memasangpython, anda perlu menetapkan pembolehubah persekitaran dan mulakan semula untuk menjadikannya sah.

Penyelidikan

  • Kesilapan EOF

    img

    Python backtest diakhiri oleh pengecualian EOF (kerana kadang-kadang strategi mungkin gelung tanpa akhir).

Fungsi Platform

  • Berapa banyak bot yang boleh dijalankan oleh pelabuhan?

    Tidak ada had kepada jumlahnya, bergantung pada konfigurasi pelayan dan kerumitan strategi. Secara khusus, perlu dipertimbangkan sama ada beberapa bot ini mengakses antara muka platform yang sama (mengambil kira kekerapan panggilan antara muka, kerana lebih banyak bot bermakna kekerapan yang lebih tinggi); secara amnya 5 hingga 6 bot baik-baik saja.

  • Docker, Bot dan penjelasan konsep asas yang lain

    https://www.fmz.com/bbs-topic/9152

  • Kandungan halaman Bot dan Docker semuanya hilang

    Jika kandungan bot dan halaman docker telah hilang, apabila bot dan docker berjalan dengan normal di pelayan, anda perlu membaca mesej laporan ralat penyemak imbas, untuk melihat sama ada penyemak imbas mempunyai pemalam yang dipasang, yang menyebabkan masalah pencemaran pembolehubah global.

  • Untuk strategi rasmi untuk menyewa dan menyewa pelayan dok dengan satu klik, adakah yuran akan diperbaharui secara automatik, selagi baki akaun FMZ mencukupi?

    Strategi yang disewa tidak akan secara automatik mengenakan bayaran semula, dan sewa satu klik doker akan secara automatik mengenakan semula.

  • Di mana fungsi templat? Saya mahu memisahkan beberapa fungsi ke dalam templat, supaya strategi lain juga boleh menggunakannya.

    Penerangan dalamFMZ APIDokumen:https://www.fmz.com/api#模板类库

  • AdakahwexAppplatform simulasi FMZ simulasi bot hanya menyediakanBTC_USDTBagaimana saya boleh menyesuaikan pasangan perdagangan lain?

    wexApprobot simulasi hanya menyokong beberapa pasangan perdagangan arus perdana buat masa ini, dan tidak semua pasangan perdagangan disimulasikan.

  • Saya mempunyai masalah panggilan serentak ke API yang dilanjutkan, iaitu, kesilapan pengesahan nonce selalu dilaporkan semasa serentak.

    Anda boleh mencipta pelbagai platform FMZ meluasAPI KEYs untuk permintaan serentak.

  • Adakah utas debug yang dicipta pada docker merekod status log apabila menggunakan alat debug?

    Apabila alat debug dijalankan, jika tidak ada yang diubah buat kali kedua, objek pertukaran yang dicipta sebelum ini akan dikekalkan dan tidak akan dibebaskan.mod mata wangatauMod leverage.

  • Kenapa apabila saya mendaftarkanwexAppsimulasi platform dan log masuk, tidak ada aset, kedua-dua dalam dompet dan bahagian mata wang?

    Selepas mendaftar, anda perlu mengesahkan e-mel anda untuk mengaktifkan akaun anda, dan anda boleh mengaktifkan akaun anda di pusat peribadi.

  • Maklumat log agak panjang dan terputus, dan pada akhirnya ia menunjukkan "... Tetapi saya perlu melihat struktur data, apa yang perlu saya lakukan?

    Penyelesaiannya ialah menggunakanAlat DebugpadaDasbor, dan gunakanreturnpernyataan dalam alat debugging untuk mengembalikan kandungan yang akan dipaparkan, dan paparan kandungan tidak akan dipotong.

  • Apakah fungsi yang bermula dengan$.dalamJavaScriptMaksud strategi?

    Fungsi dengan permulaan$.adalah fungsi eksport templat, serupa dengan fungsi antara muka modul. Lihat penerangan dalam dokumentasi API:https://www.fmz.com/api#模板类库

    Fungsi eksportpythonstrategi yang diisytiharkan denganext.Pada mulanya.

  • Bagaimana untuk melukis garis lurus pada carta pasaran hasil backtest?

    Terdapat dua jenis carta yang akhirnya dipaparkan dalam backtest: satu dihasilkan oleh sistem, yang tidak boleh dikawal oleh strategi.Chartfungsi antara muka API FMZ dalam kod strategi.https://www.fmz.com/api#chart...

  • Saya telah memadam Google validator pada telefon saya secara tidak sengaja, bagaimana untuk menetapkan semula Google validator? Pada halaman tetapan akaun di platform, saya tidak dapat mencari tempat untuk menetapkan semula melalui e-mel.

Anda boleh log masuk ke platform FMZ dengan penyemak imbas lain, dan apabila anda perlu memasukkan kod pengesahan Google, klik Enable twofactor untuk melompat ke halaman untuk membatalkan perikatan melalui e-mel.

Lain-lain

  • PlatformAPI KEYkawalan keselamatan

    PeraturanAPI KEYFMZ tidak menyimpan maklumat teks biasa akaun platform pengguna, dan menggunakanHttps protocol.

  • Isu keselamatan strategi

    Untuk itu, anda boleh merujuk kepada:https://www.fmz.com/bbs-topic/1657.

  • Sistem bil FMZ

    Standard bil untuk perdagangan langsung:

    1. Pembayaran berlaku sekali sejam untuk setiap akaun dagangan langsung (0.05 USD / jam) dan berdasarkan tempoh penggunaan satu jam.
    2. Menghentikan dan memulakan semula akaun dagangan langsung dalam masa satu jam tidak mengakibatkan bil pendua.
    3. Akaun dagangan langsung yang telah dihentikan tidak akan mencetuskan bil untuk jam seterusnya.
    4. Akaun perdagangan langsung yang baru dicipta akan segera dibil selama satu jam.

    img

    Waktu penagihan yang disebutkan merujuk kepada masa pemprosesan untuk operasi penagihan. Oleh kerana masa yang diperlukan untuk operasi pemprosesan ini, masa potongan mungkin ditangguhkan. Sebagai contoh, jika masa penagihan semasa adalah 9:00, mungkin masa pemprosesan untuk operasi penagihan ini adalah 9:02 (seperti yang ditunjukkan dalam tangkapan skrin). Ini akan diselaraskan semasa operasi penagihan seterusnya (waktu pengurangan seterusnya akan menjadi 10:00, bukan penagihan terlebih dahulu).

  • Perpustakaan talib mengendalikan data dengan ketepatan yang terhad

    Jika data sangat kecil ia akan dipotong dan akhirnya dipaparkan sebagai 0. Sila rujuk:https://github.com/TA-Lib/ta-lib-python/issues/157


Lebih lanjut