Мы создали онлайн-функцию обратной проверки транзакций с помощью FMZ.

Автор:Квалификация - 1, Создано: 2020-10-18 23:56:01, Обновлено:

Возвращение

Я работал над инструментами для реального времени, но в течение некоторого времени я испытывал чувство, что переход к интерфейсу слишком сложный. Наконец-то я перешел к документам из руководства FMZ. Мы нашли в ней функцию, которую мы хотим, и вытащили ее с помощью волны, чтобы обсудить это с вами через полгода. Кстати говоря, в fmz очень мало статей, поэтому они полезны для новичков.

Во-первых, пользователи могут самостоятельно выбирать время начала и времени окончания, так чтоimg

Этого хватит, чтобы параметризировать:

imgЯ не знаю, есть ли какая-то функция, которую можно инициализировать.

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
      }

Параметры конфигурации решетки: минимальная, максимальная цена, интервал распределения решетки и интервал перезагрузки.

Все эти параметры предоставлены пользователями.

Основная функция bus -

    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
  • Получить повторную конфигурацию fmz с помощью функции gen_params
  • Функции для тренировки
  • Расчет доходности и показание записей сделок в соответствии со структурой данных, возвращаемой fmz

Вызов task.Join ((() завершает задачу обратного анализа и возвращает данные чистой стоимости. Параметр Join не передает True, который возвращает исходные результаты обратного анализа, которые не были проанализированы, и после окончания нельзя вызывать функции, связанные с сделками или рынками.

По документам, я пытаюсь догадаться, что означают результаты стратегии.

Код, приложенный к возвращенным 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

Да. Чувствую себя немного неловко, но сначала я расскажу о том, что мы думаем о нашей сети:

В этом году мы проведем проверку на витринах.

  • Первое, что мы делаем, это инициируем сетку в соответствии с параметрами пользователя.
  • Первый заказ
  • Временное проверение состояния сделок с объявлениями о покупке и продаже и повторное объявление по объявлениям о покупке и продаже
          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

Наверное, так оно и есть, может показаться странным в первый раз.

Я хочу поделиться с вами тем, что скорость повторения FMZ за 14 дней в основном удовлетворяет ожиданиям пользователей на переднем конце, а когда она становится медленнее, это хороший инструмент для количественного повторения как интерфейса.

Да, в этот раз мы снова собираемся объявить о волне торговли, наша команда по количественному выигрышу провела торговлю, в которой можно бесплатно принять участие. Если вы предоставите API для запросов, вы можете зарегистрироваться, и выиграть бонус. Оставьте контактную страницу fengye607.


Больше

ТраваВам нужно получить результаты реального времени, а затем смоделировать результаты рецензирования. Это может привести к некоторым проблемам, но если это только одна сделка, вы можете попробовать написать собственную рецензирующую машину.