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, jadi
"Sebenarnya, saya tidak tahu apa yang akan terjadi", katanya.
Saya 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
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.
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.
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.