हर बॉट को कुछ भी तय करने से पहले डेटा चाहिए। Python के साथ Deriv API में, ticks_history रिक्वेस्ट इसका दिल है: यह किसी असेट का मूल्य इतिहास देता है — ticks या candles (OHLC) के रूप में — और साथ ही लाइव अपडेट सब्सक्राइब करने की सुविधा भी देता है। यह गाइड एक सीधा रेफ़रेंस है: सिंटैक्स, मायने रखने वाले फ़ील्ड और इतिहास खींचने तथा रियल-टाइम ticks पाने के लिए तैयार कोड। शॉर्ट-टर्म ट्रेडिंग बेहद ऊँचे जोखिम वाली है — सब कुछ पहले डेमो अकाउंट पर टेस्ट करें।

एक तैयार Deriv बॉट चाहते हैं जो पहले से डेटा इकट्ठा करता है, इंडिकेटर कैलकुलेट करता है और जोखिम संभालता है? Python में समाधान देखें और डेमो अकाउंट पर टेस्ट करें।

Python में Deriv बॉट देखें →

कनेक्शन

Deriv JSON मैसेज के साथ WebSocket इस्तेमाल करता है। सिर्फ़ मार्केट डेटा पढ़ने के लिए आपको टोकन की ज़रूरत भी नहीं (लेकिन ट्रेड करने के लिए ज़रूरी है):

import json, asyncio, websockets APP_ID = “1089” # अपना app_id इस्तेमाल करें URL = f”wss://ws.derivws.com/websockets/v3?app_id={APP_ID}” async def send(ws, payload): await ws.send(json.dumps(payload)) return json.loads(await ws.recv())

ticks फ़ॉर्मैट में ticks_history

किसी असेट की आख़िरी N क़ीमतें (ticks) खींचने के लिए:

req = { “ticks_history”: “R_100”, “end”: “latest”, “count”: 10, “style”: “ticks” } resp = await send(ws, req) hist = resp[“history”] print(“Preços:”, hist[“prices”]) # क़ीमतों की लिस्ट print(“Tempos:”, hist[“times”]) # timestamps की लिस्ट (epoch)
मुख्य फ़ील्ड: count तय करता है कि कितने पॉइंट पीछे जाना है; end “latest” या एक timestamp स्वीकार करता है; आप किसी रेंज के लिए start भी इस्तेमाल कर सकते हैं। ticks स्टाइल में, रिस्पॉन्स history.prices और history.times (दो समानांतर लिस्ट) में आता है।

candles (OHLC) फ़ॉर्मैट में ticks_history

कैंडल (open/high/low/close) के लिए, style: "candles" इस्तेमाल करें और granularity को सेकंड में तय करें (60 = 1 मिनट, 300 = 5 मिनट, 3600 = 1 घंटा):

req = { “ticks_history”: “R_100”, “end”: “latest”, “count”: 50, “style”: “candles”, “granularity”: 60 # 1 मिनट } resp = await send(ws, req) candles = resp[“candles”] ultima = candles[-1] print(“Open :”, ultima[“open”]) print(“High :”, ultima[“high”]) print(“Low :”, ultima[“low”]) print(“Close:”, ultima[“close”]) print(“Epoch:”, ultima[“epoch”])

रिस्पॉन्स candles में आता है, जो open, high, low, close और epoch वाले ऑब्जेक्ट की एक लिस्ट है — इंडिकेटर (मूविंग एवरेज, RSI, ATR) को फ़ीड करने के लिए तैयार।

लाइव ticks (subscribe)

हर नया tick रियल-टाइम में पाने के लिए, subscribe: 1 जोड़ें और सॉकेट पढ़ते रहें:

await ws.send(json.dumps({“ticks”: “R_100”, “subscribe”: 1})) while True: msg = json.loads(await ws.recv()) tick = msg.get(“tick”) if tick: print(tick[“epoch”], “->”, tick[“quote”])
सब्सक्रिप्शन बंद करना: लौटाया गया subscription.id सहेजें और प्राप्त करना रोकने के लिए {"forget": "<id>"} भेजें। सब कुछ एक साथ रोकने के लिए, {"forget_all": "ticks"} इस्तेमाल करें।

सुझाव: इतिहास + लाइव जोड़ना

प्रोफ़ेशनल पैटर्न सरल है: अपने इंडिकेटर को “गर्म” करने (warm-up) के लिए candles का एक ब्लॉक खींचें, और उसके बाद लाइव ticks से अपडेट करें। इस तरह आपका RSI/ATR दर्जनों बार का इंतज़ार किए बिना ही सही ढंग से कैलकुलेटेड शुरू होता है।

FAQ

क्या डेटा पढ़ने के लिए टोकन चाहिए?
मार्केट के ticks_history और ticks के लिए आम तौर पर नहीं। ट्रेड करने (proposal/buy) और अकाउंट डेटा के लिए टोकन ज़रूरी है।

कौन-कौन सी granularities मौजूद हैं?
सेकंड में वैल्यू जैसे 60, 120, 300, 600, 900, 1800, 3600, 7200, 14400, 28800 और 86400 (1 दिन), आदि।

count की सीमा क्या है?
प्रति रिक्वेस्ट एक अधिकतम सीमा होती है (हज़ारों में)। लंबे इतिहास के लिए, start और end इस्तेमाल कर पेजिनेट करें।

असेट की लिस्ट कैसे लूँ?
अपने अकाउंट/क्षेत्र में उपलब्ध सिंबल जानने के लिए active_symbols रिक्वेस्ट इस्तेमाल करें।

चेतावनी: शॉर्ट-टर्म कॉन्ट्रैक्ट और ऑप्शंस की ट्रेडिंग बेहद ऊँचे जोखिम वाली है और अधिकांश रिटेल ट्रेडर पैसा गँवाते हैं। यह सामग्री शैक्षिक और तकनीकी है, यह निवेश की सिफ़ारिश, ऑफ़र या वित्तीय सलाह नहीं है। पिछले परिणाम भविष्य के परिणामों की गारंटी नहीं देते। असली पूँजी जोखिम में डालने से पहले हमेशा डेमो अकाउंट पर टेस्ट करें और कभी भी उससे ज़्यादा निवेश न करें जितना आप गँवा सकते हैं।