1
tập trung vào
6
Người theo dõi

Chúng tôi đã sử dụng fmz để thực hiện chức năng kiểm tra ngược giao dịch lưới trực tuyến

Được tạo ra trong: 2020-10-18 23:56:01, cập nhật trên:
comments   2
hits   4457

Trở lại nơi bắt đầu

Trước đây, chúng tôi đã tìm kiếm một công cụ có thể phản hồi trong thời gian thực, và đã nghiên cứu một thời gian về cảm giác của vnpy khi chuyển đổi nó thành giao diện. Cuối cùng, tôi đã tìm thấy tài liệu trong hướng dẫn mới của FMZ. Chúng tôi đã tìm thấy một công cụ có thể thực hiện được những gì chúng tôi muốn, và chúng tôi đã sử dụng nó trong một thời gian, và chúng tôi đã nói chuyện với mọi người trong sáu tháng. Trong một bài viết trên blog của mình, tôi đã viết về một số người làm việc trong ngành công nghiệp truyền thông, bao gồm cả các nhà sản xuất truyền thông, các nhà quản lý truyền thông, các nhà quản lý truyền thông, các nhà quản lý truyền thông, các nhà quản lý truyền thông và các nhà quản lý truyền thông.

Đầu tiên là người dùng có thể tự chọn thời gian bắt đầu và kết thúc. Chúng tôi đã sử dụng fmz để thực hiện chức năng kiểm tra ngược giao dịch lưới trực tuyến

Điều này cần phải được tham số hóa:

Chúng tôi đã sử dụng fmz để thực hiện chức năng kiểm tra ngược giao dịch lưới trực tuyến Tôi không biết có một hàm nào đó mà tôi có thể khởi tạo được hay không.

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
      }

Các tham số cấu hình lưới: giá tối thiểu, giá tối đa, khoảng cách phân phối lưới và khoảng cách đặt lại danh sách.

Tất cả các tham số trên đều được gửi bởi người dùng.

Chức năng bus chính là

    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
  • Lấy cấu hình phản hồi của fmz thông qua hàm gen_params
  • Chức năng đào tạo chạy
  • Tính toán lợi nhuận và hiển thị hồ sơ giao dịch dựa trên cấu trúc dữ liệu được trả về bởi fmz

Gọi task.Join() sẽ kết thúc nhiệm vụ phản hồi và trả về dữ liệu giá trị ròng. Các tham số Join không được truyền đến True chỉ trả về kết quả phản hồi chưa được phân tích ban đầu, sau khi kết thúc không thể gọi các hàm liên quan đến giao dịch hoặc tình huống nữa.

Theo tài liệu, tôi đang đoán về những gì mà chiến lược này mang lại.

Mã tính toán dữ liệu thu nhập kèm theo trả về của fmz

  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

Có lẽ chúng tôi đã có một số thông tin về những gì chúng tôi đã làm, nhưng chúng tôi đã không thể đưa ra được thông tin chính xác về những gì chúng tôi đã làm.

Sử dụng phương pháp kiểm tra bảng xếp hạng

  • Đầu tiên, khởi tạo lưới dựa trên tham số của người dùng
  • Đăng ký lần đầu tiên
  • Kiểm tra giao dịch theo thời gian của đơn mua bán và sau đó đăng lại theo đơn mua bán
          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

Có lẽ là như vậy, nhưng có lẽ là hơi khó khăn khi so sánh.

Lần này, tôi muốn chia sẻ chủ yếu là muốn thể hiện tốc độ phản hồi của fmz trong vòng 14 ngày hầu như đáp ứng thời gian chờ đợi của người dùng ở phía trước, chậm hơn một chút, là một công cụ tốt để phản hồi định lượng như một giao diện, xin chào!

Đúng vậy, lần này chúng tôi cũng quay lại quảng bá một cuộc thi giao dịch, nhóm Quantify của chúng tôi đã tổ chức một cuộc thi giao dịch, tham gia miễn phí. Chỉ cần mọi người cung cấp API truy vấn thì có thể đăng ký thành công, là một cuộc thi hai tuần, điểm thưởng của chúng tôi cũng rất tốt.