यह रणनीति विभिन्न अवधियों के 8 घातीय चलती औसत (ईएमए) और मुख्य ट्रेडिंग संकेतों के रूप में इचिमोकू क्लाउड का उपयोग करती है, जो प्रति घंटे, 4 घंटे या दैनिक समय सीमाओं में प्रभावी ढंग से चल सकती है।
इस रणनीति के मूल सिद्धांत निम्नलिखित दो भागों पर आधारित हैंः
एक्सपोनेंशियल मूविंग एवरेज (ओक्टा-ईएमए)
यह रणनीति विभिन्न अवधि के साथ 8 ईएमए का उपयोग करती है, विशेष रूप से 5-दिवसीय, 11-दिवसीय, 15-दिवसीय, 18-दिवसीय, 21-दिवसीय, 24-दिवसीय, 28-दिवसीय और 34-दिवसीय। इन 8 ईएमए को
इचिमोकू बादल
इचिमोकू क्लाउड में रूपांतरण रेखा, बेस लाइन, लेगिंग स्पैन और लीडिंग स्पैन ए / बी होते हैं। क्लाउड मुख्य रूप से प्रवृत्ति की दिशा का न्याय करता है और समर्थन / प्रतिरोध प्रदान करता है। जब कीमत क्लाउड के ऊपर होती है, तो यह एक अपट्रेंड का संकेत देती है, और जब यह क्लाउड के नीचे होती है, तो यह एक डाउनट्रेंड का संकेत देती है।
इस रणनीति के लिए ट्रेडिंग सिग्नल उपरोक्त दो घटकों के संयोजन से आते हैं। एक खरीद सिग्नल तब उत्पन्न होता है जब सभी 8 ईएमए अपट्रेंड व्यवस्था (लंबे ईएमए के ऊपर छोटा ईएमए) में होते हैं और कीमत इचिमोकू क्लाउड के ऊपर होती है। एक बिक्री संकेत तब उत्पन्न होता है जब ईएमए व्यवस्था डाउनट्रेंड में बदल जाती है (लंबे ईएमए के नीचे छोटा ईएमए क्रॉसिंग) ।
इस रणनीति के मुख्य लाभ इस प्रकार हैंः
इस रणनीति में कुछ जोखिम भी हैं:
इन जोखिमों से निपटने के लिए, जोखिम को कम करने के लिए मापदंडों को समायोजित किया जा सकता है या प्रवेश स्थितियों को अनुकूलित किया जा सकता है। पुष्टि के लिए अन्य संकेतकों को भी शामिल किया जा सकता है।
इस रणनीति को कई पहलुओं में अनुकूलित किया जा सकता हैः
कुल मिलाकर, ऑक्टा-ईएमए और इचिमोकू क्लाउड रणनीति एक अपेक्षाकृत स्थिर और विश्वसनीय प्रवृत्ति अनुसरण प्रणाली है। यह प्रवृत्तियों को निर्धारित करने के लिए ईएमए क्रॉसओवर और इचिमोकू को संकेतों को फ़िल्टर करने के लिए उपयोग करती है, जब अनुकूलित किया जाता है तो कम झूठे संकेत प्रदान करती है। यह रणनीति कई समय सीमाओं पर सूचकांक, विदेशी मुद्रा, धातु आदि पर व्यापक रूप से लागू की जा सकती है। स्टॉप लॉस / टेक प्रॉफिट और पुष्टि संकेतकों को शामिल करके, जीत दर और लाभप्रदता में और सुधार किया जा सकता है।
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //Fukuiz strategy(title='Fukuiz Octa-EMA + Ichimoku', shorttitle='Fuku octa strategy', overlay=true, process_orders_on_close=true, default_qty_type= strategy.cash , default_qty_value=1000, currency=currency.USD, initial_capital=10000 ,commission_type = strategy.commission.percent,commission_value=0.25) //OCTA EMA ################################################## // Functions f_emaRibbon(_src, _e1, _e2, _e3, _e4, _e5, _e6, _e7, _e8) => _ema1 = ta.ema(_src, _e1) _ema2 = ta.ema(_src, _e2) _ema3 = ta.ema(_src, _e3) _ema4 = ta.ema(_src, _e4) _ema5 = ta.ema(_src, _e5) _ema6 = ta.ema(_src, _e6) _ema7 = ta.ema(_src, _e7) _ema8 = ta.ema(_src, _e8) [_ema1, _ema2, _ema3, _ema4, _ema5, _ema6, _ema7, _ema8] showRibbon = input(true, 'Show Ribbon (EMA)') ema1Len = input(5, title='EMA 1 Length') ema2Len = input(11, title='EMA 2 Length') ema3Len = input(15, title='EMA 3 Length') ema4Len = input(18, title='EMA 4 Length') ema5Len = input(21, title='EMA 5 Length') ema6Len = input(24, title='EMA 6 Length') ema7Len = input(28, title='EMA 7 Length') ema8Len = input(34, title='EMA 8 Length') [ema1, ema2, ema3, ema4, ema5, ema6, ema7, ema8] = f_emaRibbon(close, ema1Len, ema2Len, ema3Len, ema4Len, ema5Len, ema6Len, ema7Len, ema8Len) //Plot ribbonDir = ema8 < ema2 p1 = plot(ema1, color=showRibbon ? ribbonDir ? #1573d4 : color.new(#5d606b, 15) : na, linewidth=2, title='EMA 1') p2 = plot(ema2, color=showRibbon ? ribbonDir ? #3096ff : color.new(#5d606b, 15) : na, linewidth=2, title='EMA 2') plot(ema3, color=showRibbon ? ribbonDir ? #57abff : color.new(#5d606b, 15) : na, linewidth=2, title='EMA 3') plot(ema4, color=showRibbon ? ribbonDir ? #85c2ff : color.new(#5d606b, 15) : na, linewidth=2, title='EMA 4') plot(ema5, color=showRibbon ? ribbonDir ? #9bcdff : color.new(#5d606b, 30) : na, linewidth=2, title='EMA 5') plot(ema6, color=showRibbon ? ribbonDir ? #b3d9ff : color.new(#5d606b, 30) : na, linewidth=2, title='EMA 6') plot(ema7, color=showRibbon ? ribbonDir ? #c9e5ff : color.new(#5d606b, 30) : na, linewidth=2, title='EMA 7') p8 = plot(ema8, color=showRibbon ? ribbonDir ? #dfecfb : color.new(#5d606b, 30) : na, linewidth=2, title='EMA 8') fill(p1, p2, color.new(#1573d4, 85)) fill(p2, p8, color.new(#1573d4, 85)) //ichimoku################################################## //color colorblue = #3300CC colorred = #993300 colorwhite = #FFFFFF colorgreen = #CCCC33 colorpink = #CC6699 colorpurple = #6633FF //switch switch1 = input(false, title='Chikou') switch2 = input(false, title='Tenkan') switch3 = input(false, title='Kijun') middleDonchian(Length) => lower = ta.lowest(Length) upper = ta.highest(Length) math.avg(upper, lower) //Functions conversionPeriods = input.int(9, minval=1) basePeriods = input.int(26, minval=1) laggingSpan2Periods = input.int(52, minval=1) displacement = input.int(26, minval=1) Tenkan = middleDonchian(conversionPeriods) Kijun = middleDonchian(basePeriods) xChikou = close SenkouA = middleDonchian(laggingSpan2Periods) SenkouB = (Tenkan[basePeriods] + Kijun[basePeriods]) / 2 //Plot A = plot(SenkouA[displacement], color=color.new(colorpurple, 0), title='SenkouA') B = plot(SenkouB, color=color.new(colorgreen, 0), title='SenkouB') plot(switch1 ? xChikou : na, color=color.new(colorpink, 0), title='Chikou', offset=-displacement) plot(switch2 ? Tenkan : na, color=color.new(colorred, 0), title='Tenkan') plot(switch3 ? Kijun : na, color=color.new(colorblue, 0), title='Kijun') fill(A, B, color=color.new(colorgreen, 90), title='Ichimoku Cloud') //Buy and Sell signals fukuiz = math.avg(ema2, ema8) white = ema2 > ema8 gray = ema2 < ema8 buycond = white and white[1] == 0 sellcond = gray and gray[1] == 0 bullish = ta.barssince(buycond) < ta.barssince(sellcond) bearish = ta.barssince(sellcond) < ta.barssince(buycond) buy = bearish[1] and buycond and fukuiz > SenkouA[displacement] and fukuiz > SenkouB sell = bullish[1] and sellcond and fukuiz > SenkouA[displacement] and fukuiz > SenkouB sell2=ema2 < ema8 buy2 = white and fukuiz > SenkouA[displacement] and fukuiz > SenkouB //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ //Back test startYear = input.int(defval=2017, title='Start Year', minval=2000, maxval=3000) startMonth = input.int(defval=1, title='Start Month', minval=1, maxval=12) startDay = input.int(defval=1, title='Start Day', minval=1, maxval=31) endYear = input.int(defval=2023, title='End Year', minval=2000 ,maxval=3000) endMonth = input.int(defval=12, title='End Month', minval=1, maxval=12) endDay = input.int(defval=31, title='End Day', minval=1, maxval=31) start = timestamp(startYear, startMonth, startDay, 00, 00) end = timestamp(endYear, endMonth, endDay, 23, 59) period() => time >= start and time <= end ? true : false if buy2 strategy.entry(id='long', direction=strategy.long, when=period(), comment='BUY') if sell2 strategy.close(id='long', when=period(), comment='SELL')