আমরা FMZ এর সাথে একটি গ্রিড ট্রেডিং পুনরুদ্ধার ফাংশন তৈরি করেছি।

লেখক:চিরকালের জন্য পরিমাণগত -১, তৈরিঃ 2020-10-18 23:56:01, আপডেটঃ

ফিরে আসুন

এর আগে আমি রিয়েল-টাইম রিসেট করার জন্য একটি সরঞ্জাম খুঁজছিলাম, এবং কিছুক্ষণের জন্য vnpy ইন্টারফেসে পরিবর্তন করা খুব ঝামেলা মনে হয়েছিল। এফএমজির নতুন গাইডের নথিতে পরিদর্শন করুন। আমরা একটি নতুন প্ল্যাটফর্ম তৈরি করেছি, যা আমাদের প্রয়োজনীয় ফাংশন সরবরাহ করতে পারে, এবং আমরা এটিকে একটি তরঙ্গ দিয়ে বের করেছি, যা আমরা ছয় মাস ধরে আপনার সাথে আলোচনা করেছি। যাইহোক, এফএমজি-র নিবন্ধগুলি খুব কম, তাই এটি নতুনদের নির্দেশিকায় দরকারী, যখন আমি কেবল পোস্টের মাধ্যমে জিজ্ঞাসা করেছি।

প্রথমত, ব্যবহারকারীরা তাদের নিজস্ব শুরু এবং শেষ সময় নির্বাচন করতে পারেন, তাই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
      }

গ্রিড কনফিগারেশন পরামিতিঃ সর্বনিম্ন, সর্বোচ্চ মূল্য, গ্রিডের বিতরণ ব্যবধান এবং পুনরায় তালিকাভুক্ত করার ব্যবধান।

এই প্যারামিটারগুলি ব্যবহারকারীর দ্বারা জমা দেওয়া হয়।

প্রধান বাস ফাংশন হল

    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
  • শুধু gen_params ফাংশন ব্যবহার করে fmz এর পুনরাবৃত্তি কনফিগারেশন পান
  • রান ট্রেনিং ফাংশন
  • এফএমজেড রিটার্ন করা ডেটা কাঠামোর উপর ভিত্তি করে আয় গণনা এবং লেনদেনের রেকর্ড প্রদর্শন

task.Join () কল করলে রিটার্নিং টাস্কটি শেষ হয়ে যায় এবং নেট ডেটা ফিরে আসে। যোগদানের পরামিতি True পাঠায় না।

ডকুমেন্টেশনের মাধ্যমে, আমি কৌশলগত ফলাফলের অর্থ কী তা অনুমান করছি।

এফএমজেড রিটার্ন রিটার্ন ডেটার সাথে কোড গণনা

  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

আমি মনে করি এটিই, সম্ভবত এটি প্রথম দিকে কিছুটা উদাসীন মনে হবে।

এইবার আমি মূলত শেয়ার করতে চাই এফএমজেড এর 14 দিনের রিভিউ স্পিড মূলত ব্যবহারকারীর সামনে অপেক্ষা করার সময় পূরণ করতে পারে, দীর্ঘতর হলে কিছুটা ধীর হয়, এটি ইন্টারফেসের জন্য একটি ভাল সরঞ্জাম হিসাবে পরিমাণগত রিভিউ, প্রশংসা!

ঠিক আছে, এইবার আবারও একটি লেনদেনের প্রতিযোগিতার প্রচার করতে এসেছি, আমাদের চিরজয়ী কোয়ালিফাইং টিম একটি লেনদেনের প্রতিযোগিতা করেছে, বিনামূল্যে অংশগ্রহণ করুন । যতক্ষণ না আপনি অনুসন্ধান এপিআই সরবরাহ করেন ততক্ষণ নিবন্ধন সফল হবে, একটি দ্বি-সপ্তাহের প্রতিযোগিতা হিসাবে, আমাদের বোনাসগুলিও ভাল। যোগাযোগের ফর্মটি ছেড়ে দিন fengye607। জানি না এইভাবে বলতে পারেন না, ছোট খড় আমাকে মুছে ফেলবেন না, আমি এমনকি প্ল্যাটফর্মের ঠিকানাও প্রকাশ করতে পারি না, ((^)


আরো

ঘাসআপনি রিয়েল-টাইম ট্রেডিং পেতে হবে এবং তারপর রিটার্নিং এর ফলাফল অনুকরণ করতে হবে। এটা কিছু সমস্যা হতে পারে, যদি শুধুমাত্র একক লেনদেনের জোড়া আপনি আপনার নিজের একটি রিটার্নিং ইঞ্জিন লিখতে চেষ্টা করতে পারেন, এটা জটিল নয়।