सोचिए, दो ट्रेडर के पास मूविंग एवरेज क्रॉसओवर की एक ही स्ट्रैटेजी है। एक सिर्फ़ M5 देखकर ट्रेड करता है और हर तरफ़ ट्रेड ले लेता है। दूसरा M5 के सिर्फ़ वही सिग्नल लेता है जो H1 के ट्रेंड के पक्ष में हों। दूसरा कम ट्रेड करेगा — और बेहतर करेगा। मल्टी-टाइमफ्रेम का सार यही है: बड़े चार्ट को कम्पास और छोटे को ट्रिगर की तरह इस्तेमाल करना। खराब ट्रेड छाँटने के सबसे कारगर तरीक़ों में से एक।
01सिंगल टाइमफ्रेम की गलती
जो सिर्फ़ एक चार्ट देखकर ट्रेड करता है वह एक जाल में फँसता है: M5 का कोई बाय सिग्नल शॉर्ट टर्म में एकदम सही बैठ सकता है, पर वह H1 की गिरावट के ट्रेंड के अंदर एक मामूली पुलबैक भर हो सकता है। आप खरीदते हैं, पुलबैक खत्म होता है, और बड़ा ट्रेंड आपको निगल जाता है। सिंगल टाइमफ्रेम आपको कॉन्टेक्स्ट के लिए अंधा कर देता है।
ज्वार-भाटा वाली उपमा: बड़े टाइमफ्रेम को ज्वार समझिए और छोटे को लहरें। आपको एक लहर ऊपर उठती दिख सकती है (M5 पर बाय सिग्नल), लेकिन अगर ज्वार उतर रहा है (H1 पर डाउनट्रेंड), तो लहर पर दाँव लगाना जोखिम भरा है। मल्टी-टाइमफ्रेम आपसे ज्वार के साथ तैराता है।
02कॉन्सेप्ट: ट्रेंड बड़े पर, एंट्री छोटे पर
ढांचा हमेशा एक जैसा होता है — दो (कभी-कभी तीन) टाइमफ्रेम, हर एक का अलग रोल:
बड़ा टाइमफ्रेम → दिशा
तय करता है कि आप सिर्फ़ खरीद देखेंगे या सिर्फ़ बिक्री। उदा.: H1।
"H1 पर प्राइस 200 की मूविंग एवरेज के ऊपर है? तो सिर्फ़ खरीदारी देखूँगा।"
छोटा टाइमफ्रेम → ट्रिगर
पहले से तय दिशा में एंट्री का ठीक-ठीक मौका देता है। उदा.: M15।
"M15 पर पुलबैक और तेजी का क्रॉसओवर हुआ? मैं खरीद में एंटर करता हूँ।"
03कौन से टाइमफ्रेम जोड़ें
व्यावहारिक नियम है इनके बीच लगभग 4 से 6 गुना का अनुपात — इतना बड़ा कि अलग कॉन्टेक्स्ट मिले, इतना पास कि मतलब बने। आम कॉम्बिनेशन:
- डे ट्रेड: M15 (ट्रेंड) + M3 या M5 (एंट्री)
- थोड़ा चौड़ा इंट्राडे: H1 (ट्रेंड) + M15 (एंट्री)
- स्विंग: डेली (ट्रेंड) + H4 (एंट्री)
कुछ ट्रेडर तीन इस्तेमाल करते हैं: एक सबसे ऊपर (मैक्रो दिशा), एक बीच का (ऑपरेशनल ट्रेंड) और एक नीचे का (ट्रिगर)। तीन से ज़्यादा होने पर फैसला अटक जाता है — जानकारी ज़्यादा, निर्णय कम।
04कन्फ्लुएंस को कोड करना
बॉट को दो टाइमफ्रेम खींचकर जानकारी मिलानी होती है। दोनों प्लेटफ़ॉर्म पर देखिए:
//@version=5 strategy("Multi-Timeframe", overlay=true) // बड़े timeframe का ट्रेंड (जैसे 60 मिनट) tf_maior = input.timeframe("60", "Timeframe da tendência") ma200_maior = request.security(syminfo.tickerid, tf_maior, ta.sma(close, 200)) fechamento_maior = request.security(syminfo.tickerid, tf_maior, close) tendencia_alta = fechamento_maior > ma200_maior // मौजूदा timeframe पर ट्रिगर (चार्ट वाला, छोटा) ma_rapida = ta.ema(close, 9) ma_lenta = ta.ema(close, 21) gatilho_compra = ta.crossover(ma_rapida, ma_lenta) // कन्फ्लुएंस: तभी खरीदें जब ट्रिगर और बड़ा ट्रेंड दोनों साथ हों if gatilho_compra and tendencia_alta strategy.entry("Compra", strategy.long)
# multi_timeframe.py def direcao_tendencia(df_maior): # बड़े चार्ट का ट्रेंड: प्राइस vs 200 की मूविंग एवरेज ma200 = df_maior["close"].rolling(200).mean().iloc[-1] return "ALTA" if df_maior["close"].iloc[-1] > ma200 else "BAIXA" def gatilho_entrada(df_menor): # छोटे चार्ट पर ट्रिगर: EMAs का crossover r = df_menor["close"].ewm(span=9).mean() l = df_menor["close"].ewm(span=21).mean() cruzou_cima = r.iloc[-2] < l.iloc[-2] and r.iloc[-1] > l.iloc[-1] return "COMPRA" if cruzou_cima else "AGUARDA" # कन्फ्लुएंस df_h1 = puxar_candles("WIN$N", timeframe_H1) df_m15 = puxar_candles("WIN$N", timeframe_M15) if direcao_tendencia(df_h1) == "ALTA" and gatilho_entrada(df_m15) == "COMPRA": print("Confluência confirmada — comprar")
Pine में मुख्य फंक्शन है request.security — यह उसी स्क्रिप्ट के अंदर दूसरे टाइमफ्रेम का डेटा ले आता है। Python में आप बस अलग-अलग पीरियड के दो DataFrame खींच लेते हैं ( MT5 की API या Binance से) और जानकारी मिला देते हैं।
सही इंडिकेटर के साथ मिलाइए
200 की मूविंग एवरेज बड़ा ट्रेंड तय करती है; EMA का क्रॉसओवर ट्रिगर देता है। मूविंग एवरेज की गाइड देखिए।
05ऑटोमेशन में सावधानियाँ
- Repaint: Pine में एक बात का ध्यान रखिए —
request.securityको बड़े टाइमफ्रेम के अधबने कैंडल पर इस्तेमाल मत कीजिए। यह "repaint" कर सकता है और बैकटेस्ट में धोखा दे सकता है। बंद हो चुके कैंडल की वैल्यू लीजिए ([1]) — तभी डेटा भरोसेमंद रहेगा। - कम ट्रेड होना ही मकसद है: मल्टी-टाइमफ्रेम आपके ट्रेड की संख्या काफ़ी घटा देगा। यह फ़ीचरहै, बग नहीं — आप खराब ट्रेड छाँट रहे हैं। सिर्फ़ ज़्यादा ट्रेड करने के लिए फ़िल्टर "ढीला" मत कीजिए।
- सिंक्रोनाइज़ेशन: पक्का कीजिए कि दोनों टाइमफ्रेम एक ही एसेट के हैं और एक ही समय तक अपडेटेड हैं। इनके बीच पुराना डेटा झूठे सिग्नल पैदा करता है।
06यह काम क्यों करता है
मल्टी-टाइमफ्रेम इसलिए काम करता है क्योंकि यह ज़्यादातर स्ट्रैटेजी के सबसे बड़े दुश्मन पर वार करता है: बड़े ट्रेंड के खिलाफ़ ट्रेड करना। आँकड़ों के लिहाज़ से, बड़े ट्रेंड के पक्ष में लिए गए ट्रेड की अपेक्षा बेहतर होती है। "ज्वार" के खिलाफ़ जाने वाली हर चीज़ छाँटकर आप घाटे वाले ट्रेड का बड़ा हिस्सा काट देते हैं — वही एंट्री स्ट्रैटेजी रखते हुए भी। यह उन गिने-चुने बदलावों में से है जो नतीजा सुधारते हैं बिना नाज़ुक जटिलता जोड़े।
बड़ा सिद्धांत: यह उस हर बात से जुड़ता है जो हम कहते आए हैं — मैनेजमेंट और कॉन्टेक्स्ट खुद स्ट्रैटेजी से ज़्यादा मायने रखते हैं। मल्टी-टाइमफ्रेम असल में कॉन्टेक्स्ट का फ़िल्टर ही है। और कॉन्टेक्स्ट का फ़िल्टर ही टिकने वाले बॉट को उस बॉट से अलग करता है जो लगातार पैसा गँवाता रहता है।
07अक्सर पूछे जाने वाले सवाल
मल्टी-टाइमफ्रेम एनालिसिस क्या है?
यह एक ही एसेट को कई पीरियड पर देखना है: बड़ा पीरियड ट्रेंड की दिशा तय करने के लिए और छोटा एंट्री की टाइमिंग के लिए। बड़े ट्रेंड के पक्ष में ट्रेड करने से बहुत सारे खराब ट्रेड छँट जाते हैं।
कौन से टाइमफ्रेम जोड़ें?
आम नियम: 4 से 6 गुना का अनुपात। उदा.: H1 (ट्रेंड) + M15 (एंट्री), या स्विंग के लिए डेली + H4। बड़ा कॉन्टेक्स्ट देता है, छोटा ट्रिगर। तीन टाइमफ्रेम तक चल जाता है; उससे ज़्यादा होने पर फैसला अटक जाता है।
मल्टी-टाइमफ्रेम को ऑटोमेट कैसे करें?
बॉट दो पीरियड खींचता है: बड़े पर ट्रेंड निकालता है (जैसे प्राइस 200 की मूविंग एवरेज के ऊपर) और छोटे पर सिर्फ़ उसी दिशा की एंट्री ढूँढ़ता है। Pine में request.security इस्तेमाल कीजिए; Python में दो DataFrame खींचकर मिलाइए।
मल्टी-टाइमफ्रेम मेरे ट्रेड घटा देता है, क्या यह बुरा है?
नहीं, यही तो मकसद है। आप ट्रेंड के खिलाफ़ वाले ट्रेड (आम तौर पर सबसे खराब) छाँट रहे हैं। कम ट्रेड, बेहतर क्वालिटी। सिर्फ़ ज़्यादा ट्रेड करने के लिए फ़िल्टर ढीला मत कीजिए — इससे पूरा फ़ायदा खत्म हो जाता है।
Repaint क्या है और इससे कैसे बचें?
Repaint तब होता है जब बड़े टाइमफ्रेम की कोई वैल्यू कैंडल बनते-बनते बदल जाती है और बैकटेस्ट को धोखा देती है। बड़े टाइमफ्रेम का डेटा खींचते वक्त बंद हो चुके कैंडल की वैल्यू (Pine में इंडेक्स [1]) इस्तेमाल करके इससे बचिए।