GaiaEx AcademyGaiaEx Academy
फाइनेंस के लिए Python: लाइब्रेरी, डेटा, और आपकी पहली स्क्रिप्ट
डेवलपरप्रोग्रामिंग10 min read

फाइनेंस के लिए Python: लाइब्रेरी, डेटा, और आपकी पहली स्क्रिप्ट

क्वांटिटेटिव फाइनेंस की सबसे लोकप्रिय भाषा — यहां से शुरुआत करें

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

Python एक वर्कफ़्लो भाषा है, सिर्फ़ सिंटैक्स नहीं

क्वांटिटेटिव फाइनेंस टीमें किसी भाषा को सिर्फ़ उसकी दिखावटी सुंदरता के लिए शायद ही चुनती हैं। वे वह चुनती हैं जो किसी रिसर्चर को गड़बड़ CSV से एक टेस्टेड सिग्नल तक ले जाए, बिना हर हफ़्ते सारी दुनिया फिर से लिखे। Python जीतता है क्योंकि यह पढ़ने में आसान है, स्क्रिप्ट के अनुकूल है, और एक बड़े संख्यात्मक इकोसिस्टम — इनजेशन, क्लीनिंग, फीचर वर्क, विज़ुअलाइज़ेशन, और (सावधानी से) प्रोडक्शन सर्विसेज़ — के केंद्र में बैठा है।

तीन बाधाएँ लगभग हर डेस्क पर दिखती हैं:

  • पहले प्लॉट तक का समय — क्या आप कुछ मिनटों में इतिहास का एक हिस्सा लोड कर आउटलायर्स देख सकते हैं?
  • इंटरऑप — क्या आप एक्सचेंज API, डेटाबेस, और ML लाइब्रेरी को एक ही प्रोसेस में कॉल कर सकते हैं?
  • रीप्रोड्यूसिबिलिटी — क्या कोई और आपके एनवायरनमेंट को फिर से बना सकता है और वही नंबर पा सकता है?

Python हर CPU साइकल के हिसाब से सबसे तेज़ भाषा नहीं है। यह अक्सर सवाल से सबूत तक पहुँचने का सबसे तेज़ रास्ता है — जो कि असली बॉटलनेक है।

सामान्य Python क्वांट स्टैक (लॉजिकल परतें) API / फाइलें REST, WS, CSV pandas align, resample NumPy वेक्टर गणित viz / ML matplotlib, sklearn… एक्सप्लोरेशन के लिए नोटबुक → दोबारा इस्तेमाल के लिए मॉड्यूल → शेड्यूल के लिए जॉब या सर्विस भाषा एक ही रहती है; जैसे आइडिया जाँच में टिकता है, सीमाएँ कसती जाती हैं
डेटा फ़ीड से भीतर की ओर बहता है; लाइब्रेरी एक-दूसरे पर टिकती हैं; मज़बूती कोड को नोटबुक से मॉड्यूल की ओर ले जाती है।

एनवायरनमेंट जिन्हें आप फिर से बना सकते हैं

हर गंभीर प्रोजेक्ट को एक आइसोलेटेड एनवायरनमेंट से शुरू करें ताकि pip install के प्रयोग असंबंधित काम को खराब न करें। क्लासिक रास्ता है python -m venv .venv, इसे एक्टिवेट करना, फिर requirements.txt में या Poetry या pip-tools के किसी लॉकफ़ाइल में डिपेंडेंसी को पिन करना।

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

python -m venv .venv
source .venv/bin/activate
pip install pandas numpy matplotlib

वे लाइब्रेरी जिन्हें रटकर जानना फ़ायदेमंद है

NumPy आपको सटीक क्रम में रखे गए ऐरे और तेज़ एलिमेंटवाइज़ गणित देता है। pandas उसके ऊपर लेबल की गई टेबल, टाइम इंडेक्स, मर्ज, और ग्रुपबाय की परतें जोड़ता है। Matplotlib (या Plotly) सीरीज़ को उन चार्ट्स में बदलता है जिन्हें आप किसी मीटिंग में डिफेंड कर सकें।

क्रिप्टो कनेक्टिविटी के लिए, ccxt कई एक्सचेंज API को एक ही सतह के पीछे सामान्य कर देता है — फिर भी हर वेन्यू की प्रिसिज़न और रेट लिमिट पढ़ें। पारंपरिक इक्विटीज़ के लिए, वेंडर SDK या Yahoo-स्टाइल लोडर आम तौर पर ट्रेनिंग डेटा के लिए इस्तेमाल होते हैं, लेटेंसी-सेंसिटिव लाइव ट्रेडिंग के लिए नहीं।

रिटर्न और वोलैटिलिटी का एक न्यूनतम स्केच

ज़्यादातर वर्कफ़्लो इसी में सिमट जाते हैं: कीमतें लोड करना → रिटर्न कैलकुलेट करना → रोलिंग स्टैटिस्टिक्स निकालना। यहाँ डेली क्लोज़ का इस्तेमाल करते हुए एक छोटा पैटर्न है:

import pandas as pd
import numpy as np

df = pd.read_csv("prices.csv", parse_dates=["date"]).set_index("date")
df["ret"] = df["close"].pct_change()
df["vol_20d"] = df["ret"].rolling(20).std() * np.sqrt(252)

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

कच्ची कीमतों से रिस्क आँकड़ों तक Pₜ क्लोज़ rₜ ΔP/P σ, VaR रोलिंग विंडो सिग्नल इनजेशन पर मौजूद गड़बड़ी हर बाद के बॉक्स को खराब कर देती है — पहले टाइमस्टैम्प और स्प्लिट्स की पुष्टि करें।
रिटर्न ही वह कड़ी है जो कीमत के स्तरों को लगभग हर आगे के रिस्क या अल्फा मेट्रिक से जोड़ती है।

बैकटेस्ट से API कॉल तक

रिसर्च कोड और प्रोडक्शन कोड अलग-अलग दिशा में जाते हैं: पहला धीमे लूप बर्दाश्त कर लेता है; दूसरे को टाइमआउट, बैकऑफ़ के साथ रिट्राई, आइडेम्पोटेंट ऑर्डर ID, और स्ट्रक्चर्ड लॉग चाहिए। अगर आप Hyperliquid पर GaiaEx जैसे वेन्यू के खिलाफ़ ऑटोमेट करते हैं, तो वॉलेट की, नॉन्स डिसिप्लिन, और ऑन-चेन फाइनैलिटी को सिस्टम का हिस्सा मानें — किसी नोटबुक पर बाद में जोड़े गए विचार की तरह नहीं।

Python एक बेहतरीन ऑर्केस्ट्रेशन परत बना रहता है: ट्रेडिंग API को कॉल करें, फिल्स को एनालिटिक्स के लिए pandas में डालें, और जब रिस्क लिमिट टूटे तो Slack पर अलर्ट करें। क्रिटिकल पाथ को इतना सरल रखें कि जब मार्केट गैप करें तो भी आप उसे समझ सकें।