इस रणनीति को SoftKill21 की Amazing scalper for majors with risk management रणनीति पर आधारित संशोधित किया गया है, जो ट्रिपल इंडेक्स मूविंग एवरेज का उपयोग करके मूल सरल मूविंग एवरेज को बदलने के लिए है, ताकि देरी को कम किया जा सके। यह रणनीति प्रमुख मुद्रा जोड़े के 1-मिनट के चक्र के लिए लागू होती है, ट्रेंड ट्रैकिंग विधि का उपयोग करके, तेजी से ईएमए, मानक ईएमए और धीमी ईएमए के गोल्ड क्रॉस और डेड क्रॉस के आधार पर खरीदारी और बिक्री के लिए। साथ ही लंदन और न्यूयॉर्क ट्रेडिंग समय और जोखिम प्रबंधन सिद्धांतों के संयोजन के साथ, स्थिति का आकार निर्धारित किया जाता है।
इस रणनीति में तीन अलग-अलग चक्रों की सूचकांक चलती औसत का उपयोग किया जाता हैः 25 चक्र तेजी से ईएमए, 50 चक्र मानक ईएमए और 100 चक्र धीमी ईएमए। जब तेजी से ईएमए ऊपर मानक ईएमए और धीमी ईएमए से गुजरता है, तो एक खरीद संकेत उत्पन्न होता है; जब तेजी से ईएमए नीचे मानक ईएमए और धीमी ईएमए से गुजरता है, तो एक बेचने का संकेत उत्पन्न होता है। विलंबता को कम करने के लिए, दोहरी सूचकांक चिकनाई तकनीक का उपयोग करके ईएमए की गणना की जाती है। रणनीति लंदन और न्यूयॉर्क समय के समय के आधार पर बाजार के खुलने के समय के आधार पर भी प्रवेश की शर्तों को पूरा करती है या नहीं। इसके अलावा, रणनीति जोखिम को नियंत्रित करने के लिए प्रत्येक आदेश के लिए स्थिति आकार को निर्धारित करने के लिए खाता लाभ का एक निश्चित प्रतिशत का उपयोग करती है।
विशेष रूप से, रणनीति पहले तीन ईएमए लाइनों की गणना करती है और फिर यह निर्धारित करती है कि क्या तेज ईएमए मानक ईएमए और धीमी ईएमए के साथ गोल्ड क्रॉस या डेड फोर्क बनाता है, और यदि एक साथ लंदन या न्यूयॉर्क के समय के उद्घाटन समय से मेल खाने वाली शर्तों को पूरा किया जाता है, तो एक खरीद या बेचने का संकेत मिलता है। स्थिति का आकार निर्धारित करने के लिए, रणनीति पहले खाते के हितों के एक निश्चित प्रतिशत की गणना करती है, जो जोखिम के लिए एक प्रवेश द्वार के रूप में कार्य करती है, और फिर इसे अनुबंधों की संख्या और मानक घंटों में परिवर्तित करती है, जिससे प्रत्येक आदेश की स्थिति को गतिशील रूप से समायोजित किया जा सकता है।
इस रणनीति के निम्नलिखित फायदे हैं:
ट्रिपल ईएमए का उपयोग करें, प्रभावी रूप से मूल्य डेटा को चिकना करने और प्रवृत्ति की दिशा की पहचान करने में सक्षम हों। तेजी से ईएमए मूल्य परिवर्तन के प्रति संवेदनशील है, मानक ईएमए स्थिरता ट्रैक, धीमी गति से ईएमए फ़िल्टर शोर। तीनों का उपयोग एक साथ किया जाता है, झूठी दरारों को फ़िल्टर करने और प्रवृत्ति की दिशा निर्धारित करने में सक्षम हों।
EMA की गणना करने के लिए माध्यमिक सूचकांक चिकनाई तकनीक का उपयोग करें, विलंबता को कम करें, और संकेत को अधिक संवेदनशील बनाएं।
गैर-प्रमुख व्यापारिक घंटों में भ्रामक संकेतों से बचने के लिए प्रमुख व्यापारिक घंटों के साथ संयोजन।
जोखिम प्रबंधन के सिद्धांतों को अपनाएं और खाते के हितों के अनुसार स्थिति को समायोजित करें। एकल नुकसान से बचें जो खाते के लिए बहुत बड़ा झटका है।
रणनीति तर्क सरल और स्पष्ट है, इसे लागू करना आसान है, और यह शुरुआती लोगों के लिए उपयुक्त है।
विभिन्न मुद्रा जोड़े, समय चक्र के लिए अनुकूलित समायोजन, व्यापक रूप से लागू।
इस रणनीति में कुछ संभावित जोखिम भी हैं:
ईएमए के पास कोई प्रभावशाली फ़िल्टर नहीं है, जो कि अचानक घटनाओं के कारण होने वाले अल्पकालिक झूठे ब्रेकआउट के कारण गलत संकेत दे सकता है। अन्य संकेतकों के साथ संयोजन में फ़िल्टर विश्लेषण की सिफारिश की जाती है।
स्थिर प्रतिशत स्थिति बाजार में उतार-चढ़ाव के लिए गतिशील समायोजन करने में असमर्थ है, स्थिति बहुत बड़ी या बहुत छोटी है। उतार-चढ़ाव दर जैसे संकेतक गतिशील समायोजन स्थिति को पेश करने पर विचार किया जा सकता है।
केवल दो मुख्य व्यापारिक समय को ध्यान में रखते हुए, अन्य समय के व्यापारिक अवसरों को याद किया जा सकता है। विभिन्न समय के प्रभाव का परीक्षण किया जा सकता है।
एकतरफा नुकसान को प्रभावी ढंग से नियंत्रित करने के लिए कोई स्टॉप-लॉस तंत्र नहीं है। आप या तो मोबाइल स्टॉप-लॉस या टाइम-स्टॉप-लॉस सेट कर सकते हैं।
ईएमए क्रॉसिंग में कुछ पिछड़ापन है, और यह सबसे अच्छा प्रवेश समय को याद कर सकता है। ईएमए चक्र को कम करने या अन्य पूर्ववर्ती संकेतकों के साथ संयोजन पर विचार किया जा सकता है।
प्रभाव लेनदेन लागत से प्रभावित हो सकता है। उचित रोक और रोक की स्थिति को समायोजित करने की सिफारिश की जाती है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
विभिन्न ईएमए चक्र मापदंडों का परीक्षण करें, सबसे इष्टतम मापदंडों के संयोजन की तलाश करें। ईएमए चक्रों को अनुकूलित करने के लिए गतिशील रूप से अनुकूलित ईएमए जैसी तकनीकों को पेश किया जा सकता है।
अन्य फ़िल्टरिंग संकेतकों जैसे आरएसआई, ब्रिन बैंड आदि को जोड़ने से सिग्नल की गुणवत्ता में सुधार होता है।
गतिशील पोजीशन मैनेजमेंट तंत्र की शुरूआत, बाजार की अस्थिरता और लाभप्रदता के आधार पर पोजीशन को समायोजित करना।
नुकसान को सीमित करने के लिए गतिशील रोक, समय रोक जोड़ें।
विभिन्न ट्रेडिंग समयों का परीक्षण करें और सर्वोत्तम ट्रेडिंग समयों का पता लगाएं।
स्टॉप और स्टॉप लॉस के स्तर को अनुकूलित करें, लाभ के आकार और जीत की दर को संतुलित करें। पैरालॉग लाइन स्टॉप जैसे स्मार्ट स्टॉप को पेश करें।
ईएमए की गणना करने के तरीके में सुधार करने का प्रयास करें, जैसे कि रैखिक भारित ईएमए, ताकि अंतराल कम हो सके।
स्वचालित मशीन लर्निंग विधियों के साथ इष्टतम पैरामीटर ढूंढें।
लेनदेन की लागत का मॉडलिंग करें और सिस्टम को शुद्ध लाभ को अधिकतम करने के लिए समायोजित करें
उपरोक्त अनुकूलन के माध्यम से, सिस्टम की लाभप्रदता को बढ़ाया जा सकता है, पीछे हटने को नियंत्रित किया जा सकता है, और एक अधिक शक्तिशाली और स्थिर व्यापारिक रणनीति के लिए आवेदन की सीमा का विस्तार किया जा सकता है।
इस रणनीति के समग्र विचार स्पष्ट है, तीन ईएमए पहचान प्रवृत्ति का उपयोग करें, प्रमुख व्यापार के समय के लिए संचालित करने के लिए, और खाते के अनुपात का उपयोग करें स्थिति निर्धारित करने के लिए, एक विशिष्ट प्रवृत्ति ट्रैकिंग प्रकार की रणनीति के अंतर्गत आते हैं. रणनीति अनुकूलन के लिए जगह बड़ी है, पैरामीटर अनुकूलन, तंत्र में सुधार, प्रौद्योगिकी की शुरूआत आदि के माध्यम से इस रणनीति में और अधिक बाजारों में आवेदन को विस्तारित करने के लिए, रणनीति की स्थिरता में सुधार कर सकते हैं. एक नौसिखिया सीखने की कुंडली के रूप में, इस रणनीति के लिए एक अच्छी शुरुआत है. सीखने और सुधार के माध्यम से, मात्रात्मक व्यापार प्रणाली की समझ में सुधार किया जा सकता है। यदि उचित रूप से संभाला जाता है, तो यह रणनीति एक परिपक्व और विश्वसनीय मात्रात्मक रणनीति में बदल सकती है।
/*backtest
start: 2023-09-19 00:00:00
end: 2023-09-26 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// original author SoftKill21
//@version=4
//@capam
strategy(title="Triple EMA Scalper low lag strat", shorttitle="3EMA scalper", overlay=true)
strategy.initial_capital = 50000
len1 = input(25, minval=1, title="Length")
len2 = input(50, minval=1, title="Length")
len3 = input(100, minval=1, title="Length")
src = input(close, title="Source")
tmp1 = ema(src, len1)
tmp2 = ema(src, len2)
tmp3 = ema(src, len3)
fastemaOut = 2*tmp1 - ema(tmp1, len1)
standardemaOut = 2*tmp2 - ema(tmp2, len2)
slowemaOut = 2*tmp3 - ema(tmp3, len3)
//fastemaOut = sma(src, len1)
//standardemaOut = sma(src, len2)
//slowemaOut = sma(src, len3)
plot(fastemaOut, color=color.black, title="First EMA")
plot(standardemaOut, color=color.yellow, title="Second EMA")
plot(slowemaOut, color=color.blue, title="Third EMA")
timeinrange(res, sess) => time(res, sess) != 0
londopen = timeinrange(timeframe.period, "0300-1100")
nyopen = timeinrange(timeframe.period, "0800-1600")
longCondition = crossover(fastemaOut,standardemaOut) and crossover(fastemaOut,slowemaOut) and londopen //or nyopen)
shortCondition = crossunder(fastemaOut,standardemaOut) and crossunder(fastemaOut,slowemaOut) and londopen// or nyopen)
longCondition2 = crossover(fastemaOut,standardemaOut) and crossover(fastemaOut,slowemaOut) and nyopen
shortCondition2 = crossunder(fastemaOut,standardemaOut) and crossunder(fastemaOut,slowemaOut) and nyopen
tp = input(50,title="TP")
sl = input(100, title="SL")
tradeLondon = input(title="Trade london session?", type=input.bool, defval=true)
tradeNewyork = input(title="Trade new york session?", type=input.bool, defval=true)
//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit //floating profit/loss
risk = input(1,type=input.float,title="Risk % of equity ")/100 //risk % per trade
temp01 = balance * risk //Risk in USD
temp02 = temp01/sl //Risk in lots
temp03 = temp02*100000 //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 1000)
size := 1000
if(tradeLondon==true)
strategy.entry("long",1,when=longCondition)
strategy.exit("tp/sl","long",profit=tp,loss=sl)
strategy.entry("short",0,when=shortCondition)
strategy.exit("tp/sl","short",profit=tp,loss=sl)
if(tradeNewyork==true)
strategy.entry("long",1,when=longCondition2)
strategy.exit("tp/sl","long",profit=tp,loss=sl)
strategy.entry("short",0,when=shortCondition2)
strategy.exit("tp/sl","short",profit=tp,loss=sl)
// strategy.risk.max_intraday_filled_orders(2)