मोमेंटम टर्टल ट्रेंड ट्रैकिंग रणनीति टर्टल ट्रेडिंग नियमों के आधार पर एक प्रवृत्ति के बाद की रणनीति है। यह रुझानों की पहचान करने के लिए टर्टल इंडिकेटर का उपयोग करता है और कुछ शोर ट्रेडों को फ़िल्टर करने के लिए गति मेट्रिक्स को जोड़ता है। इस रणनीति का मुख्य लाभ मजबूत मूल्य रुझानों को पकड़ने और अतिरिक्त रिटर्न प्राप्त करने की क्षमता है।
यह रणनीति ट्रेंड की दिशा निर्धारित करने के लिए कछुए संकेतकों में ब्रेकआउट प्रणाली का उपयोग करती है। विशेष रूप से, जब समापन मूल्य पिछले 20 दिनों में उच्चतम मूल्य से अधिक होता है, तो यह एक तेजी का संकेत होता है और लंबे समय तक जाता है; जब समापन मूल्य पिछले 20 दिनों में सबसे कम मूल्य से कम होता है, तो यह एक मंदी का संकेत होता है और रणनीति छोटी हो जाती है।
कुछ शोर ट्रेडों को फ़िल्टर करने के लिए, इस रणनीति में एक गति कारक भी शामिल है। यदि कीमत में उतार-चढ़ाव 5 एटीआर से कम है, तो रणनीति ट्रेडों में प्रवेश नहीं करेगी। इससे साइडवेज बाजारों में व्हिपसा से नुकसान से बचा जाता है।
स्टॉप लॉस के लिए स्टार्ट-अप रणनीति में स्टॉप लॉस के लिए मूल कछुए के नियमों में एन-ब्रेकआउट एग्जिट्स का उपयोग किया जाता है। यह प्रणाली पिछले 20 दिनों में उच्चतम और निम्नतम कीमतों के आधार पर स्टॉप लॉस सेट करती है। उदाहरण के लिए, लंबी स्थिति के लिए स्टॉप लॉस पिछले 20 दिनों में सबसे कम कम से 2N एटीआर होगा। इस रणनीति के लिए लाभ लेने के लिए सरल है - कुल खाता मूल्य का 10% निर्धारित किया गया है।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह ट्रेंड फॉलोइंग और इम्पैक्ट मैनेजमेंट दोनों को जोड़ती है। कछुआ प्रणाली बाजार शोर से परेशान किए बिना कीमतों में मध्यम अवधि के रुझानों को सटीक रूप से कैप्चर कर सकती है। अतिरिक्त एटीआर इम्पैक्ट फिल्टर अनावश्यक संख्या में ट्रेडों को और कम करता है, इस प्रकार लाभ क्षमता में काफी वृद्धि होती है।
विशेष रूप से, इस रणनीति में निम्नलिखित ताकतें हैंः
यद्यपि आगे के अनुकूलन के लिए बड़ी संभावनाएं हैं, रणनीति में कुछ जोखिम भी हैं जिनसे बचने के लिएः
उपरोक्त जोखिमों के आधार पर, अनुकूलन के मुख्य अवसरों में शामिल हैंः
कुल मिलाकर, मोमेंटम कछुए ट्रेंड ट्रैकिंग रणनीति मध्यम से दीर्घकालिक प्रवृत्ति के लिए एक मजबूत प्रणाली है। यह मजबूत रुझानों को पकड़ने के लिए प्रवृत्ति पहचान के लिए कछुए संकेतकों और अस्थिरता प्रबंधन के लिए एटीआर फिल्टर को जोड़ती है। इसके अलावा जोखिम नियंत्रण और पैरामीटर ट्यूनिंग ड्रॉडाउन को कम करने के लिए ठोस हैं। गतिशील आकार, उलट और लाभ लेने जैसे आगे के सुधार प्रदर्शन में सुधार कर सकते हैं।
/*backtest start: 2023-10-23 00:00:00 end: 2023-11-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Heiken Ashi BF 🚀", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075) /////////////// Time Frame /////////////// testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0) testStopYear = input(2029, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0) testPeriod() => true ///////////// HA ///////////// haTicker = heikinashi(syminfo.tickerid) haOpen = security(haTicker, "D", open) haHigh = security(haTicker, "D", high) haLow = security(haTicker, "D", low) haClose = security(haTicker, "D", close) ///////////// Rate Of Change ///////////// source = close roclength = input(30, minval=1) pcntChange = input(7.0, minval=1) roc = 100 * (source - source[roclength]) / source[roclength] emaroc = ema(roc, roclength / 2) isMoving() => emaroc > (pcntChange / 2) or emaroc < (0 - (pcntChange / 2)) /////////////// Strategy /////////////// long = haOpen < haClose and isMoving() short = haOpen > haClose and isMoving() last_long = 0.0 last_short = 0.0 last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) last_open_long_signal = 0.0 last_open_short_signal = 0.0 last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1]) last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1]) last_long_signal = 0.0 last_short_signal = 0.0 last_long_signal := long_signal ? time : nz(last_long_signal[1]) last_short_signal := short_signal ? time : nz(last_short_signal[1]) in_long_signal = last_long_signal > last_short_signal in_short_signal = last_short_signal > last_long_signal last_high = 0.0 last_low = 0.0 last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1]) last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1]) sl_inp = input(2.0, title='Stop Loss %') / 100 tp_inp = input(5000.0, title='Take Profit %') / 100 take_level_l = strategy.position_avg_price * (1 + tp_inp) take_level_s = strategy.position_avg_price * (1 - tp_inp) since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1]) since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1]) slLong = in_long_signal ? strategy.position_avg_price * (1 - sl_inp) : na slShort = strategy.position_avg_price * (1 + sl_inp) long_sl = in_long_signal ? slLong : na short_sl = in_short_signal ? slShort : na /////////////// Execution /////////////// if testPeriod() strategy.entry("L", strategy.long, when=long) strategy.entry("S", strategy.short, when=short) strategy.exit("L SL", "L", stop=long_sl, limit=take_level_l, when=since_longEntry > 0) strategy.exit("S SL", "S", stop=short_sl, limit=take_level_s, when=since_shortEntry > 0) /////////////// Plotting /////////////// plotcandle(haOpen, haHigh, haLow, haClose, title='HA Candles', color = haOpen < haClose ? color.lime : color.red) bgcolor(isMoving() ? long ? color.lime : short ? color.red : na : color.white, transp=70) bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=50)