1
ফোকাস
6
অনুসারী

আমরা অনলাইন গ্রিড ট্রেডিং ব্যাকটেস্টিং ফাংশন করার জন্য fmz ব্যবহার করেছি।

তৈরি: 2020-10-18 23:56:01, আপডেট করা হয়েছে:
comments   2
hits   4457

ফিরে আসুন

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

প্রথমত, ব্যবহারকারীরা তাদের পছন্দ অনুযায়ী শুরু এবং শেষ করতে পারবেন। আমরা অনলাইন গ্রিড ট্রেডিং ব্যাকটেস্টিং ফাংশন করার জন্য fmz ব্যবহার করেছি।

এই জিনিসটি প্যারামিটারাইজ করা দরকারঃ

আমরা অনলাইন গ্রিড ট্রেডিং ব্যাকটেস্টিং ফাংশন করার জন্য fmz ব্যবহার করেছি। আমি মনে করি এটা একটা কঠিন পদ্ধতি, আমি জানি না কোন ফাংশনকে ইনশিয়ালাইজ করা যায় কিনা।

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
  • fmz এর রিটার্ন কনফিগারেশন পেতে gen_params ফাংশন ব্যবহার করুন
  • চলমান প্রশিক্ষণ ফাংশন
  • fmz রিটার্নের উপর ভিত্তি করে ডাটা স্ট্রাকচার, রিটার্নের হার গণনা করা এবং লেনদেনের রেকর্ড প্রদর্শন করা

Join () কলটি পুনঃনিরীক্ষণের কাজটি শেষ করে এবং নিট মূল্যের ডেটা ফেরত দেয়। যোগদানের প্যারামিটারটি সত্য নয়। এটি পুনঃনিরীক্ষণের ফলাফল ফেরত দেয় যা মূলত বিশ্লেষণ করা হয়নি। শেষ হওয়ার পরে, কোনও লেনদেন বা পরিস্থিতি সম্পর্কিত ফাংশন আর কল করা যাবে না।

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

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 দিনের মধ্যে রিটার্নিং এর গতি মূলত ফরোয়ার্ড এ ব্যবহারকারীর অপেক্ষার সময় পূরণ করতে পারে, এটি দীর্ঘ হলে এটি কিছুটা ধীর হয়ে যায়, এটি একটি ইন্টারফেস হিসাবে একটি ভাল সরঞ্জাম হিসাবে একটি কোয়ান্টাম রিটার্নিং, প্রশংসা!

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