यह एक ट्रेंड फॉलो करने वाली रणनीति है जो ट्रेंड की पहचान के लिए इचिमोकू क्लाउड इंडिकेटर और सिग्नल फ़िल्टरिंग के लिए आरएसआई इंडिकेटर का उपयोग करती है। यह रणनीति ट्रेंड परिवर्तनों को समय पर कैप्चर करने के लिए गैर-ऑफसेट इचिमोकू क्लाउड का उपयोग करती है और ट्रेडिंग जोखिमों को नियंत्रित करने के लिए आरएसआई के साथ नकली ब्रेकआउट को फ़िल्टर करती है।
रणनीति मुख्य रूप से प्रवृत्ति दिशा निर्धारित करने के लिए इचिमोकू क्लाउड संकेतक पर निर्भर करती है। इचिमोकू क्लाउड में रूपांतरण रेखा, आधार रेखा, अग्रणी स्पैन 1, अग्रणी स्पैन 2, और लेगिंग स्पैन शामिल हैं। रणनीति गैर-ऑफसेट इचिमोकू क्लाउड का उपयोग करती है, जिसका अर्थ है कि रूपांतरण रेखा और आधार रेखा जैसी रेखाएं अवलोकन ऑफसेट के कारण लेगिंग प्रवृत्ति पहचान से बचने के लिए भविष्य के आंकड़ों को अपनाती हैं।
यह रणनीति सबसे पहले यह जांचती है कि क्या कीमत बादल रेखाओं के माध्यम से टूटती है। जब लेगिंग स्पैन बादल के ऊपर से गुजरता है, तो एक ऊपर की प्रवृत्ति की पहचान की जाती है, जबकि जब लेगिंग स्पैन बादल के नीचे से गुजरता है, तो एक नीचे की प्रवृत्ति की पहचान की जाती है। प्रवृत्ति शुरू होने के बाद, रणनीति निरंतर प्रवृत्ति दिशा निर्धारित करने के लिए बादल के साथ मूल्य के संबंध को ट्रैक करती रहती है। जब लेगिंग स्पैन बादल के ऊपर होता है, तो अपट्रेंड बरकरार रहता है, और इसके विपरीत।
प्रवृत्ति पहचान के अलावा, रणनीति खरीद और बिक्री संकेत भी उत्पन्न करती है जब रूपांतरण रेखा और आधार रेखा में स्वर्ण क्रॉस और मृत्यु क्रॉस होते हैं। ये ट्रेडिंग संकेत केवल तब स्वीकार किए जाते हैं जब वे प्रवृत्ति दिशा के साथ संरेखित होते हैं। उदाहरण के लिए, रूपांतरण रेखा और आधार रेखा के बीच स्वर्ण क्रॉस को केवल अपट्रेंड के दौरान माना जाता है।
अंत में, आरएसआई संकेतक का उपयोग ट्रेडिंग संकेतों को फ़िल्टर करने के लिए किया जाता है। केवल ओवरसोल्ड स्तर से नीचे आरएसआई के साथ सिग्नल खरीदें और ओवरबोल्ड स्तर से ऊपर आरएसआई के साथ सिग्नल बेचें। यह कुछ हद तक झूठे ब्रेकआउट को फ़िल्टर करने में मदद करता है।
गैर-ऑफसेट इचिमोकू क्लाउड समय पर रुझान परिवर्तनों की पहचान कर सकता है
कई स्थितियां एक साथ काम कर रहे हैं प्रभावी ढंग से झूठे ब्रेकआउट संकेतों को फ़िल्टर करने के लिए
आरएसआई ओवरबॉट और ओवरसोल्ड स्थितियों में अवांछित बाजार में प्रवेश से बचता है
रणनीति भविष्य के आंकड़ों को ध्यान में रखते हुए अनुकूलित है और लाइव ट्रेडिंग में भी अच्छे परिणाम प्राप्त कर सकती है
भविष्य के डेटा का उपयोग करने से त्रुटियां हो सकती हैं और लाइव ट्रेडिंग से पहले कोड अनुकूलन की आवश्यकता होती है
Ichimoku क्लाउड मापदंडों के प्रति संवेदनशील है और विभिन्न उत्पादों के लिए मापदंड ट्यूनिंग की आवश्यकता होती है
एक ही उत्पाद के साथ व्यापार करते समय बेहतर परिणाम। कई उत्पादों के साथ अंतर-बाजार सहसंबंध पर विचार करने की आवश्यकता है
कई रुझान पहचान नियमों में सत्यापन के लिए पर्याप्त बैकटेस्टिंग अवधि की आवश्यकता होती है
सबसे अच्छा संयोजन खोजने के लिए मापदंडों को अनुकूलित किया जा सकता है। लाइव ट्रेडिंग में जोखिमों को नियंत्रित करने के लिए विशिष्ट उत्पादों का व्यापार या स्थिति के आकार को कम करने पर विचार किया जा सकता है। प्रति व्यापार हानि को सीमित करने के लिए स्टॉप लॉस रणनीतियों को भी पेश किया जा सकता है।
इस रणनीति को निम्नलिखित पहलुओं में और अधिक अनुकूलित किया जा सकता हैः
विभिन्न व्यापार उत्पादों के लिए सर्वोत्तम सेटिंग्स खोजने के लिए Ichimoku Cloud पैरामीटर अनुकूलित करें
प्रति व्यापार हानि को स्वीकार्य स्तर तक सीमित करने के लिए स्टॉप लॉस रणनीतियाँ जोड़ें
समग्र जोखिम जोखिम को सटीक रूप से प्रबंधित करने के लिए स्थिति आकार की रणनीतियाँ लागू करें
व्यापक संकेत सत्यापन के लिए अस्थिरता और मात्रा जैसे अधिक तकनीकी संकेतक जोड़ें
बेहतर निष्पादन के लिए पुष्टिकरण या पॉलबैक प्रविष्टियों जैसे प्रविष्टि तकनीकों का अनुकूलन करें
उत्पाद की विशेषताओं के आधार पर इष्टतम बोलिंगर बैंड्स लुकबैक अवधि निर्धारित करने के लिए आगे की ओर अनुकूलन करना
संक्षेप में, यह एक काफी मजबूत प्रवृत्ति के बाद की रणनीति है। यह प्रवृत्ति पहचान के लिए इचिमोकू क्लाउड और आरएसआई द्वारा फ़िल्टर किए गए व्यापार संकेतों के लिए रूपांतरण रेखा / आधार रेखा क्रॉस को अपनाता है। पैरामीटर ट्यूनिंग, स्टॉप लॉस, स्थिति आकार आदि के माध्यम से अनुकूलन के लिए अभी भी बहुत जगह है। तर्क स्पष्ट और समझने में आसान है। यह प्रवृत्ति और जोखिम दोनों को ध्यान में रखता है। यह लाइव ट्रेडिंग में सत्यापित करने योग्य एक रणनीति है।
/*backtest start: 2022-10-31 00:00:00 end: 2023-02-20 00:00:00 period: 1d basePeriod: 1h 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/ // © KryptoNight //@version=4 // comment/uncomment Study/Strategy to easily switch modes // study("Ichimoku Kinko Hyo Cloud - no offset - no repaint - RSI filter - alerts", shorttitle="IchiCloud + RSI - alerts", overlay=true) // ============================================================================== Strategy mode - uncomment to activate strategy("Ichimoku Kinko Hyo Cloud - no offset - no repaint - RSI filter - strategy", shorttitle="IchiCloud + RSI - Strategy Tester Mode", overlay=true, pyramiding = 0, currency = currency.USD, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, calc_on_order_fills = true, commission_type = strategy.commission.percent, commission_value = 0.075) // ============================================================================== // ------------------------------------------------------------------------------ ichiCloud_offset = input(false, title="Standard Ichimoku Cloud") // with the visual offset ichiCloud_noOffset = input(true, title="Ichimoku Cloud - no offset - no repaint") // without the visual offset conversion_prd = input(9, minval=1, title="Conversion Line Period - Tenkan-Sen") baseline_prd = input(26, minval=1, title="Base Line Period - Kijun-Sen") baselineA_prd = input(52, minval=1, title="Base Line Period - Kijun-Sen (auxiliary)") leadingSpan_2prd = input(52, minval=1, title="Lagging Span 2 Periods - Senkou Span B") displacement = input(26, minval=0, title="Displacement: (-) Chikou Span; (+) Senkou Span A") extra_bars = input(1, minval=0, title="Displacement: additional bars") laggingSpan_src = input(close, title="Lagging Span price source - Chikou-Span") donchian(len) => avg(lowest(len), highest(len)) displ = displacement-extra_bars // ------------------------------------------------------------------------------ // OFFSET: conversion = donchian(conversion_prd) // Conversion Line - Tenkan-Sen (9 Period) baseline = donchian(baseline_prd) // Base Line - Kijun-Sen (26 Period) baselineA = donchian(baselineA_prd) // Base Line Period - Kijun-Sen (auxiliary) leadingSpanA = avg(conversion, baseline) leadingSpanB = donchian(leadingSpan_2prd) laggingSpan = laggingSpan_src // Color - bullish, bearish col_cloud = leadingSpanA>=leadingSpanB ? color.green : color.red // Cloud Lines spanA = plot(ichiCloud_offset? leadingSpanA : na, offset=displ, title="Offset: Lead Line 1 - Senkou Span A cloud", color=color.green) spanB = plot(ichiCloud_offset? leadingSpanB : na, offset=displ, title="Offset: Lead Line 2 - Senkou Span B cloud", color=color.red) fill(spanA, spanB, color=col_cloud, transp=80, title="Offset: Ichimoku Cloud - Leading Span 1 & 2 based coloring") // Other Lines conversion_p = plot(ichiCloud_offset? conversion : na, title="Offset: Conversion Line - Tenkan-Sen", color=#0496ff) standard_p = plot(ichiCloud_offset? baseline : na, title="Offset: Base Line - Kijun-Sen", color=#991515) standardA_p = plot(ichiCloud_offset? baselineA : na, title="Offset: Base Line - Kijun-Sen (auxiliary)", color=color.teal) lagging_Span_p = plot(ichiCloud_offset? laggingSpan : na, offset=-displ, title="Offset: Chikou Span (Lagging Span)", color=#459915) // ------------------------------------------------------------------------------ // NO OFFSET: conversion_noOffset = conversion[displ] // Conversion Line - Tenkan-Sen (9 Period) baseline_noOffset = baseline[displ] // Base Line - Kijun-Sen (26 Period) baselineA_noOffset = baselineA[displ] // Base Line Period - Kijun-Sen (auxiliary) leadingSpanA_noOffset = leadingSpanA[displ*2] leadingSpanB_noOffset = leadingSpanB[displ*2] laggingSpan_noOffset = laggingSpan[0] // Color - bullish, bearish col_cloud_noOffset = leadingSpanA_noOffset>=leadingSpanB_noOffset ? color.green : color.red // Cloud Lines spanA_noOffset = plot(ichiCloud_noOffset? leadingSpanA_noOffset : na, title="No offset: Lead Line 1 - Senkou Span A cloud", color=color.green, transp=0) spanB_noOffset = plot(ichiCloud_noOffset? leadingSpanB_noOffset : na, title="No offset: Lead Line 2 - Senkou Span B cloud", color=color.red, transp=0) fill(spanA_noOffset, spanB_noOffset, color=col_cloud_noOffset, transp=80, title="No offset: Ichimoku Cloud - Leading Span 1 & 2 based coloring") // Other Lines conversion_p_noOffset = plot(ichiCloud_noOffset? conversion_noOffset : na, title="No offset: Conversion Line - Tenkan-Sen", color=#0496ff, transp=0) baseline_p_noOffset = plot(ichiCloud_noOffset? baseline_noOffset : na, title="No offset: Base Line - Kijun-Sen", color=#991515, transp=0) baselineA_p_noOffset = plot(ichiCloud_noOffset? baselineA_noOffset : na, title="No offset: Base Line - Kijun-Sen (auxiliary)", color=color.teal, transp=0) laggingSpan_p_noOffset = plot(ichiCloud_noOffset? laggingSpan_noOffset : na, title="No offset: Chikou Span (Lagging Span)", color=#459915, transp=0) // ============================================================================== // Conditions & Alerts (based on the lines without offset) maxC = max(leadingSpanA_noOffset,leadingSpanB_noOffset) minC = min(leadingSpanA_noOffset,leadingSpanB_noOffset) // Trend start signals: crosses between Chikou Span (Lagging Span) and the Cloud (Senkou Span A, Senkou Span B) uptrend_start = crossover(laggingSpan_noOffset,maxC) downtrend_start = crossunder(laggingSpan_noOffset,minC) // Trends uptrend = laggingSpan_noOffset>maxC // Above Cloud downtrend = laggingSpan_noOffset<minC // Below Cloud // No trend: choppy trading - the price is in transition notrend = maxC>=laggingSpan_noOffset and laggingSpan_noOffset>=minC // Confirmations uptrend_confirm = crossover(leadingSpanA_noOffset,leadingSpanB_noOffset) downtrend_confirm = crossunder(leadingSpanA_noOffset,leadingSpanB_noOffset) // Signals - crosses between Conversion Line (Tenkan-Sen) and Base Line (Kijun-Sen) bullish_signal = crossover(conversion_noOffset,baseline_noOffset) bearish_signal = crossunder(conversion_noOffset,baseline_noOffset) // Various alerts alertcondition(uptrend_start, title="Uptrend Started", message="Uptrend Started") alertcondition(downtrend_start, title="Downtrend Started", message="Downtrend Started") alertcondition(uptrend_confirm, title="Uptrend Confirmed", message="Uptrend Confirmed") alertcondition(downtrend_confirm, title="Downtrend Confirmed", message="Downtrend Confirmed") alertcondition(bullish_signal, title="Buy Signal", message="Buy Signal") alertcondition(bearish_signal, title="Sell Signal", message="Sell Signal") rsi_OBlevel = input(50, title="RSI Filter: Overbought level (0 = off)") rsi_OSlevel = input(100,title="RSI Filter: Oversold level (100 = off)") rsi_len = input(14,title="RSI Length") rsi_src = input(close,title="RSI Price source") rsi = rsi(rsi_src,rsi_len) // Strategy ------------------------------- long_signal = bullish_signal and uptrend and rsi<=rsi_OSlevel // breakout filtered by the rsi exit_long = bearish_signal and uptrend short_signal = bearish_signal and downtrend and rsi>=rsi_OBlevel // breakout filtered by the rsi exit_short = bullish_signal and downtrend // Strategy alerts alertcondition(long_signal, title="Long Signal - Uptrend", message="Long Signal - Uptrend") alertcondition(exit_long, title="Long Exit Signal - Uptrend", message="Long Exit Signal - Uptrend") alertcondition(short_signal, title="Long Signal - Downtrend", message="Long Signal - Downtrend") alertcondition(exit_short, title="Short Exit Signal - Downtrend", message="Short Exit Signal - Downtrend") // Plot areas for trend and transition color_trend = uptrend? #00FF00 : downtrend? #FF0000 : notrend? color.new(#FFFFFF, 50) : na fill(spanA_noOffset, spanB_noOffset, color=color_trend, transp=90, title="No offset: Ichimoku Cloud - Lagging Span & Cloud based coloring") plotshape(ichiCloud_noOffset?uptrend_start:na, title="No offset: Uptrend Started", color=color.green, style=shape.circle, location=location.belowbar, size=size.tiny, text="Up") plotshape(ichiCloud_noOffset?downtrend_start:na, title="No offset: Downtrend Started", color=color.red, style=shape.circle,location=location.abovebar, size=size.tiny, text="Down") plotshape(ichiCloud_noOffset?uptrend_confirm:na, title="No offset: Uptrend Confirmed", color=color.green, style=shape.circle, location=location.belowbar, size=size.small, text="Confirm Up") plotshape(ichiCloud_noOffset?downtrend_confirm:na, title="No offset: Downtrend Confirmed", color=color.red, style=shape.circle, location=location.abovebar, size=size.small, text="Confirm Down") plotshape(ichiCloud_noOffset?long_signal:na, title="No offset: Long Signal", color=#00FF00, style=shape.triangleup, location=location.belowbar, size=size.small, text="Long") plotshape(ichiCloud_noOffset?exit_long:na, title="No offset: Exit Long Signal", color=color.fuchsia, style=shape.triangledown, location=location.abovebar, size=size.small, text="Exit long") plotshape(ichiCloud_noOffset?short_signal:na, title="No offset: Short Signal", color=#FF0000, style=shape.triangledown, location=location.abovebar, size=size.small, text="Short") plotshape(ichiCloud_noOffset?exit_short:na, title="No offset: Exit Short Signal", color=color.fuchsia, style=shape.triangleup, location=location.belowbar, size=size.small, text="Exit short") // ============================================================================== Strategy Component - uncomment to activate if (long_signal) strategy.entry("Long",strategy.long) if (exit_long) strategy.close("Long") if (short_signal) strategy.entry("Short",strategy.short) if (exit_short) strategy.close("Short") // ==============================================================================