रणनीति का पालन करने वाला इचिमोकू क्लाउड ट्रेंड

लेखक:चाओझांग, दिनांकः 2024-02-01 11:34:23
टैगः

img

I. रणनीति का नामः Ichimoku Cloud Trend रणनीति का अनुसरण करना

II. रणनीति का अवलोकन

यह रणनीति एक शुद्ध ट्रेंड फॉलोअप रणनीति डिजाइन करने के लिए कई इचिमोकू क्लाउड संकेतों का उपयोग करती है जिसका उद्देश्य मध्यम से दीर्घकालिक रुझानों को पकड़ना, समेकन को फ़िल्टर करना और मजबूत ट्रेंड दिशाओं का पालन करना है।

III. रणनीतिक सिद्धांत

यह रणनीति मुख्य रूप से टेंकन-सेन, किजुन-सेन, चिको स्पैन और इचिमोकू क्लाउड के अन्य प्रमुख संकेतकों का उपयोग करती है। दीर्घकालिक रुझानों का न्याय करने के लिए, यह अग्रणी और पिछड़े स्पैन के बीच संबंध पर केंद्रित है; विशिष्ट प्रवेश और निकास समय के लिए, यह टेनकन-सेन और किजुन-सेन क्रॉसओवर और क्लाउड के साथ मूल्य संबंध परिवर्तनों को देखता है।

संक्षेप में, मूल तर्क हैः मध्य-लंबी अवधि की प्रवृत्ति की पुष्टि करें -> मजबूत प्रवृत्ति फिर से शुरू होने के संकेतों की प्रतीक्षा करें -> प्रवृत्तियों का पालन करने के लिए प्रवेश करें -> स्टॉप लॉस के साथ बाहर निकलें।

विशेष रूप से, मध्यम-लंबी अवधि की प्रवृत्ति निर्धारित करने के लिए, यह अग्रणी और पिछड़े स्पैन (उपर अग्रणी हरे स्पैन संकेत ऊपर की ओर प्रवृत्ति और इसके विपरीत) के बीच संबंध का उपयोग करता है। बड़ी प्रवृत्ति की पुष्टि के बाद, टेंकन-सेन और किजुन-सेन के बीच क्रॉसओवर के साथ-साथ मूल्य ब्रेकआउट संकेतों का उपयोग प्रवृत्ति की बहाली की पहचान करने के लिए किया जाता है; प्रवेश के बाद, किजुन-सेन का उपयोग बाहर निकलने के लिए ट्रेलिंग स्टॉप लॉस के रूप में किया जाता है।

इससे अल्प और मध्यम अवधि के समेकन को फ़िल्टर किया जाता है और बाजारों में लगातार बेहतर प्रदर्शन के लिए मजबूत रुझानों को पकड़ने की अनुमति मिलती है।

IV. लाभ

(1) मध्य-लंबी अवधि के रुझान की दिशा निर्धारित करने के लिए इचिमोकू क्लाउड का उपयोग करना प्रमुख दिशात्मक किनारों का पता लगाने के लिए फायदेमंद है।

(2) टेनकन-सेन/किजुन-सेन क्रॉसओवर और क्लाउड के साथ मूल्य संबंध में परिवर्तन से प्रभावी रूप से समेकन को फ़िल्टर करने और मजबूत रुझानों को जल्दी पकड़ने में मदद मिलती है।

(3) ट्रेलिंग स्टॉप लॉस एक्जिट मैकेनिज्म बड़े ट्रेंड्स को चलाने की अनुमति देता है जबकि अलग-अलग नुकसान को प्रभावी ढंग से नियंत्रित करता है।

(4) विभिन्न इचिमोकू संकेतों का संयोजन एक मजबूत प्रणाली बनाता है जो सहज रूप से रुझानों का अनुसरण करता है।

जोखिम

(1) बड़े रुझान की गलत पहचान करने का प्रणालीगत जोखिम। यदि बड़े रुझान का गलत निदान किया जाता है, तो बाद की सभी कार्रवाई गलत दिशा का जोखिम लेती है।

(2) खराब चयनित प्रवेश समय से जोखिम। अनुचित प्रवेश समय से प्रतिकूल मूल्य विप्स का जोखिम होता है।

(3) बहुत सख्ती से रखे गए स्टॉप से जोखिम। अत्यधिक मूल्य आंदोलन अनियोजित घाटे के परिणामस्वरूप बहुत सख्त स्टॉप को बाहर कर सकते हैं।

(4) उच्च व्यापारिक आवृत्ति से अत्यधिक लेनदेन लागत होती है। खराब पैरामीटर ट्यूनिंग से अत्यधिक व्यापारिक आवृत्ति और लागत हो सकती है।

विकास के क्षेत्र

(1) इष्टतम मापदंडों को खोजने के लिए Ichimoku इनपुट अवधि के विभिन्न संयोजनों का परीक्षण करें।

(2) उच्च गुणवत्ता वाले प्रविष्टियों को सुनिश्चित करने के लिए प्रवेश फिल्टर का अनुकूलन करें।

(3) जोखिम-इनाम संतुलन के लिए स्टॉप दूरी को समायोजित करें।

(4) अनुकूलित लाभ लेने के तंत्र बनाने के लिए मूल्य-कुंजी संकेतक दूरी के आधार पर लाभ लक्ष्य स्तर जोड़ें।

VII. निष्कर्ष

