दस्तावेज़ीकरण · Webhook

TradingView का webhook payload

जब कोई TradingView अलर्ट TheConnector तक पहुँचता है, तब WebhookIngress जिन फ़ील्ड को पढ़ता है उनकी सटीक सूची।

YouTube वीडियो (बिना कुकी वाला डोमेन), केवल प्ले दबाने पर लोड होता है।
बिना आवाज़ का ट्यूटोरियल — सब कुछ स्क्रीन पर लिखा है।

उद्देश्य

यह पृष्ठ TradingView अलर्ट के लिए सार्वजनिक WebhookIngress अनुबंध का दस्तावेज़ है। यह dashboard के मैनुअल ऑर्डर payload के बारे में नहीं है।

पहुँच का रास्ता

  • क्लाइंट workspace में: My accounts > कोई ट्रेडिंग खाता खोलें > access key कॉपी करें।
  • TradingView में: Alert > Notifications > Webhook URL में https://webhook.theconnector.fr/YOUR_ACCESS_KEY चिपकाएँ।
  • TradingView के Message फ़ील्ड में संदेश चिपकाएँ: JSON या एक पंक्ति, जैसा आप चाहें।
Dashboard खाता सेटिंग्स का स्क्रीनशॉट
खाते का विवरण खोलें और असली dashboard से account code या access key कॉपी करें।

दो फ़ॉर्मेट, एक ही नतीजा

WebhookIngress संदेश के दो फ़ॉर्मेट पढ़ता है और दोनों को बिल्कुल एक ही तरह से संसाधित करता है: एक JSON object, या टेक्स्ट की एक पंक्ति। जो आपको पसंद हो, वही इस्तेमाल करें। एक पंक्ति में पहले action और symbol आते हैं, फिर बाकी फ़ील्ड name=value के रूप में, अल्पविराम से अलग करके।

न्यूनतम JSON

json
{
  "action": "buy",
  "symbol": "EURUSD",
  "risk": 1,
  "sl": 0.2,
  "tp": 0.4,
  "priceMode": "percent"
}

priceMode अलर्ट में ही sl, tp और price की इकाई बताता है: price, pips या percent। यहाँ स्टॉप एंट्री से 0.2% और लक्ष्य 0.4% दूर है, खाते का मूल्य मोड चाहे जो हो; priceMode के बिना खाते का मूल्य मोड लागू होता है।

WebhookIngress जिन फ़ील्ड को पढ़ता है

  • action अनिवार्य है। स्वीकृत उपनाम, JSON में भी और एक पंक्ति वाले संदेश में भी: side, type, command, msgtype। type कमांड का नाम बताता है, ऑर्डर का प्रकार नहीं: buy के साथ type=limit दो अलग-अलग कमांड हैं, और अलर्ट अस्वीकार हो जाता है — पेंडिंग ऑर्डर की अपनी कमांड होती है, buylimit, selllimit, buystop या sellstop, और उसकी एंट्री कीमत price में लिखी जाती है।
  • ट्रेडिंग कमांड के लिए symbol अनिवार्य है। स्वीकृत उपनाम: pair, ticker, instrument, market, asset।
  • risk एक संख्यात्मक जोखिम मान के रूप में आगे भेजा जाता है। स्पष्ट lot size के लिए volume, lot, lots, fixedVolume या size का उपयोग करें।
  • sl और tp stop loss / take profit के मौजूदा नाम हैं। स्वीकृत उपनाम: stoploss, stop_loss, takeprofit, take_profit।
  • price केवल pending ऑर्डर के लिए उपयोग होता है: buystop, buylimit, sellstop, selllimit।
  • expiration (उपनाम expiry) किसी pending ऑर्डर को मिनटों में जीवन-अवधि देता है: अगर तब तक ऑर्डर ट्रिगर नहीं होता, तो broker उसे हटा देता है, रोबोट बंद होने पर भी। उदाहरण: "expiration": 60। market ऑर्डर पर इसे अनदेखा किया जाता है। इसके लिए रोबोट 0.0.30 या नया चाहिए: पुराने रोबोट के साथ ऑर्डर को अनिश्चित काल तक pending छोड़ने के बजाय अलर्ट अस्वीकार कर दिया जाता है। अगर broker उस symbol पर समाप्ति स्वीकार नहीं करता, तो ऑर्डर अस्वीकार हो जाता है, उसके बिना कभी नहीं रखा जाता।
  • priceMode इस अलर्ट के लिए sl, tp और price की इकाई तय करता है: price, pips या percent। इसके बिना खाते का मूल्य मोड लागू होता है।
  • ticket, orderId, order_id, positionId या position_id केवल तब उपयोग होते हैं जब निर्देश किसी ज्ञात ऑर्डर या position को लक्ष्य बनाता है।
  • खाते के URL के साथ account / accountCode और platform वैकल्पिक हैं; ये केवल साझा रूटिंग व्यवस्थाओं में उपयोगी हैं।
  • ट्रैकिंग के लिए streamId या id भेजा जा सकता है। सर्वर इसे अपने ट्रैकिंग id में TV- के बाद रखता है (अधिकतम 17 अक्षर, - को _ में बदलकर), उसके बाद _ और 8 अक्षर जोड़ता है। इसलिए एक ही id के साथ भेजे गए दो अलर्ट दो अलग अलर्ट हैं: दूसरे को कभी डुप्लिकेट नहीं माना जाता। न भेजने पर सर्वर स्वयं एक ट्रैकिंग id बनाता है।
  • tag (उपनाम comment) बताता है कि अलर्ट किस रणनीति का है। entry पर यह position के broker comment में लिखा जाता है; close पर यह बंद करने को केवल उसी नाम वाली positions तक सीमित करता है, जिससे कई रणनीतियाँ एक ही खाते और एक ही symbol को साझा कर सकती हैं। इसे lowercase किया जाता है और 12 अक्षरों पर काटा जाता है, और यह robot 0.0.21 से ही माना जाता है — उससे पुराने संस्करण में tag वाला close किसी दूसरी रणनीति की position पर चलाने के बजाय अस्वीकार कर दिया जाता है। यदि आप अपना streamId भेजते हैं तो बनाया गया id बदल जाता है और tag कभी position के comment तक नहीं पहुँचता: tag का उपयोग करते समय streamId न भेजें।
  • clientRequestedAtUtc, requestedAtUtc या requestedAt को सूचनात्मक UTC टाइमस्टैम्प के रूप में भेजा जा सकता है।

