GaiaEx AcademyGaiaEx Academy
क्रिप्टो ट्रेडर्स के लिए टाइम सीरीज़ फोरकास्टिंग
डेवलपरAI और ML12 min read

क्रिप्टो ट्रेडर्स के लिए टाइम सीरीज़ फोरकास्टिंग

सीक्वेंस मॉडल से कीमत की चाल का अनुमान लगाना

पोस्ट साझा करें

टाइम सीरीज़ डेटा को समझना

एक टाइम सीरीज़ समय के अनुसार क्रमबद्ध डेटा पॉइंट्स का एक सिलसिला है — हर मिनट स्टॉक की कीमतें, दैनिक बिटकॉइन क्लोज़, हर घंटे का तापमान। टाइम सीरीज़ को दूसरे डेटा से अलग करने वाली बात यह है कि क्रम मायने रखता है। एक क्लासिफ़िकेशन डेटासेट में पंक्तियां फेंटना हानिरहित है; एक टाइम सीरीज़ को फेंटना उसका अर्थ ही नष्ट कर देता है।

तीन खासियतें किसी भी टाइम सीरीज़ का चरित्र तय करती हैं। ट्रेंड लंबी-अवधि की दिशा है — BTC की कीमत 2019 की शुरुआत में $3,000 से 2021 के अंत तक $60,000 पहुंची, एक साफ़ ऊर्ध्व ट्रेंड। सीज़नैलिटी तय अंतराल पर दोहराने वाले पैटर्न को दर्शाती है — क्रिप्टो मार्केट्स में अक्सर US मार्केट घंटों के दौरान वॉल्यूम बढ़ता है और वीकेंड्स पर एक्टिविटी घटती है। स्टेशनैरिटी का मतलब है कि मीन और वेरियंस जैसी स्टैटिस्टिकल खासियतें समय के साथ स्थिर रहती हैं। ज़्यादातर वित्तीय टाइम सीरीज़ नॉन-स्टेशनरी होती हैं — कीमतें ऊपर की ओर बहती हैं या क्रैश होती हैं — जो स्थिर डिस्ट्रिब्यूशन मानने वाले मॉडलों के लिए चुनौतियां बनाती हैं।

किसी भी मॉडल में वित्तीय डेटा डालने से पहले, आपको इसे रूपांतरित करना होता है। लॉग रिटर्न्स लेना (लगातार दो अवधियों के बीच कीमत के रेशियो का प्राकृतिक लॉग) नॉन-स्टेशनरी कीमतों को लगभग स्टेशनरी रिटर्न्स में बदल देता है। डिफ़रेंसिंग — पिछली वैल्यू घटाना — भी वैसा ही असर करती है। ये रूपांतरण वैकल्पिक नहीं हैं; ये ज़्यादातर फ़ोरकास्टिंग तरीकों के सही से काम करने के लिए पूर्व-आवश्यकताएं हैं।

एक वित्तीय टाइम सीरीज़ को अलग करना (सैद्धांतिक) ट्रेंड सीज़नल हिलोर समय → देखा गया = ट्रेंड + सीज़नैलिटी + शोर (रिटर्न्स अक्सर शोर को स्थिर करते हैं)
असली कीमतें एक धीमी बहाव, दोहराने वाले पैटर्न, और अनियमितता को मिलाती हैं — मॉडल उन हिस्सों को लक्षित करते हैं जिनकी भविष्यवाणी आप चाहते हैं।

ARIMA: क्लासिकल बेसलाइन

ARIMA (ऑटोरेग्रेसिव इंटीग्रेटेड मूविंग एवरेज) दशकों से टाइम सीरीज़ फ़ोरकास्टिंग का घोड़ा रहा है। यह तीन हिस्सों को मिलाता है: AR(p) पिछली p वैल्यूज़ का इस्तेमाल करके अगली की भविष्यवाणी करता है, I(d) स्टेशनैरिटी हासिल करने के लिए सीरीज़ को d बार डिफ़रेंस करता है, और MA(q) पिछली भविष्यवाणियों के एरर टर्म्स को मॉडल करता है।

