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.

Điều này cần phải được tham số hóa:
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
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.
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.