Antes de buscar una herramienta que pudiera hacer un retroceso en tiempo real, había estudiado durante un tiempo si era demasiado difícil que vnpy se convirtiera en una interfaz. Por último, busqué en el manual de novatos de FMZ. En este post, el autor de este post, el blogger y bloguero de la web, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social, el blogger y bloguero de la red social. Por cierto, los artículos de fmz son muy escasos, es tan útil que está en la guía para principiantes, que solo se entendió preguntando por el post.
La primera es que el usuario puede elegir la hora de inicio y la hora de finalización.

Esto necesita ser parametrizado:
Si no hay una función que se inicie, entonces no hay una función que se inicie, pero si hay una función que se inicie, entonces no hay una función que se inicie.
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
}
Parámetros de configuración de la cuadrícula: mínimo, máximo precio, intervalo de distribución de la cuadrícula y intervalo de reinstalación.
Estos son los parámetros que han sido enviados por los usuarios.
La función principal del bus es
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
La invocación de task.Join() terminará la tarea de respuesta y devolverá datos de valor neto. El parámetro de unión no se transmite. True indica que se devuelve el resultado de la respuesta original sin analizar, y después de la finalización no se puede volver a llamar a la función relacionada con la transacción o la situación.
A través de la documentación, me refiero a lo que se devuelve como resultado de la estrategia de adivinar.
El código de cálculo de los datos de ganancias que se adjunta a la devolución de 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
Sí. Me siento un poco desorientado, pero primero quiero hablar de lo que pensamos de nuestra red:
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
En la actualidad, la mayoría de los bloggers de la red social de noticias de la India están interesados en el tema, y se han convertido en fanáticos de este tema.
La velocidad de respuesta de fmz en 14 días es básicamente suficiente para satisfacer el tiempo de espera de los usuarios en el front-end, y es un poco más lento, es una buena herramienta de respuesta cuantitativa como interfaz, ¡saludo!
Sí, esta vez volvemos a promocionar una ola de competición de comercio, nuestro equipo de Cantificación de Ganancias Infinitas organizó una competición de comercio, participación gratuita. Siempre que todos ofrezcan la API de consulta, pueden inscribirse y tener éxito, como un torneo de dos semanas, también es bueno para ganar nuestro premio.