होम > ब्लॉग > MT5 में Off Quotes और Requote — त्रुटि 10021

MT5MQL5एररसमस्या समाधानEA

MT5 में Off Quotes और Requote — त्रुटि 10021

प्रकाशित: 2026-07-07पढ़ने का समय: लगभग 8 मिनट
This article reflects information as of its publish date. EA performance figures (PF, DD, annual return) change with live trading and re-validation — check the latest on the EA pages. See the latest EA results

विषय सूची

  1. ये दोनों (+ MT4 का 136/138) एक-दूसरे से कैसे अलग हैं
  2. ① TRADE_RETCODE_PRICE_OFF = 10021 (प्रोसेस करने के लिए कोई कोट उपलब्ध नहीं)
  3. ② TRADE_RETCODE_REQUOTE = 10004 (Requote — नए प्राइस का प्रस्ताव)
  4. ③ MT4 युग की error 136 / 138
  5. पहले 30 सेकंड में यह जांचें
  6. कारण और उपाय (5 पैटर्न)
  7. ① तेज़ मार्केट मूवमेंट / न्यूज़ स्पाइक (भेजा गया प्राइस पहुंचने से पहले पुराना हो गया)
  8. ② deviation (allowed slippage) बहुत कम सेट है
  9. ③ Execution mode का अंतर (Requote instant execution की खासियत है)
  10. ④ पतले या रुके हुए कोट वाला समय/सिंबल
  11. ⑤ कनेक्शन लेटेंसी (VPS ब्रोकर सर्वर से दूर है)
  12. MQL5 में इस एरर को कम करने वाला कोड (EA डेवलपर्स के लिए)
  13. deviation को points में सही सेट करें
  14. सिर्फ प्राइस-संबंधी retcode के लिए रीट्राई करें (नवीनतम टिक से फिर से भेजें)
  15. Requote (10004) के नए प्रस्तावित प्राइस का उपयोग करें
  16. शुरू से ही ऐसा समय बनाएं जहां ऑर्डर ही न दिया जाए
  17. प्राथमिकता चेकलिस्ट
  18. निष्कर्ष
  19. FAQ
  20. Q: 10004 और 10021 में से कौन ज़्यादा गंभीर है?
  21. Q: जिस ब्रोकर में requote कभी नहीं आता, वह अच्छा है क्या?
  22. Q: MT4 के EA में error 136 / 138 आता है, क्या उपाय वही है?
  23. Q: बैकटेस्ट में नहीं आता, लेकिन लाइव में आता है।

MT5/MQL5 में Off Quotes और Requote की समस्या का पूरा समाधान

EA चलाते समय जब जर्नल या Expert टैब में off quotes (10021) या requote (10004) दिखता है, तो लगता है जैसे ब्रोकर ने ऑर्डर को रिजेक्ट कर दिया हो और चिंता होने लगती है। लेकिन ये दोनों फंड या लॉट साइज़ की समस्या नहीं हैं, बल्कि "प्राइस" की समस्या हैं। आपने जो प्राइस भेजा और सर्वर के पास इस समय जो प्राइस है, वे मैच नहीं हुए — बात सिर्फ इतनी है। और इसके ज़्यादातर कारण इन्हीं में से किसी एक में आते हैं: तेज़ी से बदलता मार्केट, allowed slippage, execution mode, या कनेक्शन लेटेंसी।

यह लेख MT5 पर EA चलाने वालों और MQL5 में EA लिखने वालों — दोनों के लिए है। इसमें 10021 (TRADE_RETCODE_PRICE_OFF) और 10004 (TRADE_RETCODE_REQUOTE), और MT4 युग की error 136/138 — इनकी असली पहचान, कारण, तुरंत किए जा सकने वाले उपाय, और कोड में स्थायी समाधान — सब एक जगह समेटा गया है। एरर कोड्स की पूरी लिस्ट के लिए MQL5 / MT5 एरर कोड्स की संपूर्ण गाइड देखें।