वित्तीय डेटा के लिए, ARIMA एक अहम बेसलाइन का काम करता है। कोई भी मशीन लर्निंग मॉडल जो आपके खास डेटासेट पर एक अच्छे से ट्यून किए गए ARIMA को नहीं हरा सकता, वह बिना वैल्यू जोड़े जटिलता जोड़ रहा है। व्यवहार में, ARIMA अक्सर हैरान करते हुए अच्छा करता है कम-फ्रीक्वेंसी डेटा (दैनिक या साप्ताहिक कैंडल्स) के लिए छोटी-अवधि की भविष्यवाणियों में, जहां सिग्नल-टू-नॉइज़ रेशियो संभालने-योग्य होता है।

# ARIMA baseline for BTC daily returns
from statsmodels.tsa.arima.model import ARIMA
import pandas as pd

returns = prices.pct_change().dropna()
model = ARIMA(returns, order=(2, 0, 1))  # AR(2), no differencing (returns already stationary), MA(1)
fitted = model.fit()
forecast = fitted.forecast(steps=5)
print(f"AIC: {fitted.aic:.2f}")  # Lower AIC = better model

ARIMA की सीमाएं जटिल नॉनलिनियर पैटर्न्स, रेजीम बदलावों, और हाई-डाइमेंशनल फ़ीचर स्पेसेस के साथ साफ़ दिखने लगती हैं। यहीं से डीप लर्निंग तस्वीर में आता है।

ARIMA(p,d,q): पिछली वैल्यूज़ और एरर्स कैसे फ़ोरकास्ट को खिलाते हैं AR(p) y उपयोग करता है yt-1…t-p I(d) d डिफ़रेंस MA(q) एरर्स εt-1…t-q ŷt+1 फ़ोरकास्ट ACF/PACF, AIC, या रोलिंग CV से (p,d,q) चुनें — फिर ML बेसलाइन्स से तुलना करें। लॉग-रिटर्न्स सीधे इस्तेमाल करने पर वित्तीय रिटर्न्स अक्सर d=0 सेट करते हैं
ऑटोरिग्रेशन, इंटीग्रेशन (डिफ़रेंसिंग), और मूविंग-एवरेज शॉक्स मिलकर एक कॉम्पैक्ट रैखिक फ़ोरकास्ट इंजन बनाते हैं।

सीक्वेंस मॉडलिंग के लिए LSTM नेटवर्क्स

Long Short-Term Memory (LSTM) नेटवर्क एक तरह के रिकरेंट न्यूरल नेटवर्क हैं जो सीक्वेंशियल डेटा में लंबी-दूरी की निर्भरताएं सीखने के लिए बनाए गए हैं। सामान्य RNN के विपरीत, जो वैनिशिंग ग्रेडिएंट्स से जूझते हैं और सिर्फ़ कुछ टाइम स्टेप्स के बाद जानकारी भूल जाते हैं, LSTM एक गेटिंग मैकेनिज़्म इस्तेमाल करते हैं — फ़ॉरगेट गेट, इनपुट गेट, और आउटपुट गेट — सैकड़ों स्टेप्स में चुनकर जानकारी बचाने या छोड़ने के लिए।

वित्तीय टाइम सीरीज़ के लिए, LSTM ARIMA पर दो फ़ायदे देते हैं: वे नॉनलिनियर रिश्तों को मॉडल कर सकते हैं (कीमत की गतिशीलता शायद ही कभी रैखिक होती है), और वे एक साथ कई इनपुट फ़ीचर्स शामिल कर सकते हैं — सिर्फ़ पिछली कीमतें नहीं, बल्कि वॉल्यूम, वोलैटिलिटी, फंडिंग रेट्स, ऑर्डर बुक असंतुलन, और कोई भी दूसरा सिग्नल जिसे आप मानते हैं कि प्रेडिक्टिव जानकारी रखता है।

