यह रणनीति स्वचालित लंबी और छोटी स्थिति प्राप्त करने के लिए डबल ALMA मूविंग एवरेज लाइनों के गोल्डन क्रॉस और डेड क्रॉस सिग्नल पर आधारित है, जो MACD संकेतक के लंबे और छोटे संकेतों के साथ संयुक्त है। यह रणनीति 4 घंटे या उससे अधिक के समय के फ्रेम के लिए उपयुक्त है, और परीक्षण डेटा BNB/USDT है जो 2017 से वर्तमान तक है, जिसमें कमीशन दर 0.03% पर सेट है।
यह रणनीति ALMA से निर्मित तेज और धीमी रेखाओं का उपयोग दोहरी चलती औसत बनाने के लिए करती है। तेज रेखा की लंबाई 20 है और धीमी रेखा 40 है, दोनों 0.9 के ऑफसेट और 5 के मानक विचलन को अपनाते हैं। जब तेज रेखा धीमी रेखा को पार करती है, तो एक लंबा संकेत उत्पन्न होता है। जब तेज रेखा धीमी रेखा से नीचे पार करती है, तो एक छोटा संकेत उत्पन्न होता है।
साथ ही, रणनीति में एमएसीडी सूचक का हिस्टोग्राम संकेत शामिल है। केवल जब एमएसीडी हिस्टोग्राम सकारात्मक (बढ़ रहा है) होता है, तो लंबा संकेत मान्य होता है; केवल जब एमएसीडी हिस्टोग्राम नकारात्मक (घट रहा है) होता है, तो छोटा संकेत मान्य होता है।
यह रणनीति लाभ लेने और स्टॉप लॉस की शर्तें भी निर्धारित करती है। लॉन्ग टेक प्रॉफिट 2 गुना और स्टॉप लॉस 0.2 गुना है; शॉर्ट टेक प्रॉफिट 0.05 गुना और स्टॉप लॉस 1 गुना है।
यह रणनीति डबल मूविंग एवरेज के ट्रेंड जजमेंट और एमएसीडी इंडिकेटर के एनर्जी जजमेंट को जोड़ती है, जो गलत सिग्नल को प्रभावी ढंग से फ़िल्टर कर सकती है और एंट्री की सटीकता में सुधार कर सकती है।
बैकटेस्ट डेटा 2017 से अपनाया गया है, जिसमें कई बैल और भालू रूपांतरण चक्र शामिल हैं। यह रणनीति अभी भी अवधि भर में अच्छा प्रदर्शन करती है। यह साबित करती है कि रणनीति बाजार की रैखिकता और गैर-रैखिकता दोनों विशेषताओं के अनुकूल है।
इस रणनीति में निम्नलिखित जोखिम हैं:
समाधान:
इस रणनीति को निम्नलिखित पहलुओं में भी अनुकूलित किया जा सकता हैः
यह रणनीति सफलतापूर्वक चलती औसत के प्रवृत्ति निर्णय और एमएसीडी के सहायक निर्णय को जोड़ती है, और उचित लाभ और स्टॉप लॉस निर्धारित करती है, जो विभिन्न बाजार स्थितियों में स्थिर रिटर्न प्राप्त कर सकती है। पैरामीटर सेटिंग्स के निरंतर अनुकूलन, अतिरिक्त फ़िल्टरिंग स्थितियों आदि को जोड़कर रणनीति की स्थिरता और लाभप्रदता को और बढ़ाया जा सकता है।
/*backtest start: 2023-11-04 00:00:00 end: 2023-12-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy(title = "Full Crypto Swing Strategy ALMA Cross", overlay = true, pyramiding=1,initial_capital = 1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03) //time condition fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2010, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2031, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = time >= startDate and time <= finishDate UseHAcandles = input(false, title="Use Heikin Ashi Candles in Algo Calculations") haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low //alma fast and slow src = haClose windowsize = input(title="Length Size Fast", type=input.integer, defval=20) windowsize2 = input(title="Length Size Slow", type=input.integer, defval=40) offset = input(title="Offset", type=input.float, defval=0.9, step=0.05) sigma = input(title="Sigma", type=input.float, defval=5) outfast=alma(src, windowsize, offset, sigma) outslow=alma(src, windowsize2, offset, sigma) //macd fast_length = input(title="Fast Length", type=input.integer, defval=6) slow_length = input(title="Slow Length", type=input.integer, defval=25) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) // Calculating fast_ma = ema(src, fast_length) slow_ma = ema(src, slow_length) macd = fast_ma - slow_ma signal = ema(macd, signal_length) hist = macd - signal long=crossover(outfast,outslow) and hist > hist[1] and time_cond short=crossunder(outfast,outslow) and hist < hist[1] and time_cond takeProfit_long=input(2.0, step=0.005) stopLoss_long=input(0.2, step=0.005) takeProfit_short=input(0.05, step=0.005) stopLoss_short=input(1.0, step=0.005) strategy.entry("long",1,when=long) strategy.entry("short",0,when=short) strategy.exit("short_tp/sl", "long", profit=close * takeProfit_long / syminfo.mintick, loss=close * stopLoss_long / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort') strategy.exit("short_tp/sl", "short", profit=close * takeProfit_short / syminfo.mintick, loss=close * stopLoss_short / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')