वेरिएबल और अपनी गणना
कैंडल डेटा से रेंज और मध्य कीमत निकालें तथा नतीजे दिखाएँ।
कैंडल का हाई 108 और लो 101 हो, तो अंतर 7 है। हर कैंडल पर यही कीमतों की रेंज निकालकर दिखाएँगे।
दूसरा प्रोग्राम दोनों कीमतों का मध्य निकालता है। दोनों में वेरिएबल और साधारण अंकगणित इस्तेमाल होंगे।
कैंडल क्या दर्शाती है?
कैंडल एक अवधि का डेटा समेटती है। अवधि की लंबाई टाइमफ़्रेम तय करता है। जैसे प्रति घंटे वाले डेटा में एक कैंडल एक घंटे की है।
पाँच बुनियादी डेटा हैं:
open: अवधि की शुरुआती कीमत;high: सबसे ऊँची कीमत;low: सबसे नीची कीमत;close: अंतिम कीमत;volume: अवधि का कारोबार, डेटा स्रोत की इकाई में।
इनके अंग्रेज़ी शुरुआती अक्षर मिलकर OHLCV बनाते हैं। पहले उदाहरणों में बंद हो चुकी कैंडल का नमूना डेटा है।
close हमेशा उसी कैंडल की अंतिम कीमत है जिसे प्रोग्राम अभी प्रोसेस करता है। अगली कैंडल पर उसकी क्लोज़ लेगा। यही बाकी डेटा पर लागू है।
थोड़ा इतिहास: जापानी कैंडल कहाँ से आईं?
कैंडल आधारित चित्रण की जड़ें 18वीं सदी के जापानी चावल बाज़ारों में हैं। वहाँ के कीमत विश्लेषण के तरीकों से 19वीं सदी में कैंडलस्टिक ग्राफ़ विकसित हुए। Steve Nison ने 1991 की किताब Japanese Candlestick Charting Techniques से इन्हें व्यापक पश्चिमी पाठकों तक पहुँचाया।
कैंडल की मोटी “बॉडी” ओपन और क्लोज़ के बीच का हिस्सा दिखाती है। पतली “विक” अवधि की हाई और लो बताती हैं।
इतिहास और चित्र: AAII Journal (अंग्रेज़ी में)।
रेंज निकालें
हाई 108 और लो 101 हो, तो कीमत ने 7 इकाई की रेंज तय की:
108 − 101 = 7
कोड में:
candle_range = high - lowhigh - low एक एक्सप्रेशन है: प्रोग्राम इसे मूल्यांकित करके नतीजा निकालता है। - घटाव है।
candle_range वेरिएबल का नाम है। = दाईं ओर के एक्सप्रेशन का नतीजा इसे देता है। इसे असाइनमेंट कहते हैं।
लाइन ऐसे पढ़ें: “high और low का अंतर निकालें और नतीजे को candle_range नाम दें।” आगे उसी नाम से वैल्यू इस्तेमाल कर सकते हैं।
समझ आने वाला नाम चुनें
candle_range बताता है कि वैल्यू कैंडल की रेंज है। x जैसा नाम कोड पढ़ने में कम मदद करता है।
किताब में छोटे अंग्रेज़ी अक्षरों के नाम और शब्दों के बीच अंडरस्कोर हैं। नाम अंक से शुरू न हो और उसमें स्पेस न हो। candle_range और Candle_range अलग नाम होंगे।
अंग्रेज़ी के साधारण अक्षरों में नाम क्यों?
भाषा के कीवर्ड और Pyne लाइब्रेरी के नाम अंग्रेज़ी शब्दों पर आधारित हैं, जैसे def, close और plot। अंग्रेज़ी वेरिएबल नाम इनके साथ मेल खाते हैं और हिंदी न जानने वाले भी कोड आसानी से समझ सकते हैं। आगे प्रोग्राम किसी को देना या साथ काम करना हो तो मदद मिलती है।
Pyne code वेरिएबल नाम में अन्य भाषाओं के अक्षर भी स्वीकार करता है। इसलिए अंग्रेज़ी के बिना उच्चारण-चिह्न वाले अक्षर इस्तेमाल करना सलाह है। दूसरे कीबोर्ड पर इन्हें टाइप करना और अंतरराष्ट्रीय स्तर पर कोड साझा करना आसान है। किताब में लगातार यही तरीका है।
अलग पैनल वाला इंडिकेटर बनाएँ
scripts में candle_range.py बनाकर यह लिखें:
"""
@pyne edge
"""
from pynecore.lib import color, high, low, plot, script
@script.indicator("Candle Range", overlay=False)
def main():
candle_range = high - low
plot(candle_range, "Range", color=color.orange, linewidth=2)main() की पहली लाइन वैल्यू निकालती है; दूसरी candle_range से उसे plot को देती है। इस्तेमाल से पहले असाइनमेंट होना चाहिए।
overlay=False अलग पैनल माँगता है। इससे रेंज अपने स्केल पर दिखती है: जैसे 7 इकाई की रेंज और 100 के पास की कीमत अलग परिमाण हैं।
सेव करके उसी डेमो डेटा पर चलाएँ।