यह इचिमोकू क्लाउड ट्रेंड फॉलोअप रणनीति ट्रेंड, टाइम एंट्री और ट्रेल स्टॉप का निदान करने के लिए कई इचिमोकू सिग्नल को संश्लेषित करती है। अभ्यास से पता चलता है कि यह प्रभावी रूप से मध्यम-लंबे समय के रुझानों को पकड़ सकता है, समेकन को फ़िल्टर कर सकता है और लगातार बेहतर प्रदर्शन प्राप्त कर सकता है। भविष्य में अनुकूलन और परीक्षण बेहतर रिटर्न के लिए प्रदर्शन में और सुधार कर सकता है।


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ichimoku trendfollowing", overlay=true, initial_capital=1000, commission_type=strategy.commission.cash_per_order, commission_value=0.04, slippage=2)

//***************************
//  INPUT BACKTEST RANGE    *
//***************************
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000) 
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 = 2000)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

//***************
//*  ICHIMOKU   *
//***************
//inizializzazione parametri,,
tenkanPeriods = input(9, minval=1, title="Tenkan-Sen")
kinjunPeriods = input(26, minval=1, title="Kinjun-Sen")
senkouSpanBPeriods = input(52, minval=1, title="Senkou Span B")
displacement = input(26, minval=1, title="-ChinkouSpan/+SenkouSpan A")

//definizione Tenkan-Sen (9 Period), Kinjun-Sen (26 Period), Chinkou Span (Lagging Line)
averageHighLow(period) => avg(lowest(period), highest(period))
tenkan= averageHighLow(tenkanPeriods)
kinjun = averageHighLow(kinjunPeriods)
senkouSpanA = avg(tenkan, kinjun)
senkouSpanB = averageHighLow(senkouSpanBPeriods)

//definisco il colore della kumo in base al trend.
senkouSpan1Above = senkouSpanA >= senkouSpanB ? 1 : na
senkouSpan2Below = senkouSpanA <= senkouSpanB ? 1 : na

span1plotU = senkouSpan1Above ? senkouSpanA : na
span2plotU = senkouSpan1Above ? senkouSpanB : na
span1plotD = senkouSpan2Below ? senkouSpanA : na
span2plotD = senkouSpan2Below ? senkouSpanB : na

col = senkouSpanA >= senkouSpanB ? lime : red

//plots Ichimoku
plot(tenkan, title = 'Tenkan-Sen', linewidth=1, color=blue)
plot(kinjun, title = 'Kinjun-Sen', linewidth=1, color=red)
plot(close, title = 'Chinkou Span', linewidth=1, offset = -displacement, color=aqua)
plot( senkouSpanA, title = 'Senkou Span A', style=line, linewidth=1, offset = displacement, color=lime)
plot(senkouSpanB, title = 'Senkou Span B', style=line, linewidth=1, offset = displacement, color=red)

//Cloud Lines Plot 
p1 = plot(span1plotU ? span1plotU  : na, title = 'Senkou Span A Above Senkou Span B', style=linebr, linewidth=1, offset = displacement, color=col)
p2 = plot(span2plotU ? span2plotU  : na, title = 'Senkou Span B (52 Period) Below Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p3 = plot(span1plotD ? span1plotD  : na, title = 'Senkou Span A (26 Period) Below Span B Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p4 = plot(span2plotD ? span2plotD  : na, title = 'Senkou Span B (52 Period) Above Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
//Fills that color cloud based on Trend.
fill(p1, p2, color=lime, transp=70, title='Kumo (Cloud)')
fill(p3, p4, color=red, transp=70, title='Kumo (Cloud)')

//***********************************************
//*     condizioni ingresso ed uscita mercato   *
//***********************************************
isKumoRialzista = senkouSpanA >= senkouSpanB ? true : false
isSopraKumo = (close > max(senkouSpanA[displacement], senkouSpanB[displacement]))
isSottoKumo = (close < min(senkouSpanA[displacement], senkouSpanB[displacement]))
isChinkouSpanSopra = high[displacement]<close
isChinkouSpanSotto = low[displacement]>close

filtroLong=isSopraKumo and isChinkouSpanSopra
filtroShort=isSottoKumo and isChinkouSpanSotto

//rimbalzato su kijun quando i prezzi stavano ritracciando e il trend era già in atto(tenkan >kijun x entrare long
isPullBackLijunEntryLong = kinjun<tenkan and low<kinjun and (close>kinjun) 
isPullBackLijunEntryShort =kinjun>tenkan and high>kinjun and  (close<kinjun) 

//Breackout Kumo
isBreackoutKumoEntryLong =  crossover(close, max(senkouSpanA[displacement], senkouSpanB[displacement])) and (close>tenkan) and (close>kinjun) 
isBreackoutKumoEntryShort =  crossunder(close, min(senkouSpanA[displacement], senkouSpanB[displacement])) and (close<tenkan) and (close<kinjun)

ConditionEntryLong = (isPullBackLijunEntryLong or isBreackoutKumoEntryLong ) and filtroLong
ConditionEntryShort = (isPullBackLijunEntryShort or isBreackoutKumoEntryLong ) and filtroShort

isExitLong = close<kinjun
isExitShort = close>kinjun

//ingressi ed uscite Mercato
strategy.entry ("Long",long=true, when = window() and ConditionEntryLong)
strategy.entry ("Short",long=false, when = window() and ConditionEntryShort)

strategy.close(id="Long", when=isExitLong)
strategy.close(id="Short", when=isExitShort)
strategy.close_all(when=not window())


अधिक