यह लेख जुलाई 2026 के समय के MT5 (build 4xxx सीरीज़) को आधार मानकर लिखा गया है। व्यवहार के बारीक पहलू (रीक्वोट भेजेगा या सीधे एक्ज़िक्यूट करेगा, आदि) ब्रोकर के execution mode पर निर्भर करते हैं।


ये दोनों (+ MT4 का 136/138) एक-दूसरे से कैसे अलग हैं

"प्राइस मैच नहीं हुआ" वाले रिजेक्शन के सर्वर के जवाब देने के तरीके के आधार पर दो प्रकार होते हैं।

① TRADE_RETCODE_PRICE_OFF = 10021 (प्रोसेस करने के लिए कोई कोट उपलब्ध नहीं)

यह OrderSend() के रिज़ल्ट MqlTradeResult.retcode में आने वाली वैल्यू है, जिसका मतलब है "रिक्वेस्ट प्रोसेस करने के लिए कोई कोट उपलब्ध नहीं है (There are no quotes to process the request)"। इसका मतलब है कि सर्वर के पास कोई वैध प्राइस नहीं है, या भेजा गया प्राइस वर्तमान कोट से इतना दूर है कि उसे प्रोसेस नहीं किया जा सकता।

मतलब: रिक्वेस्ट प्रोसेस करने के लिए कोई कोट उपलब्ध नहीं
कॉन्स्टेंट: TRADE_RETCODE_PRICE_OFF
वैल्यू: 10021

② TRADE_RETCODE_REQUOTE = 10004 (Requote — नए प्राइस का प्रस्ताव)

यह भी OrderSend() का retcode है, लेकिन यह सिर्फ रिजेक्शन नहीं है — यह "वह प्राइस मान्य नहीं, लेकिन यह नया प्राइस कैसा रहेगा" का प्रस्ताव (requote) है। MqlTradeResult के bid / ask फील्ड में सर्वर द्वारा दिया गया नया प्राइस वापस आता है।

मतलब: Requote — नए प्राइस का प्रस्ताव
कॉन्स्टेंट: TRADE_RETCODE_REQUOTE
वैल्यू: 10004
// लॉग में दिखने वाला सामान्य आउटपुट उदाहरण
2026.07.07 21:30:02.118 EA_NAME EURUSD,M5: OrderSend error 10004 (requote)
2026.07.07 21:30:02.310 EA_NAME EURUSD,M5: OrderSend error 10021

③ MT4 युग की error 136 / 138

MQL4 (MT4) में यही समस्या GetLastError() के एरर कोड के रूप में सामने आती थी।

MT4 कॉन्स्टेंटवैल्यूसंबंधित MT5 retcode
ERR_OFF_QUOTES13610021 (TRADE_RETCODE_PRICE_OFF)
ERR_REQUOTE13810004 (TRADE_RETCODE_REQUOTE)

पुराने EA गाइड्स या MT4 वर्शन के EA लॉग्स में "error 136" या "error 138" दिखे तो इस लेख की सारी बातें वहां भी लागू होती हैं (MT4 में RefreshRates() से प्राइस दोबारा लेकर फिर से भेजना स्टैंडर्ड तरीका था। MT5 में इसे कैसे लिखते हैं, यह आगे बताया गया है)।

प्रैक्टिकल तरीके से पहचान:

retcodeसर्वर का जवाबEA को क्या करना चाहिए
10004 (requote)"प्राइस बदल गया, नया प्राइस दे रहे हैं"नवीनतम प्राइस से फिर से भेजें (या रुकें)
10021 (price off)"प्रोसेस करने के लिए कोई कोट उपलब्ध नहीं"थोड़ा रुकें और नवीनतम टिक से फिर से भेजें

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


