Type/to search
1
Follow
6
Followers
हमने ऑनलाइन ग्रिड ट्रेडिंग बैकटेस्टिंग फ़ंक्शन करने के लिए fmz का उपयोग किया
FAQ
Created 2020-10-18 23:56:01  
 2
 5117

मूल बिंदु पर वापस

पहले से ही वास्तविक समय में प्रतिक्रिया के लिए एक उपकरण की तलाश में, कुछ समय के लिए अध्ययन किया गया था कि क्या vnpy को इंटरफ़ेस में बदलने के लिए बहुत परेशानी थी।
अंत में, एफएमजेड के शुरुआती गाइड में दस्तावेज़ देखें।
हमने पाया कि यह हमारे लिए काम कर सकता है, हमने इसे एक लहर के रूप में इस्तेमाल किया, और फिर हमने इस बारे में लोगों से बात करने के लिए छह महीने का समय लिया।
वैसे, एफएमजेड के लेख बहुत कम हैं, इसलिए यह शुरुआती लोगों के लिए एक उपयोगी मार्गदर्शिका में है, और यह पोस्ट करने के बाद समझ में आया।

सबसे पहले, यह उपयोगकर्ता के लिए स्वतंत्र रूप से शुरू और समाप्त होने का समय चुनने के लिए है, तो
img

और यह सब कुछ एक पैरामीटर के साथ किया जाना चाहिएः

img
और यह एक अजीब तरीका है, मैं नहीं जानता कि क्या कोई फ़ंक्शन है जिसे मैं आरंभ कर सकता हूं।

python
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 }

ग्रिड कॉन्फ़िगरेशन पैरामीटरः न्यूनतम, अधिकतम मूल्य, ग्रिड के वितरण के अंतराल और फिर से सूचीबद्ध होने के अंतराल।

ये सभी उपयोगकर्ता द्वारा दिए गए पैरामीटर हैं।

मुख्य बस फ़ंक्शन है

python
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 फ़ंक्शन
  • चलाने के लिए प्रशिक्षण समारोह
  • एफएमजेड द्वारा लौटाए गए डेटा संरचना के आधार पर रिटर्न दर की गणना और लेनदेन रिकॉर्ड प्रदर्शित करना

JOIN () को कॉल करने से रिटर्निंग टास्क समाप्त हो जाएगा और नेटवर्थ डेटा वापस आ जाएगा। JOIN पैरामीटर को TRUE नहीं भेजा जाता है। TRUE का अर्थ है कि रिटर्निंग परिणाम को वापस करना है, जिसे पहले से ही विश्लेषण नहीं किया गया है।

मैं इस बात का अनुमान लगा रहा हूं कि दस्तावेजों के माध्यम से रणनीति के परिणाम क्या लौटते हैं।

एफएमजेड वापसी के साथ प्राप्ति डेटा के लिए कोड की गणना

python
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

ठीक है, मैं थोड़ा भ्रमित महसूस कर रहा हूं, लेकिन पहले मैं आपको हमारे नेटवर्क के बारे में बताता हूंः

अनुसूची की जाँच के लिए विचार

  • पहले, उपयोगकर्ता के पैरामीटर के आधार पर ग्रिड को आरंभ करें
  • पहली बार पंजीकरण
  • समय-समय पर सूची की जांच करें, फिर खरीद और बिक्री सूची के अनुसार फिर से सूची बनाएं
python
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 दिनों में एफएमजेड की गति का जवाब देना लगभग उपयोगकर्ताओं के लिए फ्रंट-एंड प्रतीक्षा समय को पूरा करने के लिए पर्याप्त है, और लंबे समय तक यह थोड़ा धीमा हो जाता है, यह एक अच्छा उपकरण है जो एक इंटरफेस के रूप में मात्रात्मक प्रतिक्रिया देता है, धन्यवाद!

ठीक है, इस बार फिर से एक व्यापार प्रतियोगिता की लहर को बढ़ावा देने के लिए, हम कभी नहीं जीतने की मात्रा टीम एक व्यापार प्रतियोगिता का आयोजन किया है, निः शुल्क भाग लेने. जब तक आप पूछताछ एपीआई प्रदान करने के लिए पंजीकरण कर सकते हैं सफल, एक द्वि-सप्ताह प्रतियोगिता के रूप में, हमारे पुरस्कार के लिए अंक भी अच्छा है.

Related Recommendations
Comment
All comments (1)

    你是需要获取实时行情,然后模拟回测的结果。这样会有一些麻烦,如果只是单交易对可以试试自己写个回测引擎,也不复杂

    6 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)