2021 کا اختتام اور مستقبل کی حکمت عملی.ipynb
2021 اختتام کو آرہا ہے ، اور ڈی ای ایف آئی سے گیمفی تک ہاٹ سپاٹ ایک کے بعد ایک ابھرتے جارہے ہیں ، اور مجموعی طور پر مارکیٹ اب بھی ایک بیل مارکیٹ میں ہے۔ اب پیچھے مڑ کر دیکھیں تو ، آپ نے 2021 میں کتنا کمایا ہے؟ کیا موقع ضائع ہوا؟ کیا کوئی کامیاب سرمایہ کاری ہے؟ حال ہی میں ، میں نے گذشتہ سال کی مارکیٹ کی تاریخ کی قیمتوں کا تعین کیا اور ایک غیر متوقع طور پر آسان منافع بخش حکمت عملی ملی ، لیکن یہ ایک کثیر کرنسی انڈیکس ہے۔
پلیٹ فارمز میں درج کرنسی کی بہت سی علامتیں ہیں ، اور بہت سے نامعلوم ہونے کا ارادہ رکھتے ہیں اور یہاں تک کہ تجارت سے بھی واپس لے لیا جاسکتا ہے۔ یہاں ہم کرنسی کی علامتوں کا انتخاب کرتے ہیں جو بائننس پرپٹیوئل سویپ پر درج کی گئی ہیں۔ وہ عام طور پر تجربہ کیا گیا ہے اور انہیں مرکزی دھارے کی کرنسیوں کے طور پر تسلیم کیا جاتا ہے ، جو نسبتا safe محفوظ ہیں۔ ایک سادہ اسکریننگ کے بعد ، کچھ انڈیکس کرنسیوں کو ہٹا دیا گیا ، اور 134 کرنسیاں آخر کار زندہ بچ گئیں۔
میں [1]: درآمد کی درخواستیں تاریخ سےوقت درآمد کی تاریخ،تاریخ اور وقت درآمد کا وقت پی ڈی کے طور پر پانڈا درآمد نپ کے طور پر نپ درآمد درآمد matplotlib.pyplot کے طور پر plt %مٹپلوٹلیب ان لائن
[144] میں:
##موجودہ ٹریڈنگ جوڑی
معلومات = درخواستیں.get ((https://fapi.binance.com/fapi/v1/exchangeInfo’)
علامات = [s[
[154] میں:
symbols_f = list(set(filter(lambda x: x[-4:] ==
[155] میں: print(len(symbols_f))
پھر، ہم گزشتہ سال میں ان کی روزانہ بند قیمتوں کو حاصل کرتے ہیں، اور ہم نے محسوس کیا کہ کچھ کرنسی کے نشانات صرف ایک مختصر مدت کے لئے مارکیٹ پر تھے، لہذا اعداد و شمار کو یونٹائزیشن پروسیسنگ کی ضرورت ہے. اعداد و شمار کو یونٹائز کرکے، انڈیکس کا حساب لگایا جا سکتا ہے.
حتمی انڈیکس منافع تقریبا 12 گنا ہے ، یعنی ، اگر آپ 1 جنوری 2021 کو اوسطا these ان 134 کرنسیوں کی علامتوں کو خریدتے ہیں تو ، کچھ نہ کرنے کا حتمی منافع 12 گنا ہے ، اور یہ اندازہ لگایا جاتا ہے کہ 90 فیصد سے زیادہ لوگ اوسط انڈیکس سے بہتر کارکردگی کا مظاہرہ نہیں کرتے ہیں۔ ان میں ، سب سے زیادہ کمی کے ساتھ کرنسیوں کی علامتیں: آئی سی پی میں 93 فیصد کمی واقع ہوئی ، ڈوڈو میں 85 فیصد کمی واقع ہوئی ، اور لینا میں 75 فیصد کمی واقع ہوئی۔ تقریبا ایک سو گنا اضافہ ہوا: SOL ، FTM ، LUNA ، MATIC ، SAND ، AXS۔ ان میں سے ، AXS میں 168 گنا اضافہ ہوا ہے اور یہ سب سے بڑا سیاہ گھوڑا ہے۔ میڈین میں 3 گنا اضافہ ہوا ہے۔ یہ کہا جاسکتا ہے کہ انڈیکس بنیادی طور پر عوامی زنجیروں اور کھیلوں سے چلتا ہے۔ اس مدت کے دوران نئے درج کردہ کرنسیوں کی علامتوں کو خارج کرتے ہوئے ، بقا کے تعصب کو روکنے کے لئے ، اس نے تقریبا 11 گنا منافع بھی حاصل کیا۔ یہ صرف 7 BTC کا انعقاد ہے۔
یہ ایک مایوس کن منافع کا تناسب ہے۔ میں نے سخت محنت کی ہے اور ہر طرح کی حکمت عملیوں کی کوشش کی ہے ، اور میں نے اتنا منافع نہیں کیا ہے جتنا ایک سال میں جب میں نے کوئی اضافی کوشش نہیں کی تھی۔ تاہم ، یہ نوٹ کیا جانا چاہئے کہ تناسب میں کئی اضافے بہت بڑے ہیں ، اور ظاہر ہے کہ انڈیکس سے انحراف کرتے ہیں۔ اگر ان کرنسی کی علامتوں کو سال کے آغاز میں منتخب نہیں کیا جاتا ہے تو ، منافع میڈین کے قریب ہوگا ، جو بہت کم نمایاں ہے۔
[157] میں:
# کسی بھی مدت میں K لائن حاصل کرنے کے لئے تقریب
def GetKlines ((symbol=
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() #ڈیٹا ڈھانچہ باہر[165]:
[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()) گول ((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) ۔ باہر[212]:
[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] میں:
#زیادہ درست backtest کے لئے، 1-گھنٹے K-لائن کرال
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 ((طریقہ=
بیک ٹیسٹ نے یکم جنوری 2021 کو بائننس پرپکٹیو کنٹریکٹس پر درج تمام کرنسی کے علامتوں کو منتخب کیا۔ K لائن کی مدت 1h ہے ، اور پیرامیٹر یہ ہے کہ جب پوزیشن کی رقم اوسط کا 5٪ سے کم ہو تو خریدنا شروع کریں اور 5٪ سے زیادہ ہونے پر فروخت کرنا شروع کریں۔ جب بیک ٹیسٹ تمام کرنسی کے علامتوں کا ہوتا ہے تو ، حتمی حکمت عملی کا منافع 7.7 گنا ہوتا ہے۔ اوسط منافع 13 گنا سے نمایاں طور پر بدتر ہے۔ یہ بھی میری توقع میں ہے۔ بہر حال ، وہ کرنسی کے علامتیں جو سو گنا بڑھ گئیں وہ بہت خاص ہیں ، اور متوازن حکمت عملی ان سب کو فروخت کرے گی۔
اگر بیک ٹیسٹ میں 10 کرنسی کے نشانات کو ہٹانے کا انتخاب کیا جاتا ہے جن میں سب سے زیادہ اضافہ ہوتا ہے ، اور صرف نسبتا average معمولی کرنسی کے نشانات کا جائزہ لیا جاتا ہے ، تو حتمی منافع 4.8 گنا ہے ، جو اوسط کارکردگی سے کہیں زیادہ ہے 3.4 گنا.
اگر صرف 3 کرنسی کے نشانات جن میں سب سے زیادہ اضافہ ہوتا ہے ، گھومے جاتے ہیں تو ، حتمی منافع 373 گنا ہے ، جو اوسط کارکردگی سے 160 گنا زیادہ ہے۔ اس سے پتہ چلتا ہے کہ اگر منتخب کردہ گھومنے والی کرنسی کی علامت کا رجحان اور اضافہ مستقل ہوتا ہے تو ، گھومنے کا نتیجہ گھومنے سے کہیں بہتر ہوگا۔
[494] میں:
#backtest تمام علامتوں کی
علامات = list(df.iloc[-1].sort_values() [:].index)
e = ایکسچینج ((علامات، فیس=0.001، ابتدائی_باقی=10000)
res_list = []
avg_pct = 1/len ((علامات)
df[symbols].iterrows میں صف کے لئے:
قیمتیں = قطار [1]
کل = ای.اکاؤنٹ[
[495] میں:
ای.اکاؤنٹ[
[496] میں: #backtest تمام علامتوں کی کارکردگی (res.total/10000).plot(figsize=(12,4),grid = True) ۔ df[symbols].mean ((axis=1).plot ((figsize=(12,4),grid=True) ؛ باہر[496]:
[498] میں:
#کم علامتوں کے ساتھ بہت بڑا اضافہ
علامات = فہرست ((df.iloc[-1].sort_values() [:-10].index)
e = ایکسچینج ((علامات، فیس=0.001، ابتدائی_باقی=10000)
res_list = []
avg_pct = 1/len ((علامات)
df[symbols].iterrows میں صف کے لئے:
قیمتیں = قطار [1]
کل = ای.اکاؤنٹ[
[501] میں:
ای.اکاؤنٹ[
میں [499]: (res.total/10000).plot(figsize=(12,4),grid = True) ۔ df[symbols].mean ((axis=1).plot ((figsize=(12,4),grid=True) ؛ باہر[499]:
[503] میں:
#صرف سب سے زیادہ اضافہ کے ساتھ علامتوں کی جانچ کریں
علامات = list(df.iloc[-1].sort_values()[-3:].index)
e = تبادلہ ((علامات، فیس=0.001، ابتدائی_باقی=10000)
res_list = []
avg_pct = 1/len ((علامات)
df[symbols].iterrows میں صف کے لئے (():
قیمتیں = قطار [1]
کل = ای.اکاؤنٹ[
[504] میں:
ای.اکاؤنٹ[
[505] میں: (res.total/10000).plot(figsize=(12,4),grid = True) ۔ df[symbols].mean ((axis=1).plot ((figsize=(12,4),grid=True) ؛ باہر[505]:
عام طور پر ، 2021 کاپی کرنسیوں کے لئے ایک بڑا بیل مارکیٹ تھا اور بی ٹی سی کے لئے ایک ویران سال تھا۔ بی ٹی سی کی مارکیٹ ویلیو سال کے آغاز میں 70٪ سے گر کر اب 40٪ ہوگئی ہے ، جو پہلے ہی تاریخ کی سب سے کم سطح ہے۔ لہذا ، نقل کرنسی کے نشانات خریدنے اور انہیں رکھنے کا اوسط منافع گذشتہ سال بی ٹی سی رکھنے سے کہیں زیادہ تھا۔ 2022 کو آگے دیکھتے ہوئے ، اگر آپ کو لگتا ہے کہ مستقبل میں موجودہ مارکیٹ میں ابھی بھی کئی سو گنا کرنسیاں پیدا ہوں گی ، تو آپ جرات مندانہ طور پر اپنے پاس موجود کرنسی کے نشانات میں تنوع پیدا کرسکتے ہیں اور صبر سے انتظار کرسکتے ہیں۔ اگر آپ خاص طور پر چند کرنسی کے نشانات یا اوسط مارکیٹ کے بارے میں پرامید ہیں تو ، آپ بغیر سوچے زیادہ منافع حاصل کرنے کے لئے گردش کی حکمت عملی کا استعمال کرسکتے ہیں۔ اگر آپ اس بات پر متفق ہیں کہ جب وہ انتہائی ہوجائیں گے تو چیزیں مخالف سمت میں ترقی کریں گی ، تو آپ بہتر منافع اور سیکیورٹی کے لئے بی ٹی سی کے نیچے مچھلی مار سکتے ہیں۔