पहले 30 सेकंड में यह जांचें

  1. कब आया — जर्नल के टाइमस्टैम्प से चेक करें
    • नॉन-फार्म पेरोल, FOMC जैसे न्यूज़ रिलीज़ के ठीक समय → यह सामान्य मार्केट मूवमेंट है। अगर EA में न्यूज़ फिल्टर है तो उसे ऑन करें
    • सर्वर टाइम के 0 बजे के आसपास (rollover) या सोमवार के गैप पर → यह पतले कोट वाला समय है। यह सामान्य है
    • समय से बेपरवाह, बेतरतीब ढंग से बार-बार आ रहा है → कनेक्शन, VPS, या deviation सेटिंग की जांच करें
  2. किस सिंबल पर आया चेक करें
    • माइनर करेंसी पेयर, एक्ज़ॉटिक पेयर, CFD जैसे कम लिक्विडिटी वाले सिंबल पर ज़्यादा आ रहा है तो वजह उस सिंबल की पतली कोटिंग है
  3. मैनुअल ऑर्डर में भी आता है या नहीं देखें
    • मैनुअल क्विक ऑर्डर सही से चल जाता है लेकिन EA का ऑर्डर रिजेक्ट होता है → EA का deviation (allowed slippage) बहुत कम सेट होने की संभावना ज़्यादा है

इन तीन बातों से यह अंदाज़ा लगाएं कि समस्या "मार्केट की वजह से", "सिंबल की वजह से", या "सेटिंग/एनवायरनमेंट की वजह से" है, फिर आगे दिए कारण-आधारित उपायों पर जाएं।


कारण और उपाय (5 पैटर्न)

① तेज़ मार्केट मूवमेंट / न्यूज़ स्पाइक (भेजा गया प्राइस पहुंचने से पहले पुराना हो गया)

लक्षण: आर्थिक आंकड़ों की घोषणा के समय, बड़े बयानों के समय, सोमवार सुबह जल्दी 10004/10021 ज़्यादा आते हैं।

कारण: EA ने टिक लेकर प्राइस कैलकुलेट किया, और ऑर्डर सर्वर तक पहुंचने में जो कुछ दसियों-सैंकड़ों मिलीसेकंड लगे उस बीच प्राइस कई pips हिल गया। भेजा गया प्राइस अब मौजूद ही नहीं है, इसलिए सर्वर requote (10004) या no quotes (10021) लौटाता है। यह वास्तव में एरर नहीं, बल्कि तेज़ मार्केट में स्वाभाविक रूप से होने वाली घटना है

उपाय:

  1. न्यूज़ के आगे-पीछे नई एंट्री रोकें (न्यूज़ फिल्टर)। हमारी साइट के EA में EconomicFilter स्टैंडर्ड रूप से शामिल है
  2. deviation (allowed slippage) को यथार्थवादी वैल्यू पर सेट करें (देखें ②)
  3. रीट्राई लॉजिक जोड़ें (नीचे कोड में बताया गया है)

② deviation (allowed slippage) बहुत कम सेट है

लक्षण: शांत मार्केट में भी कभी-कभार आता है। मैनुअल ऑर्डर सही चलता है लेकिन EA का रिजेक्ट होता है।

कारण: MqlTradeRequest.deviation यह बताता है कि "भेजे गए प्राइस से कितने points तक का अंतर स्वीकार्य है"। इसे 0 से कुछ points तक सीमित करने पर सामान्य टिक अपडेट जितना अंतर भी रिजेक्ट हो जाता है। यह pips नहीं बल्कि points है (5-डिजिट ब्रोकर पर 1 pip = 10 points) — इस अंतर को समझने में गलती होना भी आम बात है।

उपाय:

  1. deviation को 10–30 points (= 1–3 pips) से शुरू करके देखें। स्कैल्पिंग EA न हो तो 20 points एक सुरक्षित शुरुआती वैल्यू है
  2. "deviation=5 सेट किया था लेकिन असल में 0.5 pips निकला" जैसी यूनिट की गलतफहमी न हो, यह जांचें
  3. अगर स्ट्रेटेजी में कोई भी slippage स्वीकार नहीं करना है, तो रिजेक्शन को सामान्य मानें और सिर्फ रीट्राई की संख्या नियंत्रित करें

③ Execution mode का अंतर (Requote instant execution की खासियत है)

लक्षण: ब्रोकर A में बार-बार आता है, लेकिन ब्रोकर B में कभी नहीं दिखा।