नतीजा कैसे पढ़ें?
ऊँचे बिंदुओं का अंतर बड़ा है; नीचे के बिंदुओं का छोटा। गणना कैंडल के पूरे हाई और लो लेती है, विक सहित।
बढ़ती और गिरती कैंडल की रेंज समान हो सकती है, इसलिए इससे दिशा नहीं पता चलती। high, low से कम नहीं होता; सही डेटा पर नतीजा ऋणात्मक नहीं होगा।
अगली कैंडल पर वेरिएबल क्या करता है?
हर प्रोसेस की गई कैंडल पर ये दो चरण फिर होते हैं:
- उस कैंडल के
highऔरlowसेcandle_rangeनिकलता है। plotउस कैंडल की जगह वैल्यू दिखाता है।
उदाहरण:
- पहली कैंडल:
high= 108,low= 101, इसलिएcandle_range= 7। - दूसरी:
high= 110,low= 106, इसलिएcandle_range= 4। - तीसरी:
high= 109,low= 103, इसलिएcandle_range= 6।
ग्राफ़ पर 7, 4, 6 के तीन बिंदु बनते हैं। हर कैंडल पर वेरिएबल को वर्तमान गणना का नतीजा मिलता है।
पिछली कैंडल की वैल्यू और स्टेट बचाने को आगे सीखेंगे।
जोड़, गुणा और भाग
कोड में सरल गणना के चिह्न:
+: जोड़;-: घटाव;*: गुणा;/: भाग।
गुणा और भाग, जोड़ और घटाव से पहले होते हैं। पहले क्या निकालना है, इसे कोष्ठक से बता सकते हैं।
कीमत रेंज का मध्य:
midpoint = (high + low) / 2पहले दोनों कीमत जोड़कर दो से भाग देते हैं। high = 108 और low = 101 हो तो मध्य 104.5 है।
दशमलव में बिंदु पर ध्यान दें: कोड में 104.5 लिखते हैं। इस हिंदी संस्करण और अंग्रेज़ी स्क्रीनशॉट में भी यही दशमलव बिंदु है। कॉमा का कोड में दूसरा काम है, जैसे फ़ंक्शन के पैरामीटर अलग करना।
मध्य कीमत दिखाएँ
candle_midpoint.py बनाएँ:
"""
@pyne edge
"""
from pynecore.lib import color, high, low, plot, script
@script.indicator("Candle Midpoint", overlay=True)
def main():
midpoint = (high + low) / 2
plot(midpoint, "Midpoint", color=color.purple, linewidth=2)यहाँ फिर overlay=True है। मध्य कीमत कैंडल के साथ उसी कीमत स्केल पर देखना चाहते हैं।

चलाने के बाद एक कैंडल चुनकर उस जगह लाइन का बिंदु देखें। वह विक सहित पूरी रेंज के मध्य में है। बॉडी का मध्य अलग हो सकता है, क्योंकि वह ओपन और क्लोज़ से तय होता है।
कोष्ठक क्यों ज़रूरी हैं?
ये दो एक्सप्रेशन अलग गणना बताते हैं:
(high + low) / 2
high + low / 2दूसरी लाइन पहले केवल low को दो से भाग देती है, फिर high जोड़ती है। ऊपर के 108 और 101 से 158.5 मिलेगा। यह दोनों कीमतों का मध्य नहीं है।
दोनों सिंटैक्स के अनुसार सही हैं, फिर भी नतीजे अलग हैं। हाथ से निकलने वाले उदाहरण से जल्दी जाँच सकते हैं कि मनचाही गणना लिखी है या नहीं।
स्वयं करके देखें
कैंडल बॉडी का दिशात्मक बदलाव दिखाएँ: क्लोज़ से ओपन घटाएँ।
- फ़ाइल
candle_change.pyहो। - इंडिकेटर का शीर्षक
"Candle Change"हो और अलग पैनल में आए। - गणना का नाम
candle_changeहो। - ड्रॉइंग का नाम
"Change"हो।
चलाने से पहले तीन मामलों का नतीजा निकालें:
open= 100,close= 104;open= 100,close= 97;open= 100,close= 100।
अभ्यास का हल
नतीजे 4, −3 और 0 हैं। धनात्मक वैल्यू ऊँची क्लोज़, ऋणात्मक नीची क्लोज़, और शून्य समान ओपन-क्लोज़ बताता है।
"""
@pyne edge
"""
from pynecore.lib import close, color, open, plot, script
@script.indicator("Candle Change", overlay=False)
def main():
candle_change = close - open
plot(candle_change, "Change", color=color.blue, linewidth=2)तीनों प्रोग्राम मिलाएँ
रेंज, मध्य कीमत और बदलाव निकालने वाले प्रोग्राम क्रम से खोलें। हर एक OHLC डेटा से वेरिएबल निकालता है और अगली लाइन में दिखाता है। डेटा कैंडल-दर-कैंडल प्रोसेस होता है। फर्क गणना और overlay की सेटिंग का है।
अगले अध्याय में दो कैंडल की वैल्यू मिलाएँगे और पिछली कैंडल का डेटा लेना सीखेंगे।