2021 का निष्कर्ष और भविष्य की रणनीति.ipynb
2021 खत्म हो रहा है, और डीईएफआई से गेमफी तक एक के बाद एक हॉट स्पॉट उभर रहे हैं, और समग्र बाजार अभी भी एक बुल मार्केट में है। अब पीछे मुड़कर देखें, आपने 2021 में कितना कमाया है? क्या अवसर चूक गया है? क्या कोई सफल निवेश हैं? हाल ही में, मैंने पिछले वर्ष के इतिहास बाजार उद्धरणों को खींचा और एक अप्रत्याशित रूप से सरल मुनाफे की रणनीति पाई, लेकिन यह एक बहु-मुद्रा सूचकांक है।
प्लेटफार्मों में सूचीबद्ध बहुत सारे मुद्रा प्रतीक हैं, और कई अज्ञात होने के लिए नियत हैं और यहां तक कि व्यापार से भी वापस ले लिए जा सकते हैं। यहां हम उन मुद्रा प्रतीकों का चयन करते हैं जो बिनेंस परपीट्यूअल स्वैप पर सूचीबद्ध हैं। वे आम तौर पर परीक्षण किए गए हैं और मुख्यधारा की मुद्राओं के रूप में मान्यता प्राप्त हैं, जो अपेक्षाकृत सुरक्षित हैं। एक साधारण स्क्रीनिंग के बाद, कुछ सूचकांक मुद्राओं को हटा दिया गया था, और 134 मुद्राएं अंततः जीवित रहीं।
[1] मेंः आयात अनुरोध दिनांक-समय से आयात की तारीख, दिनांक-समय आयात का समय पीडी के रूप में आयात पांडा एनपी के रूप में आयात करें matplotlib.pyplot को plt के रूप में आयात करें % matplotlib इनलाइन
[144] मेंः
##वर्तमान व्यापारिक जोड़ी
जानकारी = अनुरोध. प्राप्त करें"https://fapi.binance.com/fapi/v1/exchangeInfo’)
symbols = [s[
[154] मेंः
symbols_f = list(set(filter(lambda x: x[-4:] ==
[155] मेंः print(len(symbols_f))
फिर, हम पिछले वर्ष में अपने दैनिक बंद कीमतों मिलता है, और हम नोटिस है कि कुछ मुद्रा प्रतीक केवल एक छोटी अवधि के लिए बाजार पर थे, तो डेटा की जरूरत है unitization प्रसंस्करण. डेटा unitizing द्वारा, सूचकांक की गणना की जा सकती है.
अंतिम सूचकांक लाभ लगभग 12 गुना है, अर्थात, यदि आप 1 जनवरी, 2021 को औसतन इन 134 मुद्रा प्रतीकों को खरीदते हैं, तो कुछ भी नहीं करने का अंतिम लाभ 12 गुना है, और यह अनुमान लगाया जाता है कि 90% से अधिक लोग औसत सूचकांक से बेहतर प्रदर्शन नहीं करते हैं। उनमें से, सबसे बड़ी गिरावट वाले मुद्रा प्रतीकः आईसीपी 93%, डोडो 85% गिर गया, और लिना 75% गिर गया। लगभग सौ गुना की वृद्धिः सोल, एफटीएम, लुना, मैटिक, सैंड, एक्सएस। उनमें से, एक्सएस में 168 गुना की वृद्धि हुई है और सबसे बड़ा डार्क हॉर्स है। मध्यवर्ती 3 गुना बढ़ गया है। यह कहा जा सकता है कि सूचकांक मुख्य रूप से सार्वजनिक श्रृंखलाओं और खेलों द्वारा संचालित है। अवधि के दौरान नए सूचीबद्ध मुद्रा प्रतीकों को छोड़कर, अस्तित्व पूर्वाग्रह को रोकने के लिए, इसने लगभग 11 गुना लाभ भी हासिल किया। यह बस बीटीसी का 7 गुना है।
यह एक निराशाजनक लाभ अनुपात है। मैंने कड़ी मेहनत की है और सभी प्रकार की रणनीतियों की कोशिश की है, और मैंने एक वर्ष के रूप में उतना लाभ नहीं कमाया है जब मैंने कोई अतिरिक्त प्रयास नहीं किया था। हालांकि, यह ध्यान दिया जाना चाहिए कि अनुपात में कई वृद्धि बहुत बड़ी है, और स्पष्ट रूप से सूचकांक से विचलित होती है। यदि इन मुद्रा प्रतीकों को वर्ष की शुरुआत में चयनित नहीं किया जाता है, तो लाभ मध्य के करीब होगा, जो बहुत कम प्रमुख है।
[157] मेंः
किसी भी अवधि में के-लाइन प्राप्त करने के लिए #कार्य
def GetKlines ((प्रतीक=
df = pd.DataFrame(Klines,columns=['time','open','high','low','close','amount','end_time','volume','count','buy_amount','buy_volume','null']).astype('float')
df.index = pd.to_datetime(df.time,unit='ms')
profit df
[164] मेंः
df_all_s = pd.DataFrame(index=pd.date_range(start=
[165] मेंः df_all_s.tail() #डेटा संरचना बाहर[1]:
[174] मेंः
df_all = df_all_s.fillna(method=
[175] मेंः #मध्यम वृद्धि df_norm.median ((अक्ष=1).plot(figsize=(12,4),grid=True); बाहर[1]:
[168] मेंः #उदय और पतन क्रमबद्ध करना print ((df_norm.iloc[-1].round(2).sort_values().to_dict())
[317] मेंः पिछले वर्ष के उच्चतम मूल्य की तुलना में वर्तमान मूल्य का अधिकतम निकासी print (((1-df_norm.iloc[-1]/df_norm.max()).round(2).sort_values().to_dict())
[177] मेंः
df_all_f = pd.DataFrame(index=pd.date_range(start=
[208] मेंः
#नए प्रतीकों को शामिल नहीं
df = df_all_s[df_all_s.columns[~df_all_f.iloc[0].isnull() ]
df = df.fillna ((विधि=
[212] मेंः #बीटीसी की तुलना में (df.mean(axis=1)/df.BTCUSDT).plot(figsize=(12,4),grid=True); बाहर[1]:
[213] मेंः # पुराने बैकटेस्ट इंजन का उपयोग करें वर्ग विनिमयः
def __init__(self, trade_symbols, fee=0.0004, initial_balance=10000):
self.initial_balance = initial_balance #initial asset
self.fee = fee
self.trade_symbols = trade_symbols
self.account = {'USDT':{'realised_profit':0, 'unrealised_profit':0, 'total':initial_balance, 'fee':0}}
for symbol in trade_symbols:
self.account[symbol] = {'amount':0, 'hold_price':0, 'value':0, 'price':0, 'realised_profit':0,'unrealised_profit':0,'fee':0}
def Trade(self, symbol, direction, price, amount):
cover_amount = 0 if direction*self.account[symbol]['amount'] >=0 else min(abs(self.account[symbol]['amount']), amount)
open_amount = amount - cover_amount
self.account['USDT']['realised_profit'] -= price*amount*self.fee #deduct service fee
self.account['USDT']['fee'] += price*amount*self.fee
self.account[symbol]['fee'] += price*amount*self.fee
if cover_amount > 0: #close first
self.account['USDT']['realised_profit'] += -direction*(price - self.account[symbol]['hold_price'])*cover_amount #profit
self.account[symbol]['realised_profit'] += -direction*(price - self.account[symbol]['hold_price'])*cover_amount
self.account[symbol]['amount'] -= -direction*cover_amount
self.account[symbol]['hold_price'] = 0 if self.account[symbol]['amount'] == 0 else self.account[symbol]['hold_price']
if open_amount > 0:
total_cost = self.account[symbol]['hold_price']*direction*self.account[symbol]['amount'] + price*open_amount
total_amount = direction*self.account[symbol]['amount']+open_amount
self.account[symbol]['hold_price'] = total_cost/total_amount
self.account[symbol]['amount'] += direction*open_amount
def Buy(self, symbol, price, amount):
self.Trade(symbol, 1, price, amount)
def Sell(self, symbol, price, amount):
self.Trade(symbol, -1, price, amount)
def Update(self, close_price): #update asset
self.account['USDT']['unrealised_profit'] = 0
for symbol in self.trade_symbols:
self.account[symbol]['unrealised_profit'] = (close_price[symbol] - self.account[symbol]['hold_price'])*self.account[symbol]['amount']
self.account[symbol]['price'] = close_price[symbol]
self.account[symbol]['value'] = abs(self.account[symbol]['amount'])*close_price[symbol]
self.account['USDT']['unrealised_profit'] += self.account[symbol]['unrealised_profit']
self.account['USDT']['total'] = round(self.account['USDT']['realised_profit'] + self.initial_balance + self.account['USDT']['unrealised_profit'],6)
[418] मेंः
#अधिक सटीक बैकटेस्ट के लिए, 1 घंटे के-लाइन क्रॉल करें
df_all_s = pd.DataFrame(index=pd.date_range(start=
[419] मेंः
df = df_all_s[df_all_s.columns[~df_all_f.iloc[0].isnull() ]
df = df.fillna ((विधि=
बैकटेस्ट ने 1 जनवरी, 2021 को बिनेंस परपेचुअल कॉन्ट्रैक्ट्स पर सूचीबद्ध सभी मुद्रा प्रतीकों का चयन किया। K-लाइन अवधि 1h है, और पैरामीटर यह है कि जब स्थिति राशि औसत का 5% से कम हो और 5% से अधिक होने पर बेचना शुरू करें। जब बैकटेस्ट सभी मुद्रा प्रतीकों का है, तो अंतिम रणनीति लाभ 7.7 गुना है। 13 गुना के औसत लाभ से काफी खराब है। यह भी मेरी उम्मीद में है। आखिरकार, जो मुद्रा प्रतीकों में सौ गुना वृद्धि हुई है, वे बहुत विशेष हैं, और संतुलित रणनीति उन्हें सभी बेच देगी।
यदि बैकटेस्ट सबसे अधिक वृद्धि वाले 10 मुद्रा प्रतीकों को हटाने का विकल्प चुनता है, और केवल अपेक्षाकृत औसत मुद्रा प्रतीकों की जांच करता है, तो अंतिम लाभ 4.8 गुना है, जो 3.4 गुना के औसत प्रदर्शन से बहुत अधिक है।
यदि केवल उच्चतम वृद्धि वाले 3 मुद्रा प्रतीकों को घुमाया जाता है, तो अंतिम लाभ 373 गुना है, जो 160 गुना के औसत प्रदर्शन से बहुत अधिक है। यह दर्शाता है कि यदि चयनित घुमाए गए मुद्रा प्रतीक का रुझान और वृद्धि सुसंगत होती है, तो घूर्णन का परिणाम गैर-घुमाव से बहुत बेहतर होगा।
[494] मेंः
सभी प्रतीकों के #backtest
symbols = list(df.iloc[-1].sort_values() [:].index)
e = विनिमय ((प्रतीक, शुल्क=0.001, प्रारंभिक_शेष=10000)
res_list = []
avg_pct = 1/len (प्रतीक)
df[प्रतीक].iterrows में पंक्ति के लिएः
कीमतें = पंक्ति[1]
कुल = ई.खाता[
[495] मेंः
ई.खाता[
[496] मेंः #बैकटेस्ट सभी प्रतीकों का प्रदर्शन (res.total/10000).plot(figsize=(12,4), ग्रिड = सच); df[प्रतीक].mean(axis=1).plot(figsize=(12,4),grid=True); बाहर[1]:
[498] मेंः
#अत्यधिक वृद्धि के साथ प्रतीकों को कम करें
symbols = list(df.iloc[-1].sort_values()[:-10].index)
e = विनिमय ((प्रतीक, शुल्क=0.001, प्रारंभिक_शेष=10000)
res_list = []
avg_pct = 1/len (प्रतीक)
df[प्रतीक].iterrows में पंक्ति के लिएः
कीमतें = पंक्ति[1]
कुल = ई.खाता[
[501] मेंः
ई.खाता[
[499 में]: (res.total/10000).plot(figsize=(12,4), ग्रिड = सच); df[प्रतीक].mean(axis=1).plot(figsize=(12,4),grid=True); बाहर [499]:
[503] मेंः
#केवल उच्चतम वृद्धि के साथ प्रतीकों का परीक्षण
symbols = list(df.iloc[-1].sort_values()[-3:].index)
e = विनिमय ((प्रतीक, शुल्क=0.001, प्रारंभिक_शेष=10000)
res_list = []
avg_pct = 1/len (प्रतीक)
df[प्रतीक].iterrows में पंक्ति के लिएः
कीमतें = पंक्ति[1]
कुल = ई.खाता[
[504] मेंः
ई.खाता[
[505] मेंः (res.total/10000).plot(figsize=(12,4), ग्रिड = सच); df[प्रतीक].mean(axis=1).plot(figsize=(12,4),grid=True); बाहर[505]:
सामान्य तौर पर, 2021 कॉपी करेंसी के लिए एक बड़ा बुल मार्केट और बीटीसी के लिए एक सुनसान वर्ष था। बीटीसी का बाजार मूल्य वर्ष की शुरुआत में 70% से गिरकर 40% हो गया है, जो पहले से ही इतिहास में सबसे कम स्तर है। इसलिए, कॉपी करेंसी के प्रतीकों को खरीदने और उन्हें रखने का औसत लाभ पिछले वर्ष बीटीसी रखने की तुलना में बहुत अधिक था। 2022 की ओर देखते हुए, यदि आप सोचते हैं कि भविष्य में वर्तमान बाजार में अभी भी कई सौ गुना मुद्राएं पैदा हुई हैं, तो आप साहसपूर्वक अपने द्वारा आयोजित किए जा रहे मुद्रा प्रतीकों को विविधता दे सकते हैं और धैर्यपूर्वक प्रतीक्षा कर सकते हैं। यदि आप कुछ मुद्रा प्रतीकों या औसत बाजार के बारे में विशेष रूप से आशावादी हैं, तो आप बिना सोचे-समझे अतिरिक्त लाभ प्राप्त करने के लिए रोटेशन रणनीति का उपयोग कर सकते हैं। यदि आप सहमत हैं कि जब वे चरम हो जाते हैं तो चीजें विपरीत दिशा में विकसित होंगी, तो आप बेहतर मुनाफे और सुरक्षा के लिए बीटीसी के नीचे मछली पकड़ सकते हैं।