कारण: Requote (10004) instant execution से जुड़ी खासियत है। Instant execution में ऑर्डर का मतलब होता है "इस प्राइस पर एक्ज़िक्यूट करो", इसलिए प्राइस हिलने पर सर्वर नया प्राइस (requote) प्रस्तावित करता है। दूसरी ओर, market execution में ऑर्डर का मतलब होता है "अभी के मार्केट प्राइस पर एक्ज़िक्यूट करो", इसलिए requote सैद्धांतिक रूप से हो ही नहीं सकता — इसके बदले अलग प्राइस पर ही एक्ज़िक्यूशन (slippage) हो जाता है

यानी "requote न आना = बेहतर" नहीं है, बल्कि रिजेक्ट होने या slippage के साथ एक्ज़िक्यूट होने के बीच का ट्रेड-ऑफ है। सिंबल का execution mode MT5 के "Specification" टैब के Execution फील्ड में, या कोड में SYMBOL_TRADE_EXEMODE से चेक किया जा सकता है।

उपाय:

  1. अपने अकाउंट का execution mode चेक करें (कई विदेशी ब्रोकरों के स्टैंडर्ड अकाउंट market execution होते हैं, जिनमें requote बिल्कुल नहीं आता)
  2. अगर बार-बार आने वाला requote स्ट्रेटेजी में बाधा बन रहा है, तो market execution वाला अकाउंट टाइप या ब्रोकर चुनें
  3. market execution में भी कुछ ब्रोकर deviation को मानते हैं और कुछ नहीं मानते, इसलिए अगर बहुत ज़्यादा slippage स्वीकार्य नहीं है तो ट्रेड हिस्ट्री से असल slippage वेरीफाई करें

④ पतले या रुके हुए कोट वाला समय/सिंबल

लक्षण: सर्वर टाइम के 0 बजे के आसपास (rollover), सोमवार ओपन के तुरंत बाद, क्रिसमस जैसे कम-वॉल्यूम पीरियड, या माइनर सिंबल पर 10021 आता है।

कारण: Rollover के समय स्वैप प्रोसेसिंग की वजह से कोट फीड अस्थायी रूप से रुक जाती है या स्प्रेड बहुत ज़्यादा फैल जाता है। सोमवार ओपन के तुरंत बाद या कम लिक्विडिटी वाले सिंबल में शुरू से ही प्रोसेस करने लायक कोट कम होते हैं। इस स्थिति में ऑर्डर देने पर 10021 (no quotes) आता है।

उपाय:

  1. सर्वर टाइम 23:55 से 0:05 के आसपास नई एंट्री से बचें (टाइम फिल्टर)
  2. सोमवार ओपन के शुरुआती कुछ मिनटों से बचें (AvoidMondayOpen जैसी सेटिंग)
  3. स्प्रेड फिल्टर (MaxSpread) लगाएं। पतले कोट वाले समय में स्प्रेड बढ़ जाता है, इसलिए इससे यह समय स्वचालित रूप से टल जाता है

⑤ कनेक्शन लेटेंसी (VPS ब्रोकर सर्वर से दूर है)

लक्षण: समय या सिंबल की परवाह किए बिना, दूसरे एनवायरनमेंट से साफ ज़्यादा फ्रीक्वेंसी। ping वैल्यू बड़ी है।

कारण: ऑर्डर सर्वर तक पहुंचने में जितना ज़्यादा राउंड-ट्रिप टाइम (लेटेंसी) लगता है, उतनी ही ज़्यादा संभावना होती है कि इस बीच प्राइस बदल जाए। घर के PC पर, या ब्रोकर सर्वर की लोकेशन (अक्सर लंदन, न्यूयॉर्क आदि) से दूर के VPS रीजन पर चलाने से 10004/10021 की फ्रीक्वेंसी संरचनात्मक रूप से बढ़ जाती है। MT5 के नीचे-दाएं कोने में दिखने वाला ping एक अच्छा संकेतक है (कुछ सौ ms स्पष्ट रूप से नुकसानदायक है, कुछ दसियों ms से कम बेहतर है)।

