यह रणनीति कछुए के व्यापार की अवधारणा को निको बेकर के चरण विश्लेषण के साथ जोड़ती है, जो प्रवृत्ति के लिए प्रवृत्ति की दिशा निर्धारित करने के लिए विभिन्न चक्रों के तीन चलती औसत का उपयोग करती है। यह तब लंबा हो जाता है जब तेजी से चलती औसत मध्यम चलती औसत से पार हो जाती है और सभी तीन चलती औसत एक ही ऊपर या नीचे की प्रवृत्ति में होते हैं; यह तब छोटा हो जाता है जब तेजी से चलती औसत मध्यम चलती औसत से नीचे पार हो जाती है और सभी तीन चलती औसत एक ही ऊपर या नीचे की प्रवृत्ति में होते हैं।
विभिन्न चक्रों के तीन चलती औसत की गणना करें: तेज चलती औसत अवधि 8 दिन है, मध्यम चलती औसत अवधि 21 दिन है, और धीमी चलती औसत अवधि 55 दिन है।
प्रवेश की शर्तें निर्धारित करें: जब तेजी से चलती औसत मध्यम चलती औसत से ऊपर जाती है, और सभी तीन चलती औसत ऊपर की ओर रुझान में हैं, तो लंबी जाती है; जब तेजी से चलती औसत मध्यम चलती औसत से नीचे जाती है, और सभी तीन चलती औसत नीचे की ओर रुझान में हैं, तो छोटी जाती है।
बाहर निकलने की स्थितियों को निर्धारित करेंः जब तेजी से चलती औसत विपरीत दिशा में मध्यम चलती औसत को पार करती है तो स्थिति को बंद करें।
स्थिति आकारः फिक्स्ड स्थिति आकार का उपयोग करें, हर बार 1 अनुबंध खोलें। एटीआर का उपयोग स्थिति आकार को गतिशील रूप से समायोजित करने के लिए भी किया जा सकता है।
तीन चलती औसत का उपयोग करने से प्रवृत्ति की दिशा निर्धारित करने और झूठे ब्रेकआउट से बचने में मदद मिलती है।
लाभ की संभावना के लिए प्रवृत्ति का अनुसरण करना।
चलती औसत का उपयोग करने से स्थिर लाभ और अपेक्षाकृत छोटे ड्रॉडाउन होते हैं।
नियंत्रित स्टॉप लॉस रणनीति भारी नुकसान की संभावना को कम करती है।
कई छोटे नुकसान के लिए प्रवण, लाभ दक्षता को कम करना।
मूविंग एवरेज में देरी होती है और ट्रेंड रिवर्स पॉइंट्स को मिस कर सकते हैं।
फिक्स्ड पोजीशन साइजिंग जोखिमों को प्रभावी ढंग से नियंत्रित नहीं कर सकती है, बाजार में महत्वपूर्ण उतार-चढ़ाव के दौरान मार्जिन कॉल का कारण बन सकती है।
अनुचित पैरामीटर अनुकूलन से ओवर-ट्रेडिंग होती है, ट्रेडिंग लागत और फिसलने में वृद्धि होती है।
व्यापारिक साधन की विशेषताओं के अनुरूप चलती औसत अवधि का अनुकूलन करना।
गतिशील रूप से स्थिति आकार समायोजित करने के लिए एटीआर का उपयोग करें.
स्टॉप लॉस रणनीति जोड़ें.
रुझानों की विश्वसनीयता निर्धारित करने के लिए ट्रेडिंग वॉल्यूम संकेतक शामिल करें।
यह रणनीति पारंपरिक तकनीकी संकेतकों और कछुए के व्यापार के दर्शन को एकीकृत करती है, प्रवृत्तियों को ट्रैक करने के लिए तीन चलती औसत का उपयोग करती है। उचित पैरामीटर अनुकूलन के साथ, यह अच्छी लाभप्रदता प्राप्त कर सकती है। लेकिन इसमें कुछ जोखिम भी हैं। जोखिमों को नियंत्रित करने और इस मात्रात्मक व्यापार रणनीति से दीर्घकालिक स्थिर लाभ प्राप्त करने के लिए स्टॉप लॉस, स्थिति आकार और अन्य उपायों का उपयोग करने की आवश्यकता है।
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // LOVE JOY PEACE PATIENCE KINDNESS GOODNESS FAITHFULNESS GENTLENESS SELF-CONTROL // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © JoshuaMcGowan //@version=4 // 1. Define strategy settings strategy(title="Triple Moving Average", overlay=true, pyramiding=0, initial_capital=1000, commission_type=strategy.commission.cash_per_order, commission_value=4, slippage=2) fastMALen = input(title="Fast MA Length", type=input.integer, defval=8) medMALen = input(title="Medium MA Length", type=input.integer, defval=21) slowMALen = input(title="Slow MA Length", type=input.integer, defval=55) //endMonth = input(title="End Month Backtest", type=input.integer, defval=11) //endYear = input(title="End Year Backtest", type=input.integer, defval=2019) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2016, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true usePosSize = input(title="Use Position Sizing?", type=input.bool, defval=true) riskPerc = input(title="Risk %", type=input.float, defval=0.5, step=0.25) // 2. Calculate strategy values fastMA = sma(close, fastMALen) medMA = sma(close, medMALen) slowMA = sma(close, slowMALen) //Position Sizing riskEquity = (riskPerc / 100) * strategy.equity atrCurrency = (atr(20) * syminfo.pointvalue) posSize = usePosSize ? floor(riskEquity / atrCurrency) : 1 //Backtest Window //tradeWindow = (time <= timestamp(endYear, endMonth, 1, 0, 0)) // 3. Determine long trading conditions enterLong = crossover(fastMA, medMA) and (fastMA > slowMA) and (medMA > slowMA) and window() exitLong = crossunder(fastMA, medMA) // 4. Code short trading conditions enterShort = crossunder(fastMA, medMA) and (fastMA < slowMA) and (medMA < slowMA) and window() exitShort = crossover(fastMA, medMA) // 5. Output strategy data plot(series=fastMA, color=color.green, title="Fast MA") plot(series=medMA, color=color.purple, title="Medium MA") plot(series=slowMA, color=color.red, title="Slow MA", linewidth=2) bgColour = enterLong and (strategy.position_size < 1) ? color.green : enterShort and (strategy.position_size > -1) ? color.red : exitLong and (strategy.position_size > 0) ? color.lime : exitShort and (strategy.position_size < 0) ? color.orange : na bgcolor(color=bgColour, transp=85) // 6. Submit entry orders if (enterLong) strategy.entry(id="EL", long=true, qty=1) if (enterShort) strategy.entry(id="ES", long=false, qty=1) // 7. Submit exit orders strategy.close_all(when=exitLong and (strategy.position_size > 0)) strategy.close_all(when=exitShort and (strategy.position_size < 0)) strategy.close_all(when=not window()) //END