वही संदेश एक पंक्ति में

ऊपर वाला वही ऑर्डर, एक ही पंक्ति में लिखा हुआ:

text
buy,EURUSD,risk=1,sl=0.2,tp=0.4,priceMode=percent

क्या न भेजें

ttl_ms पर निर्भर न रहें: WebhookIngress का मौजूदा पार्सर इसे नहीं पढ़ता। vol_lots को volume के रूप में पढ़ा जाता है। हर कीमत उसी इकाई में रहती है जिसमें वह लिखी गई है: प्रत्यय केवल उसी मान की इकाई तय करता है (sl_pips, sl_price, sl_pct, tp_pips, tp_price, tp_pct, और पेंडिंग ऑर्डर की एंट्री के लिए entry_pips, entry_price, entry_pct); बिना प्रत्यय वाले sl, tp और price अलर्ट में लिखा priceMode (या unit) लेते हैं, वरना खाते का मूल्य मोड। रोबोट पूरे ऑर्डर पर एक ही इकाई लागू करता है, इसलिए जिस अलर्ट की कीमतों को दो इकाइयाँ चाहिए, वह अस्वीकार हो जाता है, और कभी भी अपने स्टॉप-लॉस या टेक-प्रॉफ़िट के बिना नहीं भेजा जाता: tp_price के साथ sl_pips, या tp_pips के बगल में बिना प्रत्यय वाला sl (pips पर सेट खाते पर भी; priceMode=pips जोड़ें)। सभी कीमतों पर प्रत्यय लगाएँ, या किसी पर नहीं। जो अलर्ट एक ही फ़ील्ड को दो अलग-अलग मानों के साथ दो बार लिखता है, वह भी अस्वीकार होता है (sl=10 फिर sl=20, या "action":"buy" के साथ "type":"sell"); एक ही मान दो बार हो तो उसे एक बार गिना जाता है।

WebhookTrade के लिए लिखे गए अलर्ट

WebhookTrade फ़ॉर्मेट वाला अलर्ट symbol, action (buy_limit, sell_stop…), price, stop_loss, take_profit, size (lots) और expiration (मिनट) के लिए ज्यों का त्यों पढ़ा जाता है; comment रणनीति का नाम देता है, tag की तरह; username, api_key, broker और account_type अनदेखे किए जाते हैं। उसके बंद करने वाले actions में close_all को closeall की तरह पढ़ा जाता है; close_buy, close_sell और close_pending की जगह closelong, closeshort, या cancellong और cancelshort भेजें। उसके बाकी stop, लक्ष्य, आकार, trailing और break-even पैरामीटर — sl_percentage, tp_percentage, sl_distance, tp_distance, sl_distance_price, tp_distance_price, stop_amount, profit_amount, size_percentage, risk_percentage, size_multiplier, ts_…, breakeven_… — अलर्ट को अस्वीकार करा देते हैं, ऐसे संदेश के साथ जो उनका नाम बताता है: उनके बिना चलाने पर ऑर्डर अपने stop के बिना या किसी दूसरे आकार में जाता। उन्हें sl / tp और priceMode, volume या risk, और betrigger / trailtrig / traildist से लिखें।

पहले से अलर्ट हैं? उन्हें रखें

अपने अलर्ट दोबारा लिखने की ज़रूरत नहीं है। एक पंक्ति वाला संदेश जैसा है वैसा ही काम करता है, भले ही वह किसी लाइसेंस ID से शुरू हो: हर TradingView अलर्ट में केवल webhook URL को अपने URL से बदलें, यानी उस URL से जो आपकी access key पर समाप्त होता है। तब कमांड से पहले रखा मान अनदेखा कर दिया जाता है, और sl_pips, tp_price या vol_lots जैसे पैरामीटर नाम अपने-आप अनुवादित हो जाते हैं। एक अपवाद: जो अलर्ट मूल्य इकाइयाँ मिलाता है (जैसे tp_price के साथ sl_pips), वह अब अस्वीकार हो जाता है: सभी कीमतें एक ही इकाई में लिखें।

किसी ब्रोकर-विशिष्ट विशेष स्थिति की आवश्यकता है? सहायता से संपर्क करें