उपाय:

  1. MT5 के नीचे-दाएं कोने का ping वैल्यू चेक करें, अगर हमेशा बड़ा रहता है तो EA चलाने के एनवायरनमेंट पर पुनर्विचार करें
  2. ब्रोकर सर्वर के नज़दीक वाले रीजन के VPS पर शिफ्ट करें। सच कहें तो, लेटेंसी की वजह से आने वाले 10004/10021 को कोड से कम नहीं किया जा सकता, फिज़िकली नज़दीक जाना ही एकमात्र उपाय है। इसे चुनने का तरीका EA के लिए VPS चुनने की गाइड में बताया गया है
  3. स्कैल्पिंग EA पर लेटेंसी का असर ज़्यादा होता है। डेली या H4 टाइमफ्रेम के EA में इस कारण की प्राथमिकता कम है

MQL5 में इस एरर को कम करने वाला कोड (EA डेवलपर्स के लिए)

तीन सिद्धांत हैं: (1) deviation को यथार्थवादी सेट करें, (2) रिजेक्ट होने पर नवीनतम टिक लेकर फिर से भेजें, (3) सिर्फ प्राइस-संबंधी retcode के लिए रीट्राई करें।

deviation को points में सही सेट करें

MqlTradeRequest req; MqlTradeResult res;
ZeroMemory(req); ZeroMemory(res);
req.action    = TRADE_ACTION_DEAL;
req.symbol    = _Symbol;
req.type      = ORDER_TYPE_BUY;
req.volume    = lots;
req.deviation = 20;   // allowed slippage 20 points (5-digit पर 2.0 pips)
// req.price / req.sl / req.tp / req.magic आदि भी सेट करें

deviation की यूनिट points है। 5-डिजिट (3-डिजिट) प्राइस दिखाने वाले ब्रोकर पर 10 points = 1 pip। 0 या बहुत छोटी वैल्यू रिजेक्शन रेट को अनावश्यक रूप से बढ़ा देती है।

सिर्फ प्राइस-संबंधी retcode के लिए रीट्राई करें (नवीनतम टिक से फिर से भेजें)

अहम बात यह है कि हर रीट्राई में SymbolInfoTick() से प्राइस दोबारा लें (पुराने प्राइस से फिर भेजने पर वही रिजेक्शन दोबारा आएगा), और रीट्राई सिर्फ 10004/10021 तक सीमित रखें। फंड की कमी (10019) या अमान्य रिक्वेस्ट (10013) को मशीनी तरीके से दोबारा भेजने का कोई मतलब नहीं, इससे सिर्फ लॉग गंदा होता है।

bool IsRetryableRetcode(uint rc)
{
   return (rc == TRADE_RETCODE_REQUOTE       // 10004
        || rc == TRADE_RETCODE_PRICE_OFF);   // 10021
}

// नवीनतम टिक से प्राइस अपडेट करते हुए अधिकतम 3 बार तक फिर से भेजें
bool SendWithRetry(MqlTradeRequest &req, MqlTradeResult &res, int maxTries = 3)
{
   for(int attempt = 0; attempt < maxTries; attempt++)
   {
      MqlTick tick;
      if(!SymbolInfoTick(req.symbol, tick))
      {
         Print("SymbolInfoTick failed: ", GetLastError());
         return false;
      }
      req.price = (req.type == ORDER_TYPE_BUY) ? tick.ask : tick.bid;

      if(OrderSend(req, res) && res.retcode == TRADE_RETCODE_DONE)
         return true;                          // एक्ज़िक्यूशन सफल

      if(!IsRetryableRetcode(res.retcode))
      {
         PrintFormat("OrderSend failed (no retry): retcode=%d", res.retcode);
         return false;                         // प्राइस-संबंधी नहीं तो रीट्राई न करें
      }
      PrintFormat("Retry %d/%d after retcode=%d", attempt + 1, maxTries, res.retcode);
      Sleep(200 + 150 * attempt);              // 200ms→350ms→500ms धीरे-धीरे बढ़ाकर रुकें
   }
   Print("Order abandoned after retries (price kept moving).");
   return false;
}

