अगर exchange के बॉट का दरवाज़ा Python है, तो चार्ट ऑटोमेशन का दरवाज़ा Pine Script है। यह TradingView की अपनी भाषा है, खास तौर पर टेक्निकल एनालिसिस के लिए बनी है, और शुरुआत करने वालों के लिए इसका एक बड़ा फायदा है: आप प्रोग्राम, प्लॉट और बैकटेस्ट एक ही स्क्रीन परकरते हैं, बिना कुछ इंस्टॉल किए। यह ट्यूटोरियल मौजूदा वर्जन इस्तेमाल करता है, Pine Script v5.
01Pine Script क्या है (और इसी से शुरू क्यों करें)
Pine Script एक स्क्रिप्टिंग भाषा है जिसे TradingView ने दो कामों के लिए बनाया: अपनी पसंद के इंडिकेटर बनाना (जो चार्ट पर प्लॉट होते हैं) और स्ट्रैटेजी बनाना (जो खरीद/बिक्री के सिग्नल देती हैं और जिन्हें हिस्टोरिकल डेटा पर टेस्ट किया जा सकता है)। यह सरल है, इसी काम के लिए बनी है और TradingView के क्लाउड पर चलती है — आपको न सर्वर चाहिए, न इंस्टॉलेशन।
सीखने के लिए यह क्यों बढ़िया है: लिखो→प्लॉट करो→टेस्ट करो वाला चक्र यहाँ तुरंत और आँखों के सामने होता है। नतीजा उसी वक्त चार्ट पर दिख जाता है। Python में पूरा डेटा पाइपलाइन खड़ा करने के मुकाबले किसी स्ट्रैटेजी के आइडिया को परखना यहाँ कहीं ज़्यादा तेज़ है।
02आपका पहला इंडिकेटर
TradingView में खोलिए Pine Editor (चार्ट के नीचे वाला टैब)। हर स्क्रिप्ट की शुरुआत वर्जन और टाइप बताने से होती है। चलिए एक सिंपल मूविंग एवरेज प्लॉट करते हैं:
//@version=5 indicator("Minha Primeira MM", overlay=true) // input: period को interface से adjust करने देता है periodo = input.int(20, "Período da Média") // close की सिंपल मूविंग एवरेज निकालता है media = ta.sma(close, periodo) // चार्ट पर plot करता है plot(media, "MM", color=color.aqua, linewidth=2)
क्लिक कीजिए चार्ट में जोड़ें। हो गया — आपकी एवरेज कैंडल के ऊपर दिखने लगेगी। overlay=true ही इंडिकेटर को प्राइस के ऊपर बनवाता है (नीचे किसी अलग पैनल में नहीं)।
03जो कॉन्सेप्ट समझने ज़रूरी हैं
टाइम सीरीज़
Pine में वेरिएबल जैसे close, open, high, low सिर्फ एक नंबर नहीं होते — वे सीरीज़होते हैं। स्क्रिप्ट चार्ट की हर कैंडल के लिए एक बार चलती है, और close उस बार में हमेशा मौजूदा कैंडल के क्लोज़ को दिखाता है। पिछली कैंडल तक पहुँचने के लिए ब्रैकेट इस्तेमाल कीजिए: close[1] पिछली कैंडल का क्लोज़ है, close[2] उससे पहले वाली का।
ta लाइब्रेरी के फंक्शन
लाइब्रेरी ta (technical analysis) में सब कुछ तैयार मिलता है: ta.sma() (सिंपल एवरेज), ta.ema() (एक्सपोनेंशियल), ta.rsi(), ta.macd(), ta.crossover() (ऊपर की तरफ क्रॉस), ta.crossunder() (नीचे की तरफ क्रॉस)। इंडिकेटर हाथ से गिनने की नौबत शायद ही आती है।
04इंडिकेटर से स्ट्रैटेजी तक
अहम फर्क: indicator() सिर्फ बनाता है; strategy() ट्रेड सिम्युलेट करता है और बैकटेस्ट की रिपोर्ट देता है। चलिए एवरेज को एक ऐसे क्रॉसओवर सिस्टम में बदलते हैं जो ट्रेड करता है:
//@version=5 strategy("Cruzamento de Médias", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // एडजस्टेबल parameters rapida = input.int(9, "MM Rápida") lenta = input.int(21, "MM Lenta") ma_rapida = ta.ema(close, rapida) ma_lenta = ta.ema(close, lenta) // crossovers पकड़ता है cruzaCima = ta.crossover(ma_rapida, ma_lenta) cruzaBaixo = ta.crossunder(ma_rapida, ma_lenta) // ट्रेडिंग के नियम if cruzaCima strategy.entry("Compra", strategy.long) if cruzaBaixo strategy.close("Compra") // मूविंग एवरेज दिखाएं plot(ma_rapida, "Rápida", color=color.lime) plot(ma_lenta, "Lenta", color=color.orange)
चार्ट में जोड़ते ही TradingView अपने-आप नीचे खोल देता है Strategy Tester — नेट प्रॉफिट, ट्रेड की संख्या, एक्यूरेसी, अधिकतम drawdown और इक्विटी कर्व के साथ। आपने टेस्ट का एक लाइन कोड लिखे बिना बैकटेस्ट कर लिया।
तैयार स्ट्रैटेजी चाहिए, जिन्हें ढाल सकें?
क्लासिक स्ट्रैटेजी का हमारा संग्रह देखिए, तर्क समझाया हुआ — कोड में बदलने के लिए तैयार।
05स्टॉप लॉस और टेक प्रॉफिट जोड़ना
रिस्क मैनेजमेंट के बिना स्ट्रैटेजी अधूरी है। Pine में स्टॉप और टारगेट आप एंट्री के वक्त ही तय करते हैं:
// entry ब्लॉक के अंदर if cruzaCima strategy.entry("Compra", strategy.long) // stop 2% नीचे, टारगेट 4% ऊपर (रिस्क:रिवॉर्ड 1:2) strategy.exit("Saida", "Compra", stop = close * 0.98, limit = close * 1.04)
टिप: इन वैल्यू को बदलते ही Strategy Tester सब कुछ दोबारा गिन देता है। इससे देखिए कि अलग-अलग स्टॉप/टारगेट लेवल नतीजे पर क्या असर डालते हैं — लेकिन सावधान रहिए overfitting से (यानी बीते हुए डेटा पर हद से ज़्यादा ऑप्टिमाइज़ कर देना)।
06अलर्ट: ऑटोमेशन तक का पुल
Pine Script TradingView पर चलती है और आपके ब्रोकर पर खुद ऑर्डर नहीं भेजती। ऑटोमेशन तक का पुल हैं अलर्ट। आप कोड में एक अलर्ट जोड़ते हैं, और शर्त पूरी होने पर TradingView एक webhook (यानी एक HTTP रिक्वेस्ट) उस सर्वर को भेज सकता है जो ब्रोकर पर ऑर्डर लगाता है।
// crossover पर अलर्ट भेजता है if cruzaCima alert("COMPRA BTCUSDT", alert.freq_once_per_bar_close) if cruzaBaixo alert("VENDA BTCUSDT", alert.freq_once_per_bar_close)
अलर्ट को असली ऑर्डर में बदलने के दो तरीके: (1) नेटिव इंटीग्रेशन — जो ब्रोकर TradingView को सपोर्ट करते हैं (जैसे Pepperstone) वे सीधे चार्ट से ऑर्डर लगाते हैं; (2) webhook + सर्वर — अलर्ट आपके सर्वर को कॉल करता है (जैसे कोई Python स्क्रिप्ट जो webhook लेती है और API से ऑर्डर भेजती है, जैसा हमने दिखाया है Binance ट्यूटोरियल में).
ध्यान दें: webhook वाला ऑटोमेशन फेल होने के नए बिंदु जोड़ता है (सर्वर बैठ जाए, रिक्वेस्ट खो जाए, लेटेंसी)। समय के प्रति संवेदनशील स्ट्रैटेजी के लिए ब्रोकर का नेटिव इंटीग्रेशन ज़्यादा भरोसेमंद है। असली पैसे से ऑटोमेट करने से पहले डेमो अकाउंट पर खूब टेस्ट कीजिए।
07आगे महारत के लिए अगले कदम
- पूरी
taलाइब्रेरी पढ़िए — RSI, MACD, Bollinger, ATR। हर एक नई स्ट्रैटेजी के रास्ते खोलती है। - arrays और
varसीखिए, ताकि कैंडल दर कैंडल स्टेट सँभाल सकें (जैसे किसी सपोर्ट लेवल को ट्रैक करना)। - SMC पैटर्न पहचानिए — order block और fair value gap को Pine में कोड किया जा सकता है (देखिए हमारी Smart Money Concepts गाइड).
- Pine v5 का आधिकारिक मैनुअल पढ़िए — यही सबसे अच्छा संदर्भ है और इसमें हर चीज़ के उदाहरण हैं।
08अक्सर पूछे जाने वाले सवाल
Pine Script क्या है?
यह TradingView की प्रोग्रामिंग भाषा है, जिससे प्लेटफॉर्म पर ही अपने इंडिकेटर और बैकटेस्ट वाली स्ट्रैटेजी बनाई जाती हैं। यह क्लाउड पर चलती है — कुछ इंस्टॉल करने की ज़रूरत नहीं।
क्या Pine Script मुश्किल है?
नहीं। यह सरल है और चार्ट एनालिसिस के लिए ही बनी है। जिसने पहले प्रोग्रामिंग की है वह घंटों में सीख लेता है; बिल्कुल नए लोग बेसिक कुछ दिनों में पकड़ लेते हैं। लिखो→प्लॉट करो→टेस्ट करो वाला दृश्य चक्र सीखने की रफ्तार बहुत बढ़ा देता है।
क्या Pine Script से सच में ट्रेड हो सकता है?
Pine सिग्नल और अलर्ट बनाती है। असली ऑर्डर अपने-आप लगाने के लिए आप अलर्ट को webhook से जोड़ते हैं (जो API के जरिए ब्रोकर को ऑर्डर भेजता है) या TradingView को सपोर्ट करने वाले ब्रोकर का नेटिव इंटीग्रेशन इस्तेमाल करते हैं।
ऑटोमेशन के लिए Pine Script या Python?
प्रोटोटाइप बनाने और तेज़ विज़ुअल बैकटेस्ट के लिए Pine बेहतर है। Python पूरा कंट्रोल देती है और TradingView से अलग चलती है, इसलिए मज़बूत एक्जीक्यूशन के लिए बढ़िया है। बहुत लोग स्ट्रैटेजी डिज़ाइन करने के लिए Pine और उसे चलाने के लिए Python इस्तेमाल करते हैं।
क्या Pine इस्तेमाल करने के लिए TradingView का पैसा देना पड़ेगा?
फ्री प्लान में भी स्क्रिप्ट बनाई और टेस्ट की जा सकती हैं, कुछ सीमाओं के साथ (एक साथ कितने इंडिकेटर, कितने अलर्ट)। कई अलर्ट वाले गंभीर ऑटोमेशन के लिए पेड प्लान ज़्यादा सुविधाएँ खोलते हैं।