एक LSTM के लिए डेटा तैयार करने में सावधानीपूर्वक विंडोइंग चाहिए होती है। आप तय लंबाई (जैसे, 60 टाइम स्टेप्स) के इनपुट सीक्वेंसेस बनाते हैं जिन्हें टारगेट वैल्यू (अगली कीमत या रिटर्न) के साथ जोड़ा जाता है। नॉर्मलाइज़ेशन अहम है — फ़ीचर्स को [0, 1] में स्केल करें या शून्य मीन और यूनिट वेरियंस पर स्टैंडर्डाइज़ करें। पर यहां एक जाल है: आपको स्केलर को सिर्फ़ ट्रेनिंग डेटा पर फ़िट करना चाहिए और वैलिडेशन और टेस्ट डेटा को उन्हीं पैरामीटर्स से ट्रांसफ़ॉर्म करना चाहिए। पूरे डेटासेट पर फ़िट करना भविष्य की जानकारी को लीक करता है।

पूरे डेटासेट से कैलकुलेट की गई स्टैटिस्टिक्स का इस्तेमाल करके कभी नॉर्मलाइज़ न करें। अपने स्केलर को सिर्फ़ ट्रेनिंग सेट पर फ़िट करें, फिर इसे वैलिडेशन और टेस्ट सेट्स पर लागू करें। यह एक ही गलती किसी भी दूसरी डेटा-तैयारी की गलती से ज़्यादा लुक-अहेड बायस पैदा करती है।

# LSTM data preparation with proper normalization
import numpy as np
from sklearn.preprocessing import MinMaxScaler

def create_sequences(data, window=60):
    X, y = [], []
    for i in range(window, len(data)):
        X.append(data[i - window:i])
        y.append(data[i, 0])  # Predict next close
    return np.array(X), np.array(y)

# Fit scaler on training data ONLY
scaler = MinMaxScaler()
train_scaled = scaler.fit_transform(train_data)
test_scaled = scaler.transform(test_data)  # Transform, don't fit

X_train, y_train = create_sequences(train_scaled)
X_test, y_test = create_sequences(test_scaled)

अटेंशन मैकेनिज़्म और टेंपोरल फ़्यूज़न ट्रांसफ़ॉर्मर्स

वही सेल्फ़-अटेंशन मैकेनिज़्म जिसने नैचुरल लैंग्वेज प्रोसेसिंग में क्रांति ला दी, टाइम सीरीज़ के लिए भी बराबर ताकतवर साबित हुआ है। एक LSTM की तरह सीक्वेंसेस को स्टेप-दर-स्टेप प्रोसेस करने के बजाय, अटेंशन मॉडल को सभी टाइम स्टेप्स को एक साथ देखने देता है, यह सीखते हुए कि कौन से ऐतिहासिक पल भविष्य की भविष्यवाणी के लिए सबसे ज़्यादा जुड़े हैं।

टेंपोरल फ़्यूज़न ट्रांसफ़ॉर्मर (TFT), जिसे 2021 में Google Research ने पेश किया, मल्टी-होराइज़न टाइम सीरीज़ फ़ोरकास्टिंग के लिए खासतौर से बनाया गया है। यह कई नवाचारों को मिलाता है:

  • वेरिएबल सेलेक्शन नेटवर्क्स — अपने-आप सीखता है कि कौन से इनपुट फ़ीचर्स सबसे ज़्यादा मायने रखते हैं, बना-बनाया इंटरप्रेटेबिलिटी देते हुए। आप देख सकते हैं कि मॉडल प्राइस मोमेंटम, वॉल्यूम, या फंडिंग रेट्स पर ज़्यादा निर्भर है या नहीं।
  • गेटेड रेज़िडुअल नेटवर्क्स — बेमानी इनपुट्स को दबाते हैं और मॉडल को जटिल नॉनलिनियर फ़ीचर इंटरैक्शन्स संभालने देते हैं।
  • समय के साथ मल्टी-हेड अटेंशन — पहचानता है कि हर प्रेडिक्शन होराइज़न के लिए कौन से ऐतिहासिक टाइम स्टेप्स सबसे ज़्यादा जानकारी देते हैं।
  • क्वांटाइल आउटपुट्स — पॉइंट एस्टिमेट्स के बजाय प्रेडिक्शन इंटरवल्स (10वां, 50वां, 90वां पर्सेंटाइल) देता है, जो आपको अनिश्चितता का एक पैमाना देता है — ट्रेडिंग में रिस्क मैनेजमेंट के लिए ज़रूरी।