Sleep() का समय धीरे-धीरे बढ़ाया गया है क्योंकि तेज़ मूवमेंट के समय 0ms पर बार-बार भेजने से भी वही रिजेक्शन मिलता रहेगा। दूसरी ओर, ज़्यादा रुकने से एंट्री प्राइस स्ट्रेटेजी की अनुमानित रेंज से दूर हो जाता है, इसलिए रीट्राई को 2-3 बार पर छोड़ देना ही सही है। पेंडिंग ऑर्डर (TRADE_ACTION_PENDING) के मामले में सफलता का retcode TRADE_RETCODE_PLACED (10008) होता है, इसका भी ध्यान रखें।

Requote (10004) के नए प्रस्तावित प्राइस का उपयोग करें

10004 आने पर MqlTradeResult के bid / ask में सर्वर का नया प्रस्तावित प्राइस आता है। ऊपर बताए तरीके से नवीनतम टिक से दोबारा भेजना व्यावहारिक रूप से पर्याप्त है, लेकिन instant execution में "अगर नया प्राइस स्वीकार्य रेंज में है तो उसे स्वीकार करें" वाला लॉजिक बनाना हो तो res.ask / res.bid और मूल अनुमानित प्राइस के अंतर को points में तुलना करके फिर भेजा जा सकता है।

शुरू से ही ऐसा समय बनाएं जहां ऑर्डर ही न दिया जाए

कोड में रीट्राई एक तात्कालिक उपाय है। Rollover के आगे-पीछे, न्यूज़ के आगे-पीछे, स्प्रेड बढ़ने पर नई एंट्री रोकने वाला फिल्टर कहीं ज़्यादा असरदार है।

// स्प्रेड फिल्टर का उदाहरण: स्प्रेड बढ़ा हो तो नई एंट्री टालें
long spreadPts = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);
if(spreadPts > MaxSpreadPoints)
{
   // नई एंट्री टालें (10021 आने वाले पतले समय को स्वचालित रूप से टाला जा सकता है)
   return;
}

FXEA365 पर उपलब्ध EA में स्प्रेड फिल्टर, न्यूज़ फिल्टर, और प्राइस-संबंधी retcode की ऑटोमैटिक रीट्राई स्टैंडर्ड रूप से शामिल हैं।


प्राथमिकता चेकलिस्ट

प्राथमिकताजांचउपाय
🚨 पहलेन्यूज़ रिलीज़ / तेज़ मूवमेंट के समय केंद्रित है क्यान्यूज़ फिल्टर ऑन करें, उस समय को सामान्य मानें
🚨 पहलेdeviation बहुत कम है क्या (यूनिट points है)10–30 points पर सेट करें, pips/points की गलतफहमी जांचें
⚠️ फिरrollover, सोमवार, कम-लिक्विडिटी सिंबल पर ज़्यादा है क्याटाइम फिल्टर + स्प्रेड फिल्टर
⚠️ फिरexecution mode instant है क्याmarket execution वाला अकाउंट भी विचार करें (slippage के ट्रेड-ऑफ के साथ)
⚠️ फिरping बड़ा है क्या (कुछ सौ ms)सर्वर के नज़दीक VPS पर शिफ्ट करें
🛠 डेवलपमेंटरीट्राई सिर्फ प्राइस-संबंधी retcode तक सीमित है क्याSymbolInfoTick से दोबारा लें + 2-3 बार पर रोकें

निष्कर्ष

  • 10021 (TRADE_RETCODE_PRICE_OFF) का मतलब है "प्रोसेस करने के लिए कोई कोट उपलब्ध नहीं", 10004 (TRADE_RETCODE_REQUOTE) का मतलब है "नए प्राइस का प्रस्ताव"। MT4 युग के 136/138 जैसी ही प्राइस-रिजेक्शन फैमिली है, फंड या लॉट साइज़ की समस्या नहीं।
  • कारण मुख्य रूप से तेज़ मार्केट मूवमेंट, deviation बहुत कम, instant execution, पतले कोट वाला समय/सिंबल, और कनेक्शन लेटेंसी — इन 5 में सिमट जाते हैं।
  • Requote instant execution की खासियत है, market execution में इसके बदले slippage के रूप में सामने आता है। "न आना = अच्छा" नहीं, यह एक ट्रेड-ऑफ है।
  • EA डेवलपर्स को नवीनतम टिक से दोबारा लेते हुए 2-3 बार रीट्राई (सिर्फ 10004/10021 के लिए) + deviation को सही सेट करना + टाइम/स्प्रेड फिल्टर से स्थायी समाधान करना चाहिए। सिर्फ लेटेंसी की वजह वाला हिस्सा फिज़िकल उपाय (ब्रोकर के नज़दीक VPS) से ही कम होता है।

