FMZ Quantified Platform Strategi Menulis Tutorial Pemula (Must See)

Penulis:Rumput, Dibuat: 2019-08-13 17:47:27, Diperbarui: 2021-08-06 10:29:46

Informasi garis K sejarah. Kelemahan dari mekanisme ini jelas: pada garis K, hanya dapat menghasilkan satu jual beli, biasanya berdasarkan harga adalah harga penutupan garis K. Dan satu garis K hanya dapat memperoleh empat harga, tentang bagaimana harga berubah dalam garis K, apakah harga tertinggi terjadi pertama, atau harga terendah terjadi pertama, dll. Tidak ada informasi yang dapat diperoleh.

FMZ platform retargeting memiliki dua jenis retargeting tingkat analog dan retargeting tingkat real disk. Retargeting tingkat analog akan menghasilkan 14 titik waktu retargeting pada setiap siklus garis K dasar berdasarkan tik yang dihasilkan secara analog.Tingkat disk yang sebenarnya adalah tik yang benar-benar dikumpulkan, sekitar satu kali setiap beberapa detik, saat ini sebagian mendukung kedalaman yang sebenarnya (mengandung 20 file), transaksi per-senar yang sebenarnya.Data yang besar dan kecepatan retargeting lambat, sehingga tidak dapat retargeting dalam waktu yang sangat lama. FMZ's retargeting mechanism dapat membuat strategi bertransaksi berkali-kali pada satu K-line, menghindari situasi yang hanya dapat menutup transaksi harga, lebih akurat dan memperhitungkan kecepatan retargeting.https://www.fmz.com/digest-topic/4009

Kerangka kebijakan yang diulang adalah sama dengan cakram nyata, dan keduanya adalah siklus mati. Karena ulangan melompat pada titik ulangan yang berbeda, saat ini dapat dilakukan tanpa Sleep, dan pada akhir suatu siklus akan melompat secara otomatis ke titik berikutnya. Namun, karena mekanisme program, Python perlu memaksakanSleep(10)Dia mengatakan, "Saya tidak tahu apa yang akan terjadi.

Gambar yang diambil

Mesin penelusuran akan mengambil gambar berdasarkan harga pesanan pengguna dan harga keterangan pada titik waktu penelusuran, jika harga beli lebih tinggi dari satu jual, untuk menjual satu transaksi. Jika tidak dapat dilakukan, maka akan menghasilkan daftar tanggungan. Untuk menjamin transaksi memerlukan titik geser. Jika terjadi situasi yang tidak dapat dibuka atau tidak dapat ditarik pada saat penelusuran, periksa apakah ada posisi beku yang disebabkan oleh pesanan yang tidak selesai.

Pengaturan halaman penelusuran

img

  • 1.回测页面的选择,左侧是策略编辑页面。
  • 2.回测起始结束时间,由于数据不完整,回测可能直接从有数据的时间开始。
  • 3.回测GetRecords()Periode default fungsi juga dapat ditentukan dalam kode sebagai parameter periode.
  • 4.回测机制的选择。
  • 5.展示或隐藏跟多回测设置。
  • 6.最大日志数、收益数据数、图表数据数等,为了防止数据量过大导致浏览器卡死。
  • 6.底层tick生成依据K线周期。
  • 7.交易滑点。
  • 7.容错,会模拟API请求出错情况,检查策略容错能力。
  • 8.是否绘制行情图标,回测中如果使用了TA指标函数,会自展示在图标上,买卖也会标记。
  • 9.手续费设置
  • 10. Menambahkan Bursa - Pasangan dan Aset.
  • 11.回测参数设置,如果参数是数字还支持一键优化参数,自动按照一定范围遍历参数回测。

Perbedaan antara retesting dan real disk

  • 1.回测时有效的行情只有GetTicker和GetRecords,其它如获深度、成交历史都不是真实的(因为数据量太大,实盘级回测目前已经支持这些数据,但只有最近数据)。
  • 2.回测添加的交易所都是独立账户,目前不支持切换交易对。因此无法在一个账户里操作两个交易对。
  • 3.回测中无法使用网络请求。
  • 4.回测无法使用IO扩展,只能操作最基础的API。
  • 5.回测只能获取标准的数据,像Info之类的牵扯到实盘的数据不存在。
  • 6.回测中也有可能不成交,注意冻结订单情况。
  • 7.商品期货回测不支持市价单。

Kesalahan dan Kesalahan Strategis

Sebelumnya kami telah mengatakan bahwa ada kemungkinan akses gagal dan kembali dengan menggunakan API pada hard disk.nullPada saat yang sama, data yang digunakan akan memberikan kesalahan dan menyebabkan disk tetap berhenti, jadi strategi harus dilakukan dengan baik.

Cara yang sering disalahgunakan

Salah satu penyebabnya adalah:

  • API mengakses kesalahan jaringan, interface access overtime akan kembali ke null, saat ini penggunaan akan melaporkan kesalahan.
  • Pertukaran membatasi kesalahan, seperti pembatasan ip, akurasi pemesanan, frekuensi akses, kesalahan parameter, kekurangan aset, pasar tidak dapat berdagang, membatalkan pesanan yang telah dilakukan, dll.
  • Bursa akan mengembalikan kesalahan data yang terkadang terjadi, seperti kembali ke kedalaman kosong, informasi akun yang tertunda, status pesanan yang tertunda, dll.
  • Kasalahan logis program.

Sebelum menggunakan API untuk mengembalikan data, Anda harus menilai apakah data tersebut null atau tidak. Berikut ini adalah metode yang umum digunakan untuk mengumpulkan data:

//1.判断为null进行处理
var ticker = exchange.GetTicker();
while(ticker == null){
     Log('ticker 获取出错');
     ticker = exchange.GetTicker();
 }
 Log(ticker.Last);
 // 2.判断不为null再进行引用
 var ticker = exchange.GetTicker();
 if(!ticker){
     Log(ticker.Last);
 }
 // 3._C()函数重试
 var ticker = _C(exchange.GetTicker);
 Log(ticker.Last);
 // 4. try catch容错
 try{
     var ticker = exchange.GetTicker();
     Log(ticker.Last);
 }
 catch(err){
     Log('ticker 获取出错');
 } 

Jika Anda ingin mendapatkan informasi yang salah, Anda bisa menggunakannya.GetLastError(), akan mengembalikan string informasi kesalahan terakhir, yang dapat diproses secara berbeda untuk kesalahan.

FAQ

Di forum ini, ada banyak kesimpulan yang salah:https://www.fmz.com/bbs-topic/1427◦ Berikut ini adalah beberapa contohnya, dan jika Anda mengalami masalah, Anda dapat mencari Ctrl + F di bawah ini.

Bagaimana cara mengatur pengurus?

Untuk informasi lebih lanjut, lihat bagian Tambah Host

Apakah Anda bisa menemukan strategi penulisan untuk orang lain?

https://www.fmz.com/marketsDi atas, ada yang menawarkan layanan penulisan, atau konsultasi dalam kelompok, dan mereka membutuhkan kontak mereka sendiri, dengan risiko mereka sendiri.

Mengakses semua antarmuka meminta timeout

Ini berarti bahwa akses ke antarmuka bursa terlambat, jika kadang-kadang terjadi tidak masalah, jika selalu diminta untuk menjelaskan bahwa jaringan di mana Anda berada tidak dapat diakses, Anda perlu menggunakan server luar negeri.

Kesalahan ERR_INVALID_POSITION

Sistem penelusuran melaporkan kesalahan, umumnya kesalahan yang ditulis untuk strategi, dan mencoba untuk melakukan posisi yang rata ketika tidak ada kepemilikan atau jumlah kepemilikan yang tidak cukup, akan menyebabkan laporan ini.

Simbol tidak diatur

Bursa berjangka mengulang, tidak ada kontrak yang ditetapkan dalam kode, lihat fungsi exchange.SetContractType

BITMEX 429 error, {error:{message:Rate limit exceeded retry in 1 seconds......}}

Perangkat lunak ini juga dapat digunakan untuk mengakses situs web.

{status:6004,msg:timestamp adalah di luar jangkauan}

Waktu server di luar jangkauan membutuhkan pembaruan waktu server, tidak dapat terlalu jauh

GetOrder ((455284455): Kesalahan: ID pesanan tidak valid atau pesanan dibatalkan.

Di beberapa bursa, pesanan dibatalkan, dan informasi tentang pesanan tidak dapat diakses karena tidak dijaga oleh bursa.

GetOrders: 400: {code:-1121,msg:Invalid symbol.}

Pasangan transaksi yang tidak valid, diperiksa apakah pasangan transaksi tersebut memiliki kesalahan pengaturan.

Kunci rahasia gagal didekripsi

API KEY gagal diselesaikan, jika Anda telah mengkonfigurasi APIKEY setelah mengubah kata sandi FMZ, coba tambahkan halaman bursa di FMZ dan konfigurasi ulang APIKEY bursa.

Signature not valid: Invalid submission time or incorrect time format (Tanda tangan tidak valid: Waktu pengajuan tidak valid atau format waktu tidak benar)

Dianjurkan untuk menggunakan server Linux atau perangkat lunak sinkronisasi waktu instalasi pada sistem windows yang mengalami masalah ini.

Mengapa ada agen global yang diatur sehingga administrator tidak dapat mengakses API?

Proxy global tidak memiliki port jaringan proxy host, karena masalah keterlambatan, lebih baik untuk mengerahkan host server luar negeri

Bagaimana strategi bisa disimpan di FMZ lokal, bukan di FMZ yang diunggah?

Dengan menggunakan Python, Anda dapat mengimpor file lokal, menyimpan kebijakan yang ditulis secara normal berdasarkan API FMZ sebagai file di server Anda sendiri di bawah jalur eksekusi, dan langsung membaca eksekusi.

#!python2.7

def run(runfile):
      with open(runfile,"r") as f:
            exec(f.read())
            
def main():
    run('my.py')

Cara menggunakan testnet atau mengubah alamat basis API

Dengan menggunakan exchange.SetBase (), Anda dapat langsung beralih ke alamat basis API yang sesuai; misalnya:

exchange.SetBase("https://www.okex.me")

Lebih banyak

Gaoencheerapi

Ilmu PengetahuanBagaimana cara menjalankan implementasi kebijakan secara lokal? Saya menulis pernyataan output Log sederhana dan mengikuti operasi di akhir kalimat. Langkah pertama adalah menggunakan laptop sebagai server dan menjalankan program administrator. Langkah kedua, menulis program test.py yang output informasi Log sederhana (fungsi API FMZ); Langkah ketiga, seperti pada akhir teks, menulis runfile yang akan dijalankan melalui run.py dengan panggilan test.py. /upload/asset/1add39483ef82d45b3ce3.png

Gyp9Saya membeli kursus Quantitative Cloud Trading, dan sekarang saya harus pergi ke mana?

MonuRajakBanyak

MonuRajakHai

PergilahBelajar

WqyAda sedikit kesalahan teks, GetAccount mendapatkan akun. dalam pengantarannya, FrozenStocks seharusnya menjadi saldo beku bukan saldo yang tersedia.

Tn.getorder outtime mendapatkan order outtime, bursa di okex, bagaimana caranya

Oumuamua membuat trik tinggiApakah Anda tidak bisa mendapatkan tingkat aset yang dijamin, 0% akan dipaksakan untuk rata-rata aset yang dijamin

Shifeng2020Saya melihat operasi k-string 1 menit, jadi waktu tidur siklus mati Python dapat diatur menjadi 0,1 s, yaitu sleep ((100) Apakah saya melihat Anda menulis satu sleep ((10) di dalamnya, yaitu 0.1 s tidak akan melebihi batas API huobi HM?

Tugu Angin Timurexchange.SetDirection (("closebuy"); // Jika kontrak permanen, langsung atur exchange.SetDirection (("sell") Di sini saya mencoba kontrak permanen OKex, jika Anda mengatur untuk menjual, langsung terbuka, tidak terlalu murah.

Tugu Angin Timurexchange.SetDirection (("closebuy"); // Jika kontrak permanen, langsung atur exchange.SetDirection (("sell") Di sini saya mencoba kontrak permanen OKex, jika Anda mengatur untuk menjual, langsung terbuka, tidak terlalu murah.

Tugu Angin TimurAda dua kesalahan ejaan dalam kode GetOrders. Salah satunya adalah fungsi yang ditulis sebagai fuction, dan yang lainnya adalah kondisi loop for;

Tugu Angin TimurAku salah. exchange.Buy ((-1, 0.5)), pasangan perdagangan adalah ETH_BTC, dan harga pasar mewakili pembelian ETH sebesar 0.5BTC exchange.Buy ((price, 0.5), jika ini adalah daftar harga, maka harga yang digunakan untuk membeli adalah 0.5ETH

Tugu Angin Timurexchange.Buy ((-1, 0.5), pasangan perdagangan adalah ETH_BTC, yang mewakili pembelian ETH sebesar 0.5BTC pada harga pasar Ini seharusnya menjadi harga jual untuk membeli 0.5 ETH.

Gyp9Terima kasih.

RumputSudah tersedia di situs https://study.163.com/course/courseMain.htm?share=2&shareId=400000000602076&courseId=1006074239&_trace_c_p_k2_=c3f5d238efc3457d93c8b92c0398d2b2

RumputTambahkan halaman utama WeChat, menarik Anda ke dalam kelompok

WqySaya tidak tahu di mana saya harus bertanya, tapi saya tidak tahu di mana saya harus bertanya, saya tidak tahu di mana saya harus bertanya.

RumputPerubahan

RumputDapatkan lagi

RumputAnda dapat menggunakan GetRawJSON atau melihat informasi di kolom info

Tugu Angin TimurSaya menemukan banyak kesalahan ejaan dalam kode, haha.

RumputOh, sudah diperbaiki, terima kasih telah menunjukkan kesalahan.

RumputBeberapa kontrak permanen yang mengizinkan pegangan dua arah, perlu untuk mengatur pegangan.