व्यवहार में, TFT ने बिजली की डिमांड फ़ोरकास्टिंग, रिटेल सेल्स प्रेडिक्शन, और वित्तीय वोलैटिलिटी मॉडलिंग समेत बेंचमार्क्स में LSTM और परंपरागत मॉडलों को पीछे छोड़ा है। GaiaEx जैसे प्लेटफ़ॉर्म्स के ज़रिए सुलभ क्रिप्टो मार्केट्स के लिए, TFT की भिन्न-भिन्न इनपुट्स को प्रोसेस करने की क्षमता — स्टैटिक मेटाडेटा (एसेट टाइप, लिस्टिंग डेट), जानी-मानी भविष्य की वैल्यूज़ (हफ़्ते का दिन, दिन का समय), और देखे गए समय-परिवर्तित फ़ीचर्स (कीमत, वॉल्यूम, ऑन-चेन मेट्रिक्स) — इसे खासतौर से उपयुक्त बनाती है।

व्यावहारिक उदाहरण: BTC कीमत की दिशा की भविष्यवाणी करना

यह ईमानदारी से समझ लें कि क्या हासिल किया जा सकता है। कल बिटकॉइन की ठीक-ठीक कीमत की भविष्यवाणी करना मूल रूप से असंभव है। इफ़िशिएंट मार्केट हाइपोथिसिस (EMH) कहता है कि कीमतें पहले से ही सारी उपलब्ध जानकारी दर्शाती हैं, जिससे लगातार भविष्यवाणी करना एक बेकार कोशिश बन जाती है। क्रिप्टो में, EMH का कमज़ोर रूप बहस-योग्य है — मार्केट्स इक्विटीज़ से कम कारगर हैं — पर शोर-से-सिग्नल का रेशियो अब भी बेहद खराब है।

एक ज़्यादा व्यावहारिक लक्ष्य है दिशात्मक सटीकता: क्या BTC ओपन से ज़्यादा या कम पर बंद होगा? यह बाइनरी क्लासिफ़िकेशन समस्या ज़्यादा साध्य है, और 50% सटीकता से मामूली सुधार भी (मान लें, लगातार 53–55%) सही पोज़िशन साइज़िंग और रिस्क मैनेजमेंट के साथ काफ़ी मुनाफ़ेदार हो सकते हैं।

एक व्यावहारिक पाइपलाइन ऐसी दिखती है:

  • फ़ीचर्स: 60-पीरियड रिटर्न्स, RSI, MACD हिस्टोग्राम, बोलिंगर बैंड चौड़ाई, वॉल्यूम रेशियो (मौजूदा बनाम 20-पीरियड औसत), परपेचुअल फ्यूचर्स से फंडिंग रेट, BTC डोमिनेंस, और ओपन इंटरेस्ट बदलाव।
  • मॉडल: 128 हिडन यूनिट्स के साथ दो-लेयर LSTM, 0.3 का ड्रॉपआउट, बाइनरी क्लासिफ़िकेशन के लिए सिग्मॉइड एक्टिवेशन वाली एक डेंस लेयर के बाद।
  • स्प्लिट: 2020–2023 पर ट्रेन करें, जनवरी–जून 2024 पर वैलिडेट करें, जुलाई–दिसंबर 2024 पर टेस्ट करें। कभी फेंटें नहीं — हमेशा कालानुक्रम से स्प्लिट करें।
  • इवैल्यूएशन: दिशात्मक सटीकता, ऊपर बनाम नीचे की भविष्यवाणियों पर प्रिसिज़न/रीकॉल, और — सबसे अहम — हर सिग्नल पर एक तय पोज़िशन साइज़ मानते हुए सिम्युलेटेड P&L।

अगर आपका मॉडल आउट-ऑफ़-सैंपल टेस्ट सेट पर 1.2 से ऊपर के प्रॉफ़िट फ़ैक्टर के साथ 54% दिशात्मक सटीकता हासिल करता है, तो आपके पास आगे जांचने लायक कुछ है। अगर यह 65% सटीकता दिखाता है, तो आपने लगभग निश्चित रूप से ओवरफिट किया है। वित्तीय बाज़ारों में असली एज छोटे होते हैं, और जो कोई इससे उलट दावा करे, वह आपको कुछ और बेच रहा है।

इवैल्यूएशन मेट्रिक्स और एन्सेम्बल तरीके

सही मेट्रिक चुनना यह तय करता है कि आप सही चीज़ के लिए ऑप्टिमाइज़ कर रहे हैं या नहीं। MAE (मीन एब्सोल्यूट एरर) आपको आपके डेटा की ही यूनिट्स में आपकी प्रेडिक्शन एरर्स का औसत आकार बताता है — सहज पर बड़ी एरर्स को असमान रूप से दंडित नहीं करता। RMSE (रूट मीन स्क्वेयर्ड एरर) एरर्स को औसत निकालने से पहले वर्ग करता है, आउटलायर्स को भारी दंड देते हुए — तब उपयुक्त जब एक ही विनाशकारी गलत-भविष्यवाणी कई छोटी गलतियों से ज़्यादा मायने रखती है। दिशात्मक सटीकता मापती है कि आपका मॉडल कितनी बार सही ढंग से भविष्यवाणी करता है कि कीमत ऊपर या नीचे जाएगी — अक्सर ट्रेडिंग सिग्नल्स के लिए सबसे उपयुक्त मेट्रिक।

एन्सेम्बल तरीके वेरियंस घटाने और मज़बूती बढ़ाने के लिए कई मॉडलों की भविष्यवाणियां मिलाते हैं। सामान्य तरीकों में शामिल हैं:

  • सिंपल एवरेजिंग — एक LSTM, एक ट्रांसफ़ॉर्मर, और एक ARIMA की भविष्यवाणियों का औसत निकालें। अगर हर मॉडल सिग्नल का अलग हिस्सा पकड़ता है, तो एन्सेम्बल किसी भी अकेले मॉडल से बेहतर करता है।
  • स्टैकिंग — बेस मॉडल की भविष्यवाणियों का सबसे बेहतर कॉम्बिनेशन सीखने के लिए एक मेटा-मॉडल (जैसे, एक ग्रेडिएंट-बूस्टेड ट्री) को ट्रेन करें।
  • रेजीम-अवगत स्विचिंग — यह चुनने के लिए कि किस मॉडल पर भरोसा करना है, एक वोलैटिलिटी रेजीम डिटेक्टर इस्तेमाल करें। एक LSTM ट्रेंडिंग मार्केट्स में बेहतर कर सकता है जबकि एक मीन-रिवर्ज़न मॉडल रेंजिंग परिस्थितियों में बेहतर करता है।

आप कोई भी तरीका अपनाएं, याद रखें कि रिसर्च और प्रोडक्शन के बीच का अंतर विशाल है। एक मॉडल जो एक Jupyter नोटबुक में 55% सटीकता से BTC दिशा की भविष्यवाणी करता है, उसे GaiaEx जैसे प्लेटफ़ॉर्म के ज़रिए लाइव एक्ज़ीक्यूट होने पर लेटेंसी, स्लिपेज, और ट्रांज़ैक्शन कॉस्ट से बचना होगा। पहले दिन से इन हकीकतों को सिम्युलेट करने के लिए अपनी इवैल्यूएशन पाइपलाइन बनाएं — किसी बाद के विचार के रूप में नहीं।