एरर कोड्स की पूरी लिस्ट के लिए MQL5 / MT5 एरर कोड्स की संपूर्ण गाइड, और इन उपायों को स्टैंडर्ड रूप से लागू करने वाले फ्री EA के लिए EA लिस्ट देखें।


FAQ

Q: 10004 और 10021 में से कौन ज़्यादा गंभीर है?

दोनों ही अस्थायी प्राइस-संबंधी एरर हैं, गंभीरता में बड़ा अंतर नहीं है। 10004 का मतलब है "नया प्राइस प्रस्तावित किया गया", 10021 का मतलब है "प्रोसेस करने के लिए कोई कोट उपलब्ध नहीं था" — बस जवाब देने के तरीके का अंतर है। कभी-कभार आए तो नज़रअंदाज़ करें, किसी खास समय या सिंबल पर बार-बार आए तभी कारण (न्यूज़, rollover, deviation, कनेक्शन) दूर करें।

Q: जिस ब्रोकर में requote कभी नहीं आता, वह अच्छा है क्या?

यह ज़्यादातर execution mode के अंतर की वजह से होता है। market execution वाले अकाउंट में requote सैद्धांतिक रूप से आ ही नहीं सकता, प्राइस हिलने पर उसके बदले अलग प्राइस पर ही एक्ज़िक्यूशन (slippage) हो जाता है। रिजेक्ट होने या slippage होने के बीच ट्रेड-ऑफ है, इसलिए ट्रेड हिस्ट्री से असल slippage चेक करके फैसला लें।

Q: MT4 के EA में error 136 / 138 आता है, क्या उपाय वही है?

हां। 136 (ERR_OFF_QUOTES) 10021 के बराबर है, 138 (ERR_REQUOTE) 10004 के बराबर है, कारण और उपाय दोनों एक जैसे हैं। MQL4 में दोबारा भेजने से पहले RefreshRates() कॉल करके Bid / Ask को अपडेट करना स्टैंडर्ड तरीका था, यह MQL5 के SymbolInfoTick() से दोबारा लेने जैसा ही विचार है।

Q: बैकटेस्ट में नहीं आता, लेकिन लाइव में आता है।

यह सामान्य है। Strategy Tester में "ऑर्डर सर्वर तक पहुंचने में लगने वाली देरी" और "उस बीच होने वाला प्राइस मूवमेंट" मौजूद नहीं होता (या सरलीकृत होता है), इसलिए 10004/10021 सिर्फ फॉरवर्ड (लाइव) ट्रेडिंग में ही सामने आते हैं। बैकटेस्ट अच्छा हो तब भी लाइव में deviation सेटिंग, रीट्राई, और एग्ज़िक्यूशन एनवायरनमेंट (VPS) का इंतज़ाम अलग से करना पड़ता है।

📧 कीमत बढ़ने से पहले अलर्ट + मुफ्त 5-दिवसीय ईमेल कोर्स

सभी EA लॉन्च मूल्य पर हैं और बिक्री के साथ चरणों में बढ़ते हैं। हर बढ़ोतरी से पहले सूचना पाएं, साथ ही एल्गो ट्रेडिंग, बैकटेस्ट पढ़ने और ब्रोकर चुनने पर रोज़ एक ईमेल।

* गोपनीयता कड़ाई से संरक्षित। आप किसी भी समय सदस्यता समाप्त कर सकते हैं।

टिप्पणियाँ और प्रश्न