Kami menggunakan FMZ untuk membuat jaringan transaksi online yang memiliki fungsi retargeting.

Penulis:Mengukur-1, Dibuat: 2020-10-18 23:56:01, Diperbarui:

Kembali ke Asal

Sebelumnya, saya telah mencari alat yang dapat melakukan retargeting secara real time, dan setelah beberapa waktu meneliti, vnpy merasa terlalu sulit untuk mengubahnya menjadi antarmuka. Dan akhirnya, saya kembali ke dokumen yang ada di panduan baru FMZ. Kami menemukan bahwa itu dapat mencapai fungsi yang kami inginkan, dan kami mengeluarkannya dengan gelombang, dan kami akan membahasnya dengan Anda dalam enam bulan. Dengan kata lain, artikel fmz sangat sedikit, jadi berguna sekali dalam panduan pemula, saat itu saya hanya bertanya melalui posting untuk mengerti.

Yang pertama adalah pengguna dapat memilih waktu awal dan akhir, jadiimg

"Sebenarnya, saya tidak tahu apa yang akan terjadi", katanya.

imgSaya tidak tahu apakah ada fungsi yang dapat diinisialisasi.

self.grid_setting = {
          "min_price": min_price,
          "max_price": max_price,
          "grid_diff": grid_diff,
          "re_diff": grid_diff,
          "total_amount_B": total_amount_B
      }

Parameter konfigurasi grid: harga minimum, harga maksimum, interval distribusi grid dan interval daftar ulang.

Di atas adalah parameter yang diberikan oleh pengguna.

Fungsi bus utama adalah

    def bus(self):
      params = gen_params(self.begin, self.end, self.currency, self.balance, self.stocks)
      task = VCtx(params)
      done = self.train()
      ret = task.Join(True)
      benefit_cal = self.cal_benefit(ret,done)
      result = {}
      result['done'] = done
      result['ret'] = benefit_cal
      return result
  • Dapatkan konfigurasi reset fmz dengan fungsi gen_params yang baru saja dibuat
  • Fungsi Pelatihan Berlari
  • Menghitung laba dan menampilkan catatan transaksi berdasarkan struktur data yang dikembalikan fmz

Panggilan task.Join (*) akan mengakhiri tugas retest dan mengembalikan data bersih. Parameter Join tidak menyampaikan True yang mengembalikan hasil retest asli yang tidak dianalisis dan tidak dapat memanggil fungsi terkait transaksi atau pasar lagi setelah selesai.

Dengan dokumen, saya menebak apa yang dikembalikan oleh hasil strategi.

Dengan menambahkan fmz kembali data hasil dari kode yang dihitung

  def cal_benefit(self,ret,done):
      #计算相隔多少天
      day_begin =  datetime.datetime.strptime(self.begin, '%Y-%m-%d %H:%M:%S')
      day_end =  datetime.datetime.strptime(self.end, '%Y-%m-%d %H:%M:%S')
      days = (day_end - day_begin).days
      begin = ret.iloc[0].net
      end = ret.iloc[-1].net
      fee = ret.iloc[-1].fee
      #计算一共多少次套利
      df = pd.DataFrame(done)
      #如果没有成交记录
      if len(done) == 0:
          benefit_cal = {}
          benefit_cal['benefit'] = 0
          benefit_cal['count'] = 0
          benefit_cal['fee'] = 0
          benefit_cal['benefit_p'] = 0
          return benefit_cal

      buy_count = len(df[df['type'] == 'buy'])
      sell_count = len(df[df['type'] == 'sell'])
      count = min(buy_count , sell_count)
      benefit = count * self.grid_diff * float(done[0]['amount'])
      benefit_cal = {}
      benefit_cal['benefit']= benefit
      benefit_cal['count']= count
      benefit_cal['fee']= fee
      print(benefit_cal)
      per = benefit / self.total_amount_B * 360 / days
      print(per)
      benefit_cal['benefit_p']= round( per , 4)
      return benefit_cal

Saya tidak tahu apa yang akan terjadi, tapi saya pikir saya akan mencoba untuk mengatasinya, dan saya pikir saya akan melakukannya.

Perangkat lunak ini dapat digunakan untuk membuat aplikasi yang lebih mudah diakses oleh pengguna.

  • Pertama, initialize grid berdasarkan parameter pengguna.
  • Daftar pertama
  • Memeriksa status transaksi yang dipesan secara tepat waktu dan memesan kembali sesuai dengan pesanan
          while True:
              Sleep(1000 * 60 * 5)
              if 'refreash_data_finish!' != mid.refreash_data():
                  continue
              # 初始化网格
              if not init_flag:
                  cur_price = mid.ticker['Last']
                  grid_list = grid.cal_grid_list(cur_price)
                  init_flag = True

              # 开始挂单
              if not place_flag:
                  grid.place_orders()
                  place_flag = True

              # 开始检查订单状态及时挂单
              grid.check_order_update()
              done = grid.done

Mungkin itu yang terjadi, mungkin terlihat aneh pada awalnya.

Yang ingin saya bagikan kali ini adalah untuk mengungkapkan bahwa FMZ dalam 14 hari, kecepatan retargetingnya pada dasarnya dapat memenuhi waktu tunggu pengguna di front-end, semakin lama semakin lambat, dan merupakan alat yang bagus untuk mengkuantifikasi retargeting sebagai antarmuka.

Ya, kali ini kembali untuk mempromosikan gelombang pertandingan perdagangan, tim kami yang selalu menang kuantitas mengadakan pertandingan perdagangan, gratis untuk berpartisipasi. Asalkan semua orang memberikan API pertanyaan, Anda dapat mendaftar dengan sukses, sebagai pertandingan dua minggu, Anda juga bisa mendapatkan hadiah kami. Tinggalkan kontak fengye607.


Lebih banyak

RumputAnda hanya perlu mendapatkan transaksi secara real-time dan kemudian melakukan simulasi hasil retesting. Ini akan menimbulkan beberapa masalah, jika hanya satu pasangan transaksi, Anda bisa mencoba menulis mesin retesting sendiri